diff options
author | Mike Erwin <significant.bit@gmail.com> | 2016-08-07 04:49:30 +0300 |
---|---|---|
committer | Mike Erwin <significant.bit@gmail.com> | 2016-08-07 08:05:49 +0300 |
commit | 6b21d22c6084a1820f4d82afc59583924076655b (patch) | |
tree | ca8017c47a2880c1506b1b35e36646c841a17f4f /source/blender/gpu/intern/gpu_immediate.c | |
parent | a55c5dbcc4b2ad7bd64386819681bcf1ac722a5b (diff) |
Gawain: fix VAO and VBO binds
Immediate mode no longer leaves its internals bound after use. Part of
transition from a simple prototype app to non-simple Blender, which has
lots of other parts using OpenGL.
Diffstat (limited to 'source/blender/gpu/intern/gpu_immediate.c')
-rw-r--r-- | source/blender/gpu/intern/gpu_immediate.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/gpu/intern/gpu_immediate.c b/source/blender/gpu/intern/gpu_immediate.c index 2e4763012ee..15108093954 100644 --- a/source/blender/gpu/intern/gpu_immediate.c +++ b/source/blender/gpu/intern/gpu_immediate.c @@ -201,7 +201,8 @@ void immInit() imm.primitive = GL_NONE; - // glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); initialized = true; } @@ -257,7 +258,7 @@ void immBegin(GLenum primitive, unsigned vertex_ct) assert(bytes_needed <= IMM_BUFFER_SIZE); #endif -// glBindBuffer(GL_ARRAY_BUFFER, imm.vbo_id); + glBindBuffer(GL_ARRAY_BUFFER, imm.vbo_id); // does the current buffer have enough room? const unsigned available_bytes = IMM_BUFFER_SIZE - imm.buffer_offset; @@ -296,7 +297,7 @@ void immEnd() glUnmapBuffer(GL_ARRAY_BUFFER); // set up VAO -- can be done during Begin or End really -// glBindVertexArray(imm.vao_id); + glBindVertexArray(imm.vao_id); const unsigned stride = immVertexFormat.stride; @@ -334,7 +335,8 @@ void immEnd() glDrawArrays(imm.primitive, 0, imm.vertex_ct); -// glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); // prep for next immBegin imm.buffer_offset += imm.buffer_bytes_mapped; |