8 #ifndef META_OCEAN_RENDERING_GLES_DYNAMIC_LIBRARY_H
9 #define META_OCEAN_RENDERING_GLES_DYNAMIC_LIBRARY_H
13 #ifdef OCEAN_RENDERING_GLES_USE_DYNAMIC_LIBRARY
15 #define GL_GLEXT_PROTOTYPES
17 #if defined(OCEAN_PLATFORM_BUILD_LINUX)
28 #define glActiveTexture(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glActiveTexture_(a)
29 #define glAttachShader(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glAttachShader_(a, b)
30 #define glBindBuffer(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glBindBuffer_(a, b)
31 #define glBindFramebuffer(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glBindFramebuffer_(a, b)
32 #define glBindVertexArray(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glBindVertexArray_(a)
33 #define glBufferData(a, b, c, d) Rendering::GLESceneGraph::GLESDynamicLibrary::glBufferData_(a, b, c, d)
34 #define glCheckFramebufferStatus(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glCheckFramebufferStatus_(a)
35 #define glClearDepthf(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glClearDepthf_(a)
36 #define glCompileShader(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glCompileShader_(a)
37 #define glCompressedTexImage2D(a, b, c, d, e, f, g, h) Rendering::GLESceneGraph::GLESDynamicLibrary::glCompressedTexImage2D_(a, b, c, d, e, f, g, h)
38 #define glCreateProgram() Rendering::GLESceneGraph::GLESDynamicLibrary::glCreateProgram_()
39 #define glCreateShader(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glCreateShader_(a)
40 #define glDeleteBuffers(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glDeleteBuffers_(a, b)
41 #define glDeleteFramebuffers(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glDeleteFramebuffers_(a, b)
42 #define glDeleteProgram(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glDeleteProgram_(a)
43 #define glDeleteShader(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glDeleteShader_(a)
44 #define glDeleteTextures(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glDeleteTextures_(a, b)
45 #define glDeleteVertexArrays(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glDeleteVertexArrays_(a, b)
46 #define glDetachShader(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glDetachShader_(a, b)
47 #define glDrawArrays(a, b, c) Rendering::GLESceneGraph::GLESDynamicLibrary::glDrawArrays_(a, b, c)
48 #define glDrawElements(a, b, c, d) Rendering::GLESceneGraph::GLESDynamicLibrary::glDrawElements_(a, b, c, d)
49 #define glEnableVertexAttribArray(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glEnableVertexAttribArray_(a)
50 #define glFramebufferTexture2D(a, b, c, d, e) Rendering::GLESceneGraph::GLESDynamicLibrary::glFramebufferTexture2D_(a, b, c, d, e)
51 #define glGenBuffers(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glGenBuffers_(a, b)
52 #define glGenerateMipmap(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glGenerateMipmap_(a)
53 #define glGenFramebuffers(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glGenFramebuffers_(a, b)
54 #define glGenTextures(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glGenTextures_(a, b)
55 #define glGenVertexArrays(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glGenVertexArrays_(a, b)
56 #define glGetAttribLocation(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glGetAttribLocation_(a, b)
57 #define glGetProgramInfoLog(a, b, c, d) Rendering::GLESceneGraph::GLESDynamicLibrary::glGetProgramInfoLog_(a, b, c, d)
58 #define glGetProgramiv(a, b, c) Rendering::GLESceneGraph::GLESDynamicLibrary::glGetProgramiv_(a, b, c)
59 #define glGetShaderInfoLog(a, b, c, d) Rendering::GLESceneGraph::GLESDynamicLibrary::glGetShaderInfoLog_(a, b, c, d)
60 #define glGetShaderiv(a, b, c) Rendering::GLESceneGraph::GLESDynamicLibrary::glGetShaderiv_(a, b, c)
61 #define glGetStringi(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glGetStringi_(a, b)
62 #define glGetUniformLocation(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glGetUniformLocation_(a, b)
63 #define glIsProgram(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glIsProgram_(a)
64 #define glLinkProgram(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glLinkProgram_(a)
65 #define glReleaseShaderCompiler() Rendering::GLESceneGraph::GLESDynamicLibrary::glReleaseShaderCompiler_()
66 #define glShaderSource(a, b, c, d) Rendering::GLESceneGraph::GLESDynamicLibrary::glShaderSource_(a, b, c, d)
67 #define glTexImage2DMultisample(a, b, c, d, e, f) Rendering::GLESceneGraph::GLESDynamicLibrary::glTexImage2DMultisample_(a, b, c, d, e, f)
68 #define glUniform1f(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform1f_(a, b)
69 #define glUniform1i(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform1i_(a, b)
70 #define glUniform1ui(a, b) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform1ui_(a, b)
71 #define glUniform2f(a, b, c) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform2f_(a, b, c)
72 #define glUniform2fv(a, b, c) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform2fv_(a, b, c)
73 #define glUniform3f(a, b, c, d) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform3f_(a, b, c, d)
74 #define glUniform3fv(a, b, c) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform3fv_(a, b, c)
75 #define glUniform4f(a, b, c, d, e) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform4f_(a, b, c, d, e)
76 #define glUniform4fv(a, b, c) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform4fv_(a, b, c)
77 #define glUniform1fv(a, b, c) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniform1fv_(a, b, c)
78 #define glUniformMatrix3fv(a, b, c, d) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniformMatrix3fv_(a, b, c, d)
79 #define glUniformMatrix4fv(a, b, c, d) Rendering::GLESceneGraph::GLESDynamicLibrary::glUniformMatrix4fv_(a, b, c, d)
80 #define glUseProgram(a) Rendering::GLESceneGraph::GLESDynamicLibrary::glUseProgram_(a)
81 #define glVertexAttribPointer(a, b, c, d, e, f) Rendering::GLESceneGraph::GLESDynamicLibrary::glVertexAttribPointer_(a, b, c, d, e, f)
82 #define glVertexAttribIPointer(a, b, c, d, e) Rendering::GLESceneGraph::GLESDynamicLibrary::glVertexAttribIPointer_(a, b, c, d, e)
87 namespace GLESceneGraph
98 typedef void (__stdcall *glActiveTextureFunction)(GLenum texture);
99 typedef void (__stdcall *glAttachShaderFunction)(GLuint, GLuint);
100 typedef void (__stdcall *glBindBufferFunction)(GLenum, GLuint);
101 typedef void (__stdcall *glBindFramebufferFunction)(GLenum target, GLuint framebuffer);
102 typedef void (__stdcall *glBindVertexArrayFunction)(GLuint array);
103 typedef void (__stdcall *glBufferDataFunction)(GLenum, GLsizeiptr,
const void*, GLenum);
104 typedef GLenum (__stdcall *glCheckFramebufferStatusFunction)(GLenum target);
105 typedef void (__stdcall *glClearDepthfFunction)(GLclampf);
106 typedef void (__stdcall *glCompileShaderFunction)(GLuint);
107 typedef void (__stdcall *glCompressedTexImage2DFunction)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei,
const void*);
108 typedef GLuint (__stdcall *glCreateProgramFunction)();
109 typedef GLuint (__stdcall *glCreateShaderFunction)(GLenum type);
110 typedef void (__stdcall *glDeleteBuffersFunction)(GLsizei,
const GLuint*);
111 typedef void (__stdcall *glDeleteFramebuffersFunction)(GLsizei n,
const GLuint * framebuffers);
112 typedef void (__stdcall *glDeleteProgramFunction)(GLuint);
113 typedef void (__stdcall *glDeleteShaderFunction)(GLuint);
114 typedef void (__stdcall *glDeleteTexturesFunction)(GLsizei,
const GLuint*);
115 typedef void (__stdcall *glDeleteVertexArraysFunction)(GLsizei,
const GLuint*);
116 typedef void (__stdcall *glDetachShaderFunction)(GLuint, GLuint);
117 typedef void (__stdcall *glDrawArraysFunction)(GLenum, GLint, GLsizei);
118 typedef void (__stdcall *glDrawElementsFunction)(GLenum, GLsizei, GLenum,
const void*);
119 typedef void (__stdcall *glEnableVertexAttribArrayFunction)(GLuint index);
120 typedef void (__stdcall *glFramebufferTexture2DFunction)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
121 typedef void (__stdcall *glGenBuffersFunction)(GLsizei, GLuint*);
122 typedef void (__stdcall *glGenerateMipmapFunction)(GLenum target);
123 typedef void (__stdcall *glGenFramebuffersFunction)(GLsizei n, GLuint *ids);
124 typedef void (__stdcall *glGenTexturesFunction)(GLsizei, GLuint*);
125 typedef void (__stdcall *glGenVertexArraysFunction)(GLsizei n, GLuint *arrays);
126 typedef int (__stdcall *glGetAttribLocationFunction)(GLuint,
const char*);
127 typedef void (__stdcall *glGetProgramInfoLogFunction)(GLuint, GLsizei, GLsizei*,
char*);
128 typedef void (__stdcall *glGetProgramivFunction)(GLuint, GLenum, GLint*);
129 typedef void (__stdcall *glGetShaderInfoLogFunction)(GLuint, GLsizei, GLsizei*,
char*);
130 typedef void (__stdcall *glGetShaderivFunction)(GLuint, GLenum, GLint*);
132 typedef int (__stdcall *glGetUniformLocationFunction)(GLuint,
const char*);
133 typedef GLboolean (__stdcall *glIsProgramFunction)(GLuint program);
134 typedef void (__stdcall *glLinkProgramFunction)(GLuint);
135 typedef void (__stdcall *glReleaseShaderCompilerFunction)();
136 typedef void (__stdcall *glShaderSourceFunction)(GLuint, GLsizei,
const char**,
const GLint*);
137 typedef void (__stdcall *glTexImage2DMultisampleFunction)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean);
138 typedef void (__stdcall *glUniform1fFunction)(GLint location, GLfloat x);
139 typedef void (__stdcall *glUniform1fvFunction)(GLint, GLsizei,
const GLfloat*);
140 typedef void (__stdcall *glUniform1iFunction)(GLint, GLint);
141 typedef void (__stdcall *glUniform1uiFunction)(GLint, GLuint);
142 typedef void (__stdcall *glUniform2fFunction)(GLint, GLfloat, GLfloat);
143 typedef void (__stdcall *glUniform2fvFunction)(GLint location, GLsizei count,
const GLfloat* v);
144 typedef void (__stdcall *glUniform3fFunction)(GLint, GLfloat, GLfloat, GLfloat);
145 typedef void (__stdcall *glUniform3fvFunction)(GLint location, GLsizei count,
const GLfloat* v);
146 typedef void (__stdcall *glUniform4fFunction)(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
147 typedef void (__stdcall *glUniform4fvFunction)(GLint location, GLsizei count,
const GLfloat* v);
148 typedef void (__stdcall *glUniformMatrix3fvFunction)(GLint, GLsizei, GLboolean,
const GLfloat*);
149 typedef void (__stdcall *glUniformMatrix4fvFunction)(GLint, GLsizei, GLboolean,
const GLfloat*);
150 typedef void (__stdcall *glUseProgramFunction)(GLuint);
151 typedef void (__stdcall *glVertexAttribPointerFunction)(GLuint, GLint, GLenum, GLboolean, GLsizei,
const void*);
152 typedef void (__stdcall *glVertexAttribIPointerFunction)(GLuint, GLint, GLenum, GLsizei,
const void*);
176 template <
typename T>
This class stores the OpenGL function pointers for OpenGL 2.0+ functions.
Definition: GLESDynamicLibrary.h:95
static glBindBufferFunction glBindBuffer_
Definition: GLESDynamicLibrary.h:183
static glLinkProgramFunction glLinkProgram_
Definition: GLESDynamicLibrary.h:217
static glUniform1iFunction glUniform1i_
Definition: GLESDynamicLibrary.h:223
static void initializeFunction(T &function, const char *functionName)
Initializes a function pointer.
static glGetAttribLocationFunction glGetAttribLocation_
Definition: GLESDynamicLibrary.h:209
static glGetStringiFunction glGetStringi_
Definition: GLESDynamicLibrary.h:214
static glDeleteVertexArraysFunction glDeleteVertexArrays_
Definition: GLESDynamicLibrary.h:198
static glDrawArraysFunction glDrawArrays_
Definition: GLESDynamicLibrary.h:200
static glClearDepthfFunction glClearDepthf_
Definition: GLESDynamicLibrary.h:188
static glBindVertexArrayFunction glBindVertexArray_
Definition: GLESDynamicLibrary.h:185
static glFramebufferTexture2DFunction glFramebufferTexture2D_
Definition: GLESDynamicLibrary.h:203
GLubyte *(__stdcall * glGetStringiFunction)(GLenum, GLuint)
Definition: GLESDynamicLibrary.h:131
static glShaderSourceFunction glShaderSource_
Definition: GLESDynamicLibrary.h:219
static glCompileShaderFunction glCompileShader_
Definition: GLESDynamicLibrary.h:189
static glUniform4fvFunction glUniform4fv_
Definition: GLESDynamicLibrary.h:230
static glUniform1fvFunction glUniform1fv_
Definition: GLESDynamicLibrary.h:222
static glUniform1uiFunction glUniform1ui_
Definition: GLESDynamicLibrary.h:224
static glUniformMatrix4fvFunction glUniformMatrix4fv_
Definition: GLESDynamicLibrary.h:232
static glReleaseShaderCompilerFunction glReleaseShaderCompiler_
Definition: GLESDynamicLibrary.h:218
static glEnableVertexAttribArrayFunction glEnableVertexAttribArray_
Definition: GLESDynamicLibrary.h:202
static glUniform4fvFunction glUniform3fv_
Definition: GLESDynamicLibrary.h:228
static glUseProgramFunction glUseProgram_
Definition: GLESDynamicLibrary.h:233
static glCheckFramebufferStatusFunction glCheckFramebufferStatus_
Definition: GLESDynamicLibrary.h:187
static glCompressedTexImage2DFunction glCompressedTexImage2D_
Definition: GLESDynamicLibrary.h:190
static glGenVertexArraysFunction glGenVertexArrays_
Definition: GLESDynamicLibrary.h:208
static glDeleteBuffersFunction glDeleteBuffers_
Definition: GLESDynamicLibrary.h:193
static glGetProgramInfoLogFunction glGetProgramInfoLog_
Definition: GLESDynamicLibrary.h:210
static glUniform3fFunction glUniform3f_
Definition: GLESDynamicLibrary.h:227
static glDeleteProgramFunction glDeleteProgram_
Definition: GLESDynamicLibrary.h:195
static glVertexAttribPointerFunction glVertexAttribPointer_
Definition: GLESDynamicLibrary.h:234
static glGetProgramivFunction glGetProgramiv_
Definition: GLESDynamicLibrary.h:211
static glGetShaderivFunction glGetShaderiv_
Definition: GLESDynamicLibrary.h:213
static glUniform4fvFunction glUniform2fv_
Definition: GLESDynamicLibrary.h:226
static glBindFramebufferFunction glBindFramebuffer_
Definition: GLESDynamicLibrary.h:184
static glGenBuffersFunction glGenBuffers_
Definition: GLESDynamicLibrary.h:204
static glDeleteShaderFunction glDeleteShader_
Definition: GLESDynamicLibrary.h:196
static glGenerateMipmapFunction glGenerateMipmap_
Definition: GLESDynamicLibrary.h:205
static void release()
Releases the library interface and disposes all interface functions.
static glDrawElementsFunction glDrawElements_
Definition: GLESDynamicLibrary.h:201
static glIsProgramFunction glIsProgram_
Definition: GLESDynamicLibrary.h:216
static glActiveTextureFunction glActiveTexture_
Definition: GLESDynamicLibrary.h:181
static glCreateProgramFunction glCreateProgram_
Definition: GLESDynamicLibrary.h:191
static glUniform1fFunction glUniform1f_
Definition: GLESDynamicLibrary.h:221
static glGetShaderInfoLogFunction glGetShaderInfoLog_
Definition: GLESDynamicLibrary.h:212
static glVertexAttribIPointerFunction glVertexAttribIPointer_
Definition: GLESDynamicLibrary.h:235
static glAttachShaderFunction glAttachShader_
Definition: GLESDynamicLibrary.h:182
static glCreateShaderFunction glCreateShader_
Definition: GLESDynamicLibrary.h:192
static glUniformMatrix3fvFunction glUniformMatrix3fv_
Definition: GLESDynamicLibrary.h:231
static glGetUniformLocationFunction glGetUniformLocation_
Definition: GLESDynamicLibrary.h:215
static glDeleteTexturesFunction glDeleteTextures_
Definition: GLESDynamicLibrary.h:197
static glBufferDataFunction glBufferData_
Definition: GLESDynamicLibrary.h:186
static glGenFramebuffersFunction glGenFramebuffers_
Definition: GLESDynamicLibrary.h:206
static glGenTexturesFunction glGenTextures_
Definition: GLESDynamicLibrary.h:207
static glDeleteFramebuffersFunction glDeleteFramebuffers_
Definition: GLESDynamicLibrary.h:194
static glUniform2fFunction glUniform2f_
Definition: GLESDynamicLibrary.h:225
static glDetachShaderFunction glDetachShader_
Definition: GLESDynamicLibrary.h:199
static glTexImage2DMultisampleFunction glTexImage2DMultisample_
Definition: GLESDynamicLibrary.h:220
static bool initialize()
Initializes the library interface.
static glUniform4fFunction glUniform4f_
Definition: GLESDynamicLibrary.h:229
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15