diff options
Diffstat (limited to 'gfx/src/core/gl_util.h')
-rw-r--r-- | gfx/src/core/gl_util.h | 47 |
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 | ||