1
0
Fork 0
Univerxel/src/client/render/gl/pass/ColorProgram.cpp

32 lines
871 B
C++

#include "ColorProgram.hpp"
#include "../Renderer.hpp"
using namespace pass;
ColorProgram::ColorProgram(): Program() {
std::vector<std::string> flags;
std::vector<Shader*> 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);
}