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

32 lines
871 B
C++
Raw Normal View History

2020-07-25 14:29:05 +00:00
#include "ColorProgram.hpp"
2020-09-26 22:05:43 +00:00
#include "../Renderer.hpp"
2020-07-25 14:29:05 +00:00
2020-07-25 16:45:03 +00:00
using namespace pass;
2020-07-25 14:29:05 +00:00
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";
}
2020-09-26 22:05:43 +00:00
buffer::params ColorProgram::setup(render::gl::Renderer *renderer, glm::mat4 modelMatrix) {
2020-07-25 14:29:05 +00:00
const auto mvp = renderer->getProjectionMatrix() * renderer->getViewMatrix() * modelMatrix;
setMVP(&mvp[0][0]);
2020-07-25 16:45:03 +00:00
return buffer::params{.vertexOnly = false};
2020-07-25 14:29:05 +00:00
}
void ColorProgram::setMVP(const GLfloat *matrix) {
glUniformMatrix4fv(MVPMatrixID, 1, GL_FALSE, matrix);
}