add Program.get_uniform_location()
This commit is contained in:
parent
5d1351fc66
commit
3d531ace23
@ -54,6 +54,11 @@ namespace glcxx
|
|||||||
bind_attributes(args...);
|
bind_attributes(args...);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GLint get_uniform_location(const char * uniform_name)
|
||||||
|
{
|
||||||
|
return glGetUniformLocation(m_id, uniform_name);
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void allocate();
|
void allocate();
|
||||||
|
|
||||||
|
@ -49,16 +49,4 @@ namespace glcxx
|
|||||||
throw Error(message);
|
throw Error(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
const char *uniform_name = va_arg(va, const char *);
|
|
||||||
if (uniform_name == NULL)
|
|
||||||
break;
|
|
||||||
GLint loc = glGetUniformLocation(m_id, uniform_name);
|
|
||||||
m_uniform_locations.push_back(loc);
|
|
||||||
m_uniform_location_names[uniform_name] = loc;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
|
uniform vec4 color;
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
gl_FragColor = vec4(0.5, 0.1, 0.9, 1.0);
|
gl_FragColor = color;
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,8 @@ void display(SDL_Window * window)
|
|||||||
glEnableVertexAttribArray(0);
|
glEnableVertexAttribArray(0);
|
||||||
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(GLfloat), NULL);
|
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(GLfloat), NULL);
|
||||||
program->use();
|
program->use();
|
||||||
|
GLint uniform_location = program->get_uniform_location("color");
|
||||||
|
glUniform4f(uniform_location, 1.0, 0.6, 0.2, 1.0);
|
||||||
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
|
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
|
||||||
SDL_GL_SwapWindow(window);
|
SDL_GL_SwapWindow(window);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user