Mercurial > hg > forks > gldragon
changeset 55:bf73a2a70ec7
Add OpenGL error checking.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 06 Dec 2019 23:29:26 +0200 |
parents | 73fa5fb437a0 |
children | 8b335eb444ae |
files | gldragon.cpp |
diffstat | 1 files changed, 24 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/gldragon.cpp Fri Dec 06 22:41:33 2019 +0200 +++ b/gldragon.cpp Fri Dec 06 23:29:26 2019 +0200 @@ -39,6 +39,19 @@ /* Helpers */ +bool dmGLCheckErrors(void) +{ + bool ok = true; + GLenum err; + while ((err = glGetError()) != GL_NO_ERROR) + { + dmError("OpenGL error code: 0x%x (%d)\n", err); + ok = false; + } + return ok; +} + + #ifdef GL_GLEXT_PROTOTYPES #define DM_GLEXT_INIT(extproctype, extprocname) /* stub */ #else @@ -201,6 +214,9 @@ dmMsg("GL_VERSION : %s\n", glGetString(GL_VERSION)); dmMsg("VSync mode : %s\n", msg.c_str()); + if (!dmGLCheckErrors()) + return false; + // Setup the window and view port glViewport(0, 0, width, height); @@ -224,7 +240,6 @@ // Enable normal rescaling glEnable(GL_RESCALE_NORMAL); - // Setup depth buffer glClearDepth(1.0f); @@ -238,7 +253,7 @@ // Set correct perspective correction glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); - return true; + return dmGLCheckErrors(); } @@ -425,11 +440,12 @@ if (opt[0] == '-') opt++; - if (opt[0] == 'g') - optUseShaders = true; - else switch (opt[0]) { + case 'g': + optUseShaders = true; + break; + case 'w': case 'h': case 'm': @@ -601,6 +617,9 @@ // Rotate for 2 degrees glRotatef(2.0f, 0, 1, 0); + // Check for errors + dmGLCheckErrors(); + // Return true if a full rotation was done totalFrames++; if (cycleFrames++ == SET_FRAMES)