Pyrogenesis  trunk
opengles2_wrapper.h
Go to the documentation of this file.
1 /* Copyright (C) 2022 Wildfire Games.
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining
4  * a copy of this software and associated documentation files (the
5  * "Software"), to deal in the Software without restriction, including
6  * without limitation the rights to use, copy, modify, merge, publish,
7  * distribute, sublicense, and/or sell copies of the Software, and to
8  * permit persons to whom the Software is furnished to do so, subject to
9  * the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included
12  * in all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  */
22 
23 #ifndef INCLUDED_GLES2_WRAPPER
24 #define INCLUDED_GLES2_WRAPPER
25 
26 #include "lib/config2.h" // CONFIG2_GLES
27 
28 #if CONFIG2_GLES
29 #include <glad/gles2.h>
30 
31 #define GL_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING
32 #define GL_FRAMEBUFFER_COMPLETE_EXT GL_FRAMEBUFFER_COMPLETE
33 #define GL_FRAMEBUFFER_EXT GL_FRAMEBUFFER
34 #define GL_WRITE_ONLY GL_WRITE_ONLY_OES
35 #define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0
36 #define GL_DEPTH_ATTACHMENT_EXT GL_DEPTH_ATTACHMENT
37 
38  // Functions
39 
40 #define glActiveTextureARB glActiveTexture
41 #define glBlendColorEXT glBlendColor
42 #define glBlendEquationEXT glBlendEquation
43 #define glCompressedTexImage2DARB glCompressedTexImage2D
44 #define glAttachObjectARB glAttachShader
45 #define glBindAttribLocationARB glBindAttribLocation
46 #define glCompileShaderARB glCompileShader
47 #define glCreateProgramObjectARB glCreateProgram
48 #define glCreateShaderObjectARB glCreateShader
49 #define glDisableVertexAttribArrayARB glDisableVertexAttribArray
50 #define glEnableVertexAttribArrayARB glEnableVertexAttribArray
51 #define glGetActiveUniformARB glGetActiveUniform
52 #define glGetUniformLocationARB glGetUniformLocation
53 #define glLinkProgramARB glLinkProgram
54 #define glShaderSourceARB glShaderSource
55 #define glUniform1fARB glUniform1f
56 #define glUniform2fARB glUniform2f
57 #define glUniform3fARB glUniform3f
58 #define glUniform4fARB glUniform4f
59 #define glUniform1iARB glUniform1i
60 #define glUniform1fvARB glUniform1fv
61 #define glUniformMatrix4fvARB glUniformMatrix4fv
62 #define glUseProgramObjectARB glUseProgram
63 #define glVertexAttribPointerARB glVertexAttribPointer
64 #define glBindBufferARB glBindBuffer
65 #define glBufferDataARB glBufferData
66 #define glBufferSubDataARB glBufferSubData
67 #define glDeleteBuffersARB glDeleteBuffers
68 #define glGenBuffersARB glGenBuffers
69 #define glBindFramebufferEXT glBindFramebuffer
70 #define glCheckFramebufferStatusEXT glCheckFramebufferStatus
71 #define glDeleteFramebuffersEXT glDeleteFramebuffers
72 #define glFramebufferTexture2DEXT glFramebufferTexture2D
73 #define glGenFramebuffersEXT glGenFramebuffers
74 
75 // Extensions
76 
77 // GL_OES_texture_border_clamp
78 #define GL_CLAMP_TO_BORDER GL_CLAMP_TO_BORDER_OES
79 #define GL_TEXTURE_BORDER_COLOR GL_TEXTURE_BORDER_COLOR_OES
80 
81 // GL_OES_rgb8_rgba8
82 #define GL_RGBA8 GL_RGBA8_OES
83 
84 // GL_OES_mapbuffer
85 #define glMapBufferARB glMapBufferOES
86 #define glUnmapBufferARB glUnmapBufferOES
87 
88 // GL_OES_depth32
89 #define GL_DEPTH_COMPONENT32 GL_DEPTH_COMPONENT32_OES
90 
91 // GL_KHR_debug
92 #define glDebugMessageCallback glDebugMessageCallbackKHR
93 #define glDebugMessageControl glDebugMessageControlKHR
94 #define glObjectLabel glObjectLabelKHR
95 #define glPopDebugGroup glPopDebugGroupKHR
96 #define glPushDebugGroup glPushDebugGroupKHR
97 
98 #define GL_DEBUG_OUTPUT GL_DEBUG_OUTPUT_KHR
99 #define GL_DEBUG_SEVERITY_HIGH GL_DEBUG_SEVERITY_HIGH_KHR
100 #define GL_DEBUG_SEVERITY_LOW GL_DEBUG_SEVERITY_LOW_KHR
101 #define GL_DEBUG_SEVERITY_MEDIUM GL_DEBUG_SEVERITY_MEDIUM_KHR
102 #define GL_DEBUG_SEVERITY_NOTIFICATION GL_DEBUG_SEVERITY_NOTIFICATION_KHR
103 #define GL_DEBUG_SOURCE_API GL_DEBUG_SOURCE_API_KHR
104 #define GL_DEBUG_SOURCE_APPLICATION GL_DEBUG_SOURCE_APPLICATION_KHR
105 #define GL_DEBUG_SOURCE_OTHER GL_DEBUG_SOURCE_OTHER_KHR
106 #define GL_DEBUG_SOURCE_SHADER_COMPILER GL_DEBUG_SOURCE_SHADER_COMPILER_KHR
107 #define GL_DEBUG_SOURCE_THIRD_PARTY GL_DEBUG_SOURCE_THIRD_PARTY_KHR
108 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR
109 #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR
110 #define GL_DEBUG_TYPE_ERROR GL_DEBUG_TYPE_ERROR_KHR
111 #define GL_DEBUG_TYPE_MARKER GL_DEBUG_TYPE_MARKER_KHR
112 #define GL_DEBUG_TYPE_OTHER GL_DEBUG_TYPE_OTHER_KHR
113 #define GL_DEBUG_TYPE_PERFORMANCE GL_DEBUG_TYPE_PERFORMANCE_KHR
114 #define GL_DEBUG_TYPE_POP_GROUP GL_DEBUG_TYPE_POP_GROUP_KHR
115 #define GL_DEBUG_TYPE_PORTABILITY GL_DEBUG_TYPE_PORTABILITY_KHR
116 #define GL_DEBUG_TYPE_PUSH_GROUP GL_DEBUG_TYPE_PUSH_GROUP_KHR
117 #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR
118 
119 #endif // CONFIG2_GLES
120 
121 #endif // !INCLUDED_GLES2_WRAPPER