]> git.tdb.fi Git - gldbg.git/blobdiff - flavors/gl/source/glstate.cpp
Decode and display element buffer contents
[gldbg.git] / flavors / gl / source / glstate.cpp
index 1459324232f36d3b6af583bfe1def2a3e0ffb22a..e33e49019bc6f660272a20b6cedd06fccef41354 100644 (file)
@@ -127,6 +127,10 @@ GlState::GlState():
        decoder->glBufferSubDataARB = glBufferSubData;
        decoder->glDeleteBuffers = glDeleteBuffers;
        decoder->glDeleteBuffersARB = glDeleteBuffers;
+
+       decoder->glDrawElements = glDrawElements;
+       decoder->glDrawRangeElements = glDrawRangeElements;
+       decoder->glDrawRangeElementsEXT = glDrawRangeElements;
 }
 
 GlState::~GlState()
@@ -412,3 +416,15 @@ void GlState::glDeleteBuffers(void *user_data, int count, const unsigned *ids)
        for(int i=0; i<count; ++i)
                reinterpret_cast<GlState *>(user_data)->buffers.erase(ids[i]);
 }
+
+void GlState::glDrawElements(void *user_data, GLenum, int, GLenum type, const void *)
+{
+       if(BufferState *buf = reinterpret_cast<GlState *>(user_data)->element_buffer)
+               buf->content.update_elements(type);
+}
+
+void GlState::glDrawRangeElements(void *user_data, GLenum, unsigned, unsigned, int, GLenum type, const void *)
+{
+       if(BufferState *buf = reinterpret_cast<GlState *>(user_data)->element_buffer)
+               buf->content.update_elements(type);
+}