#include "ColorProgram.hpp" #include "../Renderer.hpp" using namespace pass; ColorProgram::ColorProgram(): Program() { std::vector flags; std::vector shaders; shaders.push_back(loadShader(GL_VERTEX_SHADER, flags)); shaders.push_back(loadShader(GL_FRAGMENT_SHADER, flags)); load(shaders); MVPMatrixID = glGetUniformLocation(ProgramID, "MVP"); } ColorProgram::~ColorProgram() { } std::string ColorProgram::getName() const { return "Color"; } buffer::params ColorProgram::setup(render::gl::Renderer *renderer, glm::mat4 modelMatrix) { const auto mvp = renderer->getProjectionMatrix() * renderer->getViewMatrix() * modelMatrix; setMVP(&mvp[0][0]); return buffer::params{.vertexOnly = false}; } void ColorProgram::setMVP(const GLfloat *matrix) { glUniformMatrix4fv(MVPMatrixID, 1, GL_FALSE, matrix); }