#include "shaders/simple_shaders.hpp" #include #include #include #include "math/vector.hpp" #include "math/mat4.hpp" using namespace engine::shaders; using engine::math::Vector4, engine::math::Matrix4; SimpleShaders::SimpleShaders(int w, int h, unsigned char* pixels) : w { w }, h { h }, pixels {} { this->pixels.reserve(w * h); for (size_t i = 0; i < static_cast(w * h); i++) { [&](std::index_sequence) { this->pixels.emplace_back(static_cast(pixels[i * 4 + j]) / 255.f ...); }(std::make_index_sequence<4> {}); } } void SimpleShaders::set_view(const Matrix4& view_mat, const Matrix4& proj_mat) { this->view_mat = view_mat; this->proj_mat = proj_mat; } void SimpleShaders::set_model(const Matrix4& model_mat) { this->model_mat = model_mat; final_mat = proj_mat * view_mat * model_mat; }