summaryrefslogtreecommitdiff
path: root/gfx/src/core/gl_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/src/core/gl_util.h')
-rw-r--r--gfx/src/core/gl_util.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/gfx/src/core/gl_util.h b/gfx/src/core/gl_util.h
new file mode 100644
index 0000000..a3cc629
--- /dev/null
+++ b/gfx/src/core/gl_util.h
@@ -0,0 +1,47 @@
1#pragma once
2
3#include <glad/glad.h>
4#include <log/log.h>
5
6#include <assert.h>
7
8#define GFX_GL_CONTEXT_PC 1
9#define GFX_GL_CONTEXT_ES 2
10
11#ifndef GFX_GL_CONTEXT
12#define GFX_GL_CONTEXT GFX_GL_CONTEXT_PC
13#endif // GFX_GL_CONTEXT
14
15/// Log an error if an OpenGL has occurred.
16#ifndef NDEBUG
17#define ASSERT_GL \
18 { \
19 GLenum e = glGetError(); \
20 switch (e) { \
21 case GL_NO_ERROR: \
22 break; \
23 case GL_INVALID_ENUM: \
24 LOGE("GL_INVALID_ENUM"); \
25 break; \
26 case GL_INVALID_VALUE: \
27 LOGE("GL_INVALID_VALUE"); \
28 break; \
29 case GL_INVALID_OPERATION: \
30 LOGE("GL_INVALID_OPERATION"); \
31 break; \
32 case GL_INVALID_FRAMEBUFFER_OPERATION: \
33 LOGE("GL_INVALID_FRAMEBUFFER_OPERATION"); \
34 break; \
35 case GL_OUT_OF_MEMORY: \
36 LOGE("GL_OUT_OF_MEMORY"); \
37 break; \
38 /*case GL_STACK_UNDERFLOW: LOGE("GL_STACK_UNDERFLOW");*/ \
39 /*case GL_STACK_OVERFLOW: LOGE("GL_STACK_OVERFLOW");*/ \
40 default: \
41 LOGE("Unknown OpenGL error"); \
42 break; \
43 } \
44 }
45#else // Not NDEBUG.
46#define ASSERT_GL
47#endif