]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/opengl/pipelinestate_backend.cpp
Keep track of the buffers of bound uniform blocks
[libs/gl.git] / source / backends / opengl / pipelinestate_backend.cpp
index 9616b18be326d99cbccdfa0c30ad0f195732a60f..fb802995f6355e46a6794f07e6f4ec5d1b4e7593 100644 (file)
@@ -108,11 +108,11 @@ void OpenGLPipelineState::apply() const
                for(const PipelineState::BoundUniformBlock &u: self.uniform_blocks)
                        if(u.changed || mask==~0U)
                        {
-                               if(u.block)
+                               if(u.used)
                                {
                                        if(u.binding>=0)
                                        {
-                                               glBindBufferRange(GL_UNIFORM_BUFFER, u.binding, u.block->get_buffer()->id, u.block->get_offset(), u.block->get_data_size());
+                                               glBindBufferRange(GL_UNIFORM_BUFFER, u.binding, u.buffer->id, u.block->get_offset(), u.block->get_data_size());
                                                dev_state.bound_uniform_blocks[u.binding] = 1;
                                        }
                                        else if(u.binding==ReflectData::DEFAULT_BLOCK && self.shprog)
@@ -132,7 +132,7 @@ void OpenGLPipelineState::apply() const
                for(const PipelineState::BoundTexture &t: self.textures)
                        if(t.changed || mask==~0U)
                        {
-                               if(t.texture && t.sampler)
+                               if(t.used)
                                {
                                        if(ARB_direct_state_access)
                                                glBindTextureUnit(t.binding, t.texture->id);