aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl/gl_state.cpp
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2015-11-10 11:58:53 -0500
committerSubv <subv2112@gmail.com>2015-11-18 21:03:56 -0500
commit823ce62f2fead8e436c2c916ed7ce5c8b949d1c6 (patch)
treebf0c4bded40858a0db81e993503e2f90f2b9b400 /src/video_core/renderer_opengl/gl_state.cpp
parent1463127fade260bb38dea80401380f24660ec778 (diff)
FragShader: Use an UBO instead of several individual uniforms
Diffstat (limited to 'src/video_core/renderer_opengl/gl_state.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_state.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp
index 77b2816cb..c44497fc3 100644
--- a/src/video_core/renderer_opengl/gl_state.cpp
+++ b/src/video_core/renderer_opengl/gl_state.cpp
@@ -180,6 +180,11 @@ void OpenGLState::Apply() {
glBindBuffer(GL_ARRAY_BUFFER, draw.vertex_buffer);
}
+ // Uniform buffer
+ if (draw.uniform_buffer != cur_state.draw.uniform_buffer) {
+ glBindBuffer(GL_UNIFORM_BUFFER, draw.uniform_buffer);
+ }
+
// Shader program
if (draw.shader_program != cur_state.draw.shader_program) {
glUseProgram(draw.shader_program);
@@ -214,6 +219,9 @@ void OpenGLState::ResetBuffer(GLuint id) {
if (cur_state.draw.vertex_buffer == id) {
cur_state.draw.vertex_buffer = 0;
}
+ if (cur_state.draw.uniform_buffer == id) {
+ cur_state.draw.uniform_buffer = 0;
+ }
}
void OpenGLState::ResetVertexArray(GLuint id) {