]> git.tdb.fi Git - libs/gl.git/commitdiff
Don't consider the current buffer in deciding whether to bind BufferRange
authorMikko Rasa <tdb@tdb.fi>
Sun, 28 Sep 2014 17:52:17 +0000 (20:52 +0300)
committerMikko Rasa <tdb@tdb.fi>
Mon, 29 Sep 2014 15:10:03 +0000 (18:10 +0300)
glBindBufferRange should only be called if the buffer range bound to that
index was changed.  The buffer binding gets changed as a side-effect, but
should not factor into the decision.

source/buffer.cpp

index 93ef98db60ad32654309945d505726d9255414d0..066ab96c5919b2c154879224323f704662ce2e14 100644 (file)
@@ -160,9 +160,12 @@ void BufferRange::bind_to(BufferType t, unsigned i)
 {
        if(t!=buffer.type)
                Buffer::require_buffer_type(t);
-       // Intentionally using bitwise | to avoid short-circuiting
-       if(Buffer::set_current(t, &buffer) | set_current(t, i, this))
+       if(set_current(t, i, this))
+       {
+               // The buffer gets bound as a side effect
+               Buffer::set_current(t, &buffer);
                glBindBufferRange(t, i, buffer.id, offset, size);
+       }
 }
 
 void BufferRange::unbind_from(BufferType t, unsigned i)