aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl/gl_state.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2015-11-18 22:20:12 -0500
committerbunnei <bunneidev@gmail.com>2015-11-18 22:20:12 -0500
commitac829f87e0d32c693b333a35be823878a9b7d178 (patch)
treef14c20303507dbf6e3606761a077c699cbe26b74 /src/video_core/renderer_opengl/gl_state.cpp
parentf971aceac39b643765c45dfb25827e7ea689bb67 (diff)
parent823ce62f2fead8e436c2c916ed7ce5c8b949d1c6 (diff)
Merge pull request #1237 from Subv/ubos
Shaders: Use UBOs instead of individual uniforms in the generated frag shaders
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) {