Merge branch 'master' of goat:git/laserbrain_demo
authorJohn Tsiombikas <nuclear@mutantstargoat.com>
Wed, 6 Jun 2018 02:42:40 +0000 (05:42 +0300)
committerJohn Tsiombikas <nuclear@mutantstargoat.com>
Wed, 6 Jun 2018 02:42:40 +0000 (05:42 +0300)
src/dbg_gui.cc
src/opengl.c
src/opengl.h

index c1abce3..6a6511f 100644 (file)
@@ -149,7 +149,12 @@ static void render_func(ImDrawData *ddat)
                                glTexCoordPointer(2, GL_FLOAT, sizeof *vbuf, &vbuf[0].uv);
                                glColorPointer(4, GL_UNSIGNED_BYTE, sizeof *vbuf, &vbuf[0].col);
 
-                               glDrawElements(GL_TRIANGLES, cmd->ElemCount, GL_UNSIGNED_SHORT, ibuf);
+                               if(glcaps.draw_range) {
+                                       int max_vidx = cmdlist->VtxBuffer.Size - 1;
+                                       glDrawRangeElements(GL_TRIANGLES, 0, max_vidx, cmd->ElemCount, GL_UNSIGNED_SHORT, ibuf);
+                               } else {
+                                       glDrawElements(GL_TRIANGLES, cmd->ElemCount, GL_UNSIGNED_SHORT, ibuf);
+                               }
 
                                glDisableClientState(GL_VERTEX_ARRAY);
                                glDisableClientState(GL_TEXTURE_COORD_ARRAY);
index 206f21c..f5d6ebf 100644 (file)
@@ -17,6 +17,7 @@ int init_opengl(void)
        glewInit();
 
        glcaps.debug = GLEW_ARB_debug_output;
+       glcaps.draw_range = GLEW_EXT_draw_range_elements;
 
 #ifndef NDEBUG
        if(glcaps.debug) {
index 51d365a..c342384 100644 (file)
@@ -5,6 +5,7 @@
 
 struct GLCaps {
        int debug;      /* ARB_debug_output */
+       int draw_range; /* EXT_draw_range_elements */
 };
 
 extern struct GLCaps glcaps;