]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
Improve DEBUGGL
authorbones_was_here <bones_was_here@xa.org.au>
Thu, 21 Jul 2022 23:49:16 +0000 (09:49 +1000)
committerbones_was_here <bones_was_here@xonotic.au>
Tue, 20 Sep 2022 18:10:13 +0000 (04:10 +1000)
glGetError() must be called in a loop to retrieve and reset
multiple error flags.

Signed-off-by: bones_was_here <bones_was_here@xa.org.au>
gl_backend.c
glquake.h

index ad4a0cdc21ae05de04e3d487eacfa9f7f822887f..3b511704474f04c6986c08097d79f45d8edc98c6 100644 (file)
@@ -27,9 +27,7 @@ float gl_modelviewprojection16f[16];
 qbool gl_modelmatrixchanged;
 
 #ifdef DEBUGGL
-int gl_errornumber = 0;
-
-void GL_PrintError(int errornumber, const char *filename, int linenumber)
+void GL_PrintError(GLenum errornumber, const char *filename, unsigned int linenumber)
 {
        switch(errornumber)
        {
index 21da68bcd533f4ebeacaceb9eac2f96c3953eec9..e3f8f6d0eee4a40e35865228f932683369869952 100644 (file)
--- a/glquake.h
+++ b/glquake.h
 
 //====================================================
 
-//#define DEBUGGL
-
-#ifdef DEBUGGL
-#ifdef USE_GLES2
-#define CHECKGLERROR {if (gl_paranoid.integer){if (gl_printcheckerror.integer) Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__);gl_errornumber = glGetError();if (gl_errornumber) GL_PrintError(gl_errornumber, __FILE__, __LINE__);}}
-#else
-#define CHECKGLERROR {if (gl_paranoid.integer){if (gl_printcheckerror.integer) Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__);gl_errornumber = qglGetError ? qglGetError() : 0;if (gl_errornumber) GL_PrintError(gl_errornumber, __FILE__, __LINE__);}}
-#endif //USE_GLES2
-extern int gl_errornumber;
-void GL_PrintError(int errornumber, const char *filename, int linenumber);
-#else
-#define CHECKGLERROR
-#endif //DEBUGGL
-
 #ifndef USE_GLES2
 // this is defined if the SDL_opengl.h is included
 #ifndef GL_ZERO
@@ -1050,4 +1036,25 @@ extern void (GLAPIENTRY *qglViewport)(GLint x, GLint y, GLsizei width, GLsizei h
 #define GL_HALF_FLOAT                                    0x140B
 #define GL_NUM_EXTENSIONS                 0x821D
 
+
+//====================================================
+
+//#define DEBUGGL
+
+#ifdef DEBUGGL
+void GL_PrintError(GLenum errornumber, const char *filename, unsigned int linenumber);
+#define CHECKGLERROR { \
+       if (gl_paranoid.integer) { \
+               GLenum gl_errornumber; \
+               if (gl_printcheckerror.integer) \
+                       Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__); \
+               if (qglGetError) /* bones_was_here: is this pointer check still necessary? */ \
+                       while ((gl_errornumber = qglGetError())) \
+                               GL_PrintError(gl_errornumber, __FILE__, __LINE__); \
+       }}
+#else
+#define CHECKGLERROR
+#endif //DEBUGGL
+
+
 #endif //GLQUAKE_H