summaryrefslogtreecommitdiffhomepage
path: root/src/rlgl.h
diff options
context:
space:
mode:
authorseanpringle <[email protected]>2020-07-30 20:50:20 +1000
committerGitHub <[email protected]>2020-07-30 12:50:20 +0200
commit1d895616f7cda6779b6e9163099cbdf828759409 (patch)
tree14147c89ade754e6703570d597ca444c8b4c79c2 /src/rlgl.h
parent9c2ff464b025820b3dfe8d051b2fdb3b8a89a16a (diff)
downloadraylib-1d895616f7cda6779b6e9163099cbdf828759409.tar.gz
raylib-1d895616f7cda6779b6e9163099cbdf828759409.zip
rlCheckErrors (#1321)
* rlglCheckErrors * rlglCheckErrors LOG_WARNING * rename to rlCheckErrors; improve messages; revert core.c
Diffstat (limited to 'src/rlgl.h')
-rw-r--r--src/rlgl.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/rlgl.h b/src/rlgl.h
index 56045c83..3837dfc5 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -519,6 +519,7 @@ RLAPI unsigned int rlLoadAttribBuffer(unsigned int vaoId, int shaderLoc, void *b
RLAPI void rlglInit(int width, int height); // Initialize rlgl (buffers, shaders, textures, states)
RLAPI void rlglClose(void); // De-inititialize rlgl (buffers, shaders, textures)
RLAPI void rlglDraw(void); // Update and draw default internal buffers
+RLAPI void rlCheckErrors(void); // Check and log OpenGL error codes
RLAPI int rlGetVersion(void); // Returns current OpenGL version
RLAPI bool rlCheckBufferLimit(int vCount); // Check internal buffer overflow for a given number of vertex
@@ -1794,6 +1795,45 @@ void rlglDraw(void)
#endif
}
+// Check and log OpenGL error codes
+void rlCheckErrors() {
+#if defined(GRAPHICS_API_OPENGL_21) || defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
+ int check = 1;
+ while (check) {
+ const GLenum err = glGetError();
+ switch (err) {
+ case GL_NO_ERROR:
+ check = 0;
+ break;
+ case 0x0500: // GL_INVALID_ENUM:
+ TRACELOG(LOG_WARNING, "GL: Error detected: GL_INVALID_ENUM");
+ break;
+ case 0x0501: //GL_INVALID_VALUE:
+ TRACELOG(LOG_WARNING, "GL: Error detected: GL_INVALID_VALUE");
+ break;
+ case 0x0502: //GL_INVALID_OPERATION:
+ TRACELOG(LOG_WARNING, "GL: Error detected: GL_INVALID_OPERATION");
+ break;
+ case 0x0503: // GL_STACK_OVERFLOW:
+ TRACELOG(LOG_WARNING, "GL: Error detected: GL_STACK_OVERFLOW");
+ break;
+ case 0x0504: // GL_STACK_UNDERFLOW:
+ TRACELOG(LOG_WARNING, "GL: Error detected: GL_STACK_UNDERFLOW");
+ break;
+ case 0x0505: // GL_OUT_OF_MEMORY:
+ TRACELOG(LOG_WARNING, "GL: Error detected: GL_OUT_OF_MEMORY");
+ break;
+ case 0x0506: // GL_INVALID_FRAMEBUFFER_OPERATION:
+ TRACELOG(LOG_WARNING, "GL: Error detected: GL_INVALID_FRAMEBUFFER_OPERATION");
+ break;
+ default:
+ TRACELOG(LOG_WARNING, "GL: Error detected: unknown error code %x", err);
+ break;
+ }
+ }
+#endif
+}
+
// Returns current OpenGL version
int rlGetVersion(void)
{