16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-21 14:49:19 +02:00

uniform mvp optimizations

This commit is contained in:
VB
2017-03-20 17:51:40 +01:00
parent 4d19e49398
commit b92a1e58ae
7 changed files with 137 additions and 145 deletions

View File

@@ -103,10 +103,21 @@ void gl_program_mvp::copy_gl_mvp()
glUniformMatrix4fv(p_uniform, 1, GL_FALSE, p.e);
}
void gl_program_mvp::set_mv(glm::mat4 &m)
{
glUniformMatrix4fv(mv_uniform, 1, GL_FALSE, glm::value_ptr(m));
}
void gl_program_mvp::set_p(glm::mat4 &m)
{
glUniformMatrix4fv(p_uniform, 1, GL_FALSE, glm::value_ptr(m));
}
gl_program_light::gl_program_light(std::vector<gl_shader> v) : gl_program_mvp(v)
{
ambient_uniform = glGetUniformLocation(id, "ambient");
lcount_uniform = glGetUniformLocation(id, "lights_count");
specular_uniform = glGetUniformLocation(id, "specular");
for (size_t i = 0; i < MAX_LIGHTS; i++)
{
@@ -157,4 +168,10 @@ void gl_program_light::set_light(GLuint i, type t, float3 &pos, float3 &dir,
glUniform3fv(lights_uniform[i].color, 1, &color.x);
glUniform1f(lights_uniform[i].linear, linear);
glUniform1f(lights_uniform[i].quadratic, quadratic);
}
void gl_program_light::set_object(float specular)
{
glUseProgram(id);
glUniform1f(specular_uniform, specular);
}