01ca42b2 |
1 | // Created on: 2014-03-17 |
2 | // Created by: Kirill GAVRILOV |
3 | // Copyright (c) 2014 OPEN CASCADE SAS |
4 | // |
5 | // This file is part of Open CASCADE Technology software library. |
6 | // |
7 | // This library is free software; you can redistribute it and/or modify it under |
8 | // the terms of the GNU Lesser General Public License version 2.1 as published |
9 | // by the Free Software Foundation, with special exception defined in the file |
10 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
11 | // distribution for complete text of the license and disclaimer of any warranty. |
12 | // |
13 | // Alternatively, this file may be used under the terms of Open CASCADE |
14 | // commercial license or contractual agreement. |
15 | |
16 | #ifndef _OpenGl_GlFunctions_Header |
17 | #define _OpenGl_GlFunctions_Header |
18 | |
19 | // required for correct APIENTRY definition |
20 | #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) |
21 | #define WIN32_LEAN_AND_MEAN |
22 | #include <windows.h> |
23 | #endif |
24 | |
25 | #ifndef APIENTRY |
26 | #define APIENTRY |
27 | #endif |
28 | #ifndef APIENTRYP |
29 | #define APIENTRYP APIENTRY * |
30 | #endif |
31 | #ifndef GLAPI |
32 | #define GLAPI extern |
33 | #endif |
34 | |
35 | // exclude modern definitions and system-provided glext.h, should be defined before gl.h inclusion |
36 | #define GL_GLEXT_LEGACY |
37 | |
38 | // include main OpenGL header provided with system |
39 | #if defined(__APPLE__) |
40 | #include <OpenGL/gl.h> |
41 | #include <OpenGL/glu.h> |
42 | #define __X_GL_H // prevent chaotic gl.h inclusions to avoid compile errors |
43 | #else |
44 | #include <GL/gl.h> |
45 | #include <GL/glu.h> |
46 | #endif |
47 | |
48 | #include <InterfaceGraphic.hxx> |
49 | #include <InterfaceGraphic_tgl_all.hxx> |
50 | #include <InterfaceGraphic_telem.hxx> |
51 | |
52 | // GL version can be defined by system gl.h header |
53 | #undef GL_VERSION_1_2 |
54 | #undef GL_VERSION_1_3 |
55 | #undef GL_VERSION_1_4 |
56 | #undef GL_VERSION_1_5 |
57 | #undef GL_VERSION_2_0 |
58 | #undef GL_VERSION_2_1 |
59 | #undef GL_VERSION_3_0 |
60 | #undef GL_VERSION_3_1 |
61 | #undef GL_VERSION_3_2 |
62 | #undef GL_VERSION_3_3 |
63 | #undef GL_VERSION_4_0 |
64 | #undef GL_VERSION_4_1 |
65 | #undef GL_VERSION_4_2 |
66 | #undef GL_VERSION_4_3 |
67 | #undef GL_VERSION_4_4 |
68 | |
69 | // include glext.h provided by Khronos group |
70 | #include <glext.h> |
71 | |
72 | //! Mega structure defines the complete list of OpenGL functions. |
73 | struct OpenGl_GlFunctions |
74 | { |
75 | |
76 | public: //! @name OpenGL 1.2 |
77 | |
78 | PFNGLBLENDCOLORPROC glBlendColor; |
79 | PFNGLBLENDEQUATIONPROC glBlendEquation; |
80 | PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements; |
81 | PFNGLTEXIMAGE3DPROC glTexImage3D; |
82 | PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D; |
83 | PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D; |
84 | |
85 | public: //! @name OpenGL 1.3 |
86 | |
87 | PFNGLACTIVETEXTUREPROC glActiveTexture; |
88 | PFNGLSAMPLECOVERAGEPROC glSampleCoverage; |
89 | PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D; |
90 | PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D; |
91 | PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D; |
92 | PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D; |
93 | PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D; |
94 | PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D; |
95 | PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage; |
96 | |
97 | PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTexture; |
98 | PFNGLMULTITEXCOORD1DPROC glMultiTexCoord1d; |
99 | PFNGLMULTITEXCOORD1DVPROC glMultiTexCoord1dv; |
100 | PFNGLMULTITEXCOORD1FPROC glMultiTexCoord1f; |
101 | PFNGLMULTITEXCOORD1FVPROC glMultiTexCoord1fv; |
102 | PFNGLMULTITEXCOORD1IPROC glMultiTexCoord1i; |
103 | PFNGLMULTITEXCOORD1IVPROC glMultiTexCoord1iv; |
104 | PFNGLMULTITEXCOORD1SPROC glMultiTexCoord1s; |
105 | PFNGLMULTITEXCOORD1SVPROC glMultiTexCoord1sv; |
106 | PFNGLMULTITEXCOORD2DPROC glMultiTexCoord2d; |
107 | PFNGLMULTITEXCOORD2DVPROC glMultiTexCoord2dv; |
108 | PFNGLMULTITEXCOORD2FPROC glMultiTexCoord2f; |
109 | PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv; |
110 | PFNGLMULTITEXCOORD2IPROC glMultiTexCoord2i; |
111 | PFNGLMULTITEXCOORD2IVPROC glMultiTexCoord2iv; |
112 | PFNGLMULTITEXCOORD2SPROC glMultiTexCoord2s; |
113 | PFNGLMULTITEXCOORD2SVPROC glMultiTexCoord2sv; |
114 | PFNGLMULTITEXCOORD3DPROC glMultiTexCoord3d; |
115 | PFNGLMULTITEXCOORD3DVPROC glMultiTexCoord3dv; |
116 | PFNGLMULTITEXCOORD3FPROC glMultiTexCoord3f; |
117 | PFNGLMULTITEXCOORD3FVPROC glMultiTexCoord3fv; |
118 | PFNGLMULTITEXCOORD3IPROC glMultiTexCoord3i; |
119 | PFNGLMULTITEXCOORD3IVPROC glMultiTexCoord3iv; |
120 | PFNGLMULTITEXCOORD3SPROC glMultiTexCoord3s; |
121 | PFNGLMULTITEXCOORD3SVPROC glMultiTexCoord3sv; |
122 | PFNGLMULTITEXCOORD4DPROC glMultiTexCoord4d; |
123 | PFNGLMULTITEXCOORD4DVPROC glMultiTexCoord4dv; |
124 | PFNGLMULTITEXCOORD4FPROC glMultiTexCoord4f; |
125 | PFNGLMULTITEXCOORD4FVPROC glMultiTexCoord4fv; |
126 | PFNGLMULTITEXCOORD4IPROC glMultiTexCoord4i; |
127 | PFNGLMULTITEXCOORD4IVPROC glMultiTexCoord4iv; |
128 | PFNGLMULTITEXCOORD4SPROC glMultiTexCoord4s; |
129 | PFNGLMULTITEXCOORD4SVPROC glMultiTexCoord4sv; |
130 | PFNGLLOADTRANSPOSEMATRIXFPROC glLoadTransposeMatrixf; |
131 | PFNGLLOADTRANSPOSEMATRIXDPROC glLoadTransposeMatrixd; |
132 | PFNGLMULTTRANSPOSEMATRIXFPROC glMultTransposeMatrixf; |
133 | PFNGLMULTTRANSPOSEMATRIXDPROC glMultTransposeMatrixd; |
134 | |
135 | public: //! @name OpenGL 1.4 |
136 | |
137 | PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate; |
138 | PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays; |
139 | PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements; |
140 | PFNGLPOINTPARAMETERFPROC glPointParameterf; |
141 | PFNGLPOINTPARAMETERFVPROC glPointParameterfv; |
142 | PFNGLPOINTPARAMETERIPROC glPointParameteri; |
143 | PFNGLPOINTPARAMETERIVPROC glPointParameteriv; |
144 | |
145 | public: //! @name OpenGL 1.5 |
146 | |
147 | PFNGLGENQUERIESPROC glGenQueries; |
148 | PFNGLDELETEQUERIESPROC glDeleteQueries; |
149 | PFNGLISQUERYPROC glIsQuery; |
150 | PFNGLBEGINQUERYPROC glBeginQuery; |
151 | PFNGLENDQUERYPROC glEndQuery; |
152 | PFNGLGETQUERYIVPROC glGetQueryiv; |
153 | PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv; |
154 | PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv; |
155 | PFNGLBINDBUFFERPROC glBindBuffer; |
156 | PFNGLDELETEBUFFERSPROC glDeleteBuffers; |
157 | PFNGLGENBUFFERSPROC glGenBuffers; |
158 | PFNGLISBUFFERPROC glIsBuffer; |
159 | PFNGLBUFFERDATAPROC glBufferData; |
160 | PFNGLBUFFERSUBDATAPROC glBufferSubData; |
161 | PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData; |
162 | PFNGLMAPBUFFERPROC glMapBuffer; |
163 | PFNGLUNMAPBUFFERPROC glUnmapBuffer; |
164 | PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv; |
165 | PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv; |
166 | |
167 | public: //! @name OpenGL 2.0 |
168 | |
169 | PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate; |
170 | PFNGLDRAWBUFFERSPROC glDrawBuffers; |
171 | PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate; |
172 | PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate; |
173 | PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate; |
174 | PFNGLATTACHSHADERPROC glAttachShader; |
175 | PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation; |
176 | PFNGLCOMPILESHADERPROC glCompileShader; |
177 | PFNGLCREATEPROGRAMPROC glCreateProgram; |
178 | PFNGLCREATESHADERPROC glCreateShader; |
179 | PFNGLDELETEPROGRAMPROC glDeleteProgram; |
180 | PFNGLDELETESHADERPROC glDeleteShader; |
181 | PFNGLDETACHSHADERPROC glDetachShader; |
182 | PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray; |
183 | PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray; |
184 | PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib; |
185 | PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform; |
186 | PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders; |
187 | PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation; |
188 | PFNGLGETPROGRAMIVPROC glGetProgramiv; |
189 | PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog; |
190 | PFNGLGETSHADERIVPROC glGetShaderiv; |
191 | PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog; |
192 | PFNGLGETSHADERSOURCEPROC glGetShaderSource; |
193 | PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation; |
194 | PFNGLGETUNIFORMFVPROC glGetUniformfv; |
195 | PFNGLGETUNIFORMIVPROC glGetUniformiv; |
196 | PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv; |
197 | PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv; |
198 | PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv; |
199 | PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv; |
200 | PFNGLISPROGRAMPROC glIsProgram; |
201 | PFNGLISSHADERPROC glIsShader; |
202 | PFNGLLINKPROGRAMPROC glLinkProgram; |
203 | PFNGLSHADERSOURCEPROC glShaderSource; |
204 | PFNGLUSEPROGRAMPROC glUseProgram; |
205 | PFNGLUNIFORM1FPROC glUniform1f; |
206 | PFNGLUNIFORM2FPROC glUniform2f; |
207 | PFNGLUNIFORM3FPROC glUniform3f; |
208 | PFNGLUNIFORM4FPROC glUniform4f; |
209 | PFNGLUNIFORM1IPROC glUniform1i; |
210 | PFNGLUNIFORM2IPROC glUniform2i; |
211 | PFNGLUNIFORM3IPROC glUniform3i; |
212 | PFNGLUNIFORM4IPROC glUniform4i; |
213 | PFNGLUNIFORM1FVPROC glUniform1fv; |
214 | PFNGLUNIFORM2FVPROC glUniform2fv; |
215 | PFNGLUNIFORM3FVPROC glUniform3fv; |
216 | PFNGLUNIFORM4FVPROC glUniform4fv; |
217 | PFNGLUNIFORM1IVPROC glUniform1iv; |
218 | PFNGLUNIFORM2IVPROC glUniform2iv; |
219 | PFNGLUNIFORM3IVPROC glUniform3iv; |
220 | PFNGLUNIFORM4IVPROC glUniform4iv; |
221 | PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv; |
222 | PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv; |
223 | PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv; |
224 | PFNGLVALIDATEPROGRAMPROC glValidateProgram; |
225 | PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d; |
226 | PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv; |
227 | PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f; |
228 | PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv; |
229 | PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s; |
230 | PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv; |
231 | PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d; |
232 | PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv; |
233 | PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f; |
234 | PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv; |
235 | PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s; |
236 | PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv; |
237 | PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d; |
238 | PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv; |
239 | PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f; |
240 | PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv; |
241 | PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s; |
242 | PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv; |
243 | PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv; |
244 | PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv; |
245 | PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv; |
246 | PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub; |
247 | PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv; |
248 | PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv; |
249 | PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv; |
250 | PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv; |
251 | PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d; |
252 | PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv; |
253 | PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f; |
254 | PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv; |
255 | PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv; |
256 | PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s; |
257 | PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv; |
258 | PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv; |
259 | PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv; |
260 | PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv; |
261 | PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer; |
262 | |
263 | public: //! @name OpenGL 2.1 |
264 | |
265 | PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv; |
266 | PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv; |
267 | PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv; |
268 | PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv; |
269 | PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv; |
270 | PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv; |
271 | |
272 | public: //! @name GL_ARB_framebuffer_object (added to OpenGL 3.0 core) |
273 | |
274 | PFNGLISRENDERBUFFERPROC glIsRenderbuffer; |
275 | PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer; |
276 | PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers; |
277 | PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers; |
278 | PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage; |
279 | PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv; |
280 | PFNGLISFRAMEBUFFERPROC glIsFramebuffer; |
281 | PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer; |
282 | PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers; |
283 | PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers; |
284 | PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus; |
285 | PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D; |
286 | PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D; |
287 | PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D; |
288 | PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer; |
289 | PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv; |
290 | PFNGLGENERATEMIPMAPPROC glGenerateMipmap; |
291 | PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer; |
292 | PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample; |
293 | PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer; |
294 | |
295 | public: //! @name GL_ARB_vertex_array_object (added to OpenGL 3.0 core) |
296 | |
297 | PFNGLBINDVERTEXARRAYPROC glBindVertexArray; |
298 | PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays; |
299 | PFNGLGENVERTEXARRAYSPROC glGenVertexArrays; |
300 | PFNGLISVERTEXARRAYPROC glIsVertexArray; |
301 | |
302 | public: //! @name GL_ARB_map_buffer_range (added to OpenGL 3.0 core) |
303 | |
304 | PFNGLMAPBUFFERRANGEPROC glMapBufferRange; |
305 | PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange; |
306 | |
307 | public: //! @name OpenGL 3.0 |
308 | |
309 | PFNGLCOLORMASKIPROC glColorMaski; |
310 | PFNGLGETBOOLEANI_VPROC glGetBooleani_v; |
311 | PFNGLGETINTEGERI_VPROC glGetIntegeri_v; |
312 | PFNGLENABLEIPROC glEnablei; |
313 | PFNGLDISABLEIPROC glDisablei; |
314 | PFNGLISENABLEDIPROC glIsEnabledi; |
315 | PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback; |
316 | PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback; |
317 | PFNGLBINDBUFFERRANGEPROC glBindBufferRange; |
318 | PFNGLBINDBUFFERBASEPROC glBindBufferBase; |
319 | PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings; |
320 | PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying; |
321 | PFNGLCLAMPCOLORPROC glClampColor; |
322 | PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender; |
323 | PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender; |
324 | PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer; |
325 | PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv; |
326 | PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv; |
327 | PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i; |
328 | PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i; |
329 | PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i; |
330 | PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i; |
331 | PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui; |
332 | PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui; |
333 | PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui; |
334 | PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui; |
335 | PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv; |
336 | PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv; |
337 | PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv; |
338 | PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv; |
339 | PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv; |
340 | PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv; |
341 | PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv; |
342 | PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv; |
343 | PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv; |
344 | PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv; |
345 | PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv; |
346 | PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv; |
347 | PFNGLGETUNIFORMUIVPROC glGetUniformuiv; |
348 | PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation; |
349 | PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation; |
350 | PFNGLUNIFORM1UIPROC glUniform1ui; |
351 | PFNGLUNIFORM2UIPROC glUniform2ui; |
352 | PFNGLUNIFORM3UIPROC glUniform3ui; |
353 | PFNGLUNIFORM4UIPROC glUniform4ui; |
354 | PFNGLUNIFORM1UIVPROC glUniform1uiv; |
355 | PFNGLUNIFORM2UIVPROC glUniform2uiv; |
356 | PFNGLUNIFORM3UIVPROC glUniform3uiv; |
357 | PFNGLUNIFORM4UIVPROC glUniform4uiv; |
358 | PFNGLTEXPARAMETERIIVPROC glTexParameterIiv; |
359 | PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv; |
360 | PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv; |
361 | PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv; |
362 | PFNGLCLEARBUFFERIVPROC glClearBufferiv; |
363 | PFNGLCLEARBUFFERUIVPROC glClearBufferuiv; |
364 | PFNGLCLEARBUFFERFVPROC glClearBufferfv; |
365 | PFNGLCLEARBUFFERFIPROC glClearBufferfi; |
366 | PFNGLGETSTRINGIPROC glGetStringi; |
367 | |
368 | public: //! @name GL_ARB_uniform_buffer_object (added to OpenGL 3.1 core) |
369 | |
370 | PFNGLGETUNIFORMINDICESPROC glGetUniformIndices; |
371 | PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv; |
372 | PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformName; |
373 | PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex; |
374 | PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv; |
375 | PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName; |
376 | PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding; |
377 | |
378 | public: //! @name GL_ARB_copy_buffer (added to OpenGL 3.1 core) |
379 | |
380 | PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData; |
381 | |
382 | public: //! @name OpenGL 3.1 |
383 | |
384 | PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced; |
385 | PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced; |
386 | PFNGLTEXBUFFERPROC glTexBuffer; |
387 | PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex; |
388 | |
389 | public: //! @name GL_ARB_draw_elements_base_vertex (added to OpenGL 3.2 core) |
390 | |
391 | PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex; |
392 | PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex; |
393 | PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex; |
394 | PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex; |
395 | |
396 | public: //! @name GL_ARB_provoking_vertex (added to OpenGL 3.2 core) |
397 | |
398 | PFNGLPROVOKINGVERTEXPROC glProvokingVertex; |
399 | |
400 | public: //! @name GL_ARB_sync (added to OpenGL 3.2 core) |
401 | |
402 | PFNGLFENCESYNCPROC glFenceSync; |
403 | PFNGLISSYNCPROC glIsSync; |
404 | PFNGLDELETESYNCPROC glDeleteSync; |
405 | PFNGLCLIENTWAITSYNCPROC glClientWaitSync; |
406 | PFNGLWAITSYNCPROC glWaitSync; |
407 | PFNGLGETINTEGER64VPROC glGetInteger64v; |
408 | PFNGLGETSYNCIVPROC glGetSynciv; |
409 | |
410 | public: //! @name GL_ARB_texture_multisample (added to OpenGL 3.2 core) |
411 | |
412 | PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample; |
413 | PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample; |
414 | PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv; |
415 | PFNGLSAMPLEMASKIPROC glSampleMaski; |
416 | |
417 | public: //! @name OpenGL 3.2 |
418 | |
419 | PFNGLGETINTEGER64I_VPROC glGetInteger64i_v; |
420 | PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v; |
421 | PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture; |
422 | |
423 | public: //! @name GL_ARB_blend_func_extended (added to OpenGL 3.3 core) |
424 | |
425 | PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glBindFragDataLocationIndexed; |
426 | PFNGLGETFRAGDATAINDEXPROC glGetFragDataIndex; |
427 | |
428 | public: //! @name GL_ARB_sampler_objects (added to OpenGL 3.3 core) |
429 | |
430 | PFNGLGENSAMPLERSPROC glGenSamplers; |
431 | PFNGLDELETESAMPLERSPROC glDeleteSamplers; |
432 | PFNGLISSAMPLERPROC glIsSampler; |
433 | PFNGLBINDSAMPLERPROC glBindSampler; |
434 | PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri; |
435 | PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv; |
436 | PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf; |
437 | PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv; |
438 | PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv; |
439 | PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv; |
440 | PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv; |
441 | PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv; |
442 | PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv; |
443 | PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv; |
444 | |
445 | public: //! @name GL_ARB_timer_query (added to OpenGL 3.3 core) |
446 | |
447 | PFNGLQUERYCOUNTERPROC glQueryCounter; |
448 | PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v; |
449 | PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v; |
450 | |
451 | public: //! @name GL_ARB_vertex_type_2_10_10_10_rev (added to OpenGL 3.3 core) |
452 | |
453 | PFNGLVERTEXP2UIPROC glVertexP2ui; |
454 | PFNGLVERTEXP2UIVPROC glVertexP2uiv; |
455 | PFNGLVERTEXP3UIPROC glVertexP3ui; |
456 | PFNGLVERTEXP3UIVPROC glVertexP3uiv; |
457 | PFNGLVERTEXP4UIPROC glVertexP4ui; |
458 | PFNGLVERTEXP4UIVPROC glVertexP4uiv; |
459 | PFNGLTEXCOORDP1UIPROC glTexCoordP1ui; |
460 | PFNGLTEXCOORDP1UIVPROC glTexCoordP1uiv; |
461 | PFNGLTEXCOORDP2UIPROC glTexCoordP2ui; |
462 | PFNGLTEXCOORDP2UIVPROC glTexCoordP2uiv; |
463 | PFNGLTEXCOORDP3UIPROC glTexCoordP3ui; |
464 | PFNGLTEXCOORDP3UIVPROC glTexCoordP3uiv; |
465 | PFNGLTEXCOORDP4UIPROC glTexCoordP4ui; |
466 | PFNGLTEXCOORDP4UIVPROC glTexCoordP4uiv; |
467 | PFNGLMULTITEXCOORDP1UIPROC glMultiTexCoordP1ui; |
468 | PFNGLMULTITEXCOORDP1UIVPROC glMultiTexCoordP1uiv; |
469 | PFNGLMULTITEXCOORDP2UIPROC glMultiTexCoordP2ui; |
470 | PFNGLMULTITEXCOORDP2UIVPROC glMultiTexCoordP2uiv; |
471 | PFNGLMULTITEXCOORDP3UIPROC glMultiTexCoordP3ui; |
472 | PFNGLMULTITEXCOORDP3UIVPROC glMultiTexCoordP3uiv; |
473 | PFNGLMULTITEXCOORDP4UIPROC glMultiTexCoordP4ui; |
474 | PFNGLMULTITEXCOORDP4UIVPROC glMultiTexCoordP4uiv; |
475 | PFNGLNORMALP3UIPROC glNormalP3ui; |
476 | PFNGLNORMALP3UIVPROC glNormalP3uiv; |
477 | PFNGLCOLORP3UIPROC glColorP3ui; |
478 | PFNGLCOLORP3UIVPROC glColorP3uiv; |
479 | PFNGLCOLORP4UIPROC glColorP4ui; |
480 | PFNGLCOLORP4UIVPROC glColorP4uiv; |
481 | PFNGLSECONDARYCOLORP3UIPROC glSecondaryColorP3ui; |
482 | PFNGLSECONDARYCOLORP3UIVPROC glSecondaryColorP3uiv; |
483 | PFNGLVERTEXATTRIBP1UIPROC glVertexAttribP1ui; |
484 | PFNGLVERTEXATTRIBP1UIVPROC glVertexAttribP1uiv; |
485 | PFNGLVERTEXATTRIBP2UIPROC glVertexAttribP2ui; |
486 | PFNGLVERTEXATTRIBP2UIVPROC glVertexAttribP2uiv; |
487 | PFNGLVERTEXATTRIBP3UIPROC glVertexAttribP3ui; |
488 | PFNGLVERTEXATTRIBP3UIVPROC glVertexAttribP3uiv; |
489 | PFNGLVERTEXATTRIBP4UIPROC glVertexAttribP4ui; |
490 | PFNGLVERTEXATTRIBP4UIVPROC glVertexAttribP4uiv; |
491 | |
492 | public: //! @name OpenGL 3.3 |
493 | |
494 | PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor; |
495 | |
496 | public: //! @name GL_ARB_draw_indirect (added to OpenGL 4.0 core) |
497 | |
498 | PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect; |
499 | PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect; |
500 | |
501 | public: //! @name GL_ARB_gpu_shader_fp64 (added to OpenGL 4.0 core) |
502 | |
503 | PFNGLUNIFORM1DPROC glUniform1d; |
504 | PFNGLUNIFORM2DPROC glUniform2d; |
505 | PFNGLUNIFORM3DPROC glUniform3d; |
506 | PFNGLUNIFORM4DPROC glUniform4d; |
507 | PFNGLUNIFORM1DVPROC glUniform1dv; |
508 | PFNGLUNIFORM2DVPROC glUniform2dv; |
509 | PFNGLUNIFORM3DVPROC glUniform3dv; |
510 | PFNGLUNIFORM4DVPROC glUniform4dv; |
511 | PFNGLUNIFORMMATRIX2DVPROC glUniformMatrix2dv; |
512 | PFNGLUNIFORMMATRIX3DVPROC glUniformMatrix3dv; |
513 | PFNGLUNIFORMMATRIX4DVPROC glUniformMatrix4dv; |
514 | PFNGLUNIFORMMATRIX2X3DVPROC glUniformMatrix2x3dv; |
515 | PFNGLUNIFORMMATRIX2X4DVPROC glUniformMatrix2x4dv; |
516 | PFNGLUNIFORMMATRIX3X2DVPROC glUniformMatrix3x2dv; |
517 | PFNGLUNIFORMMATRIX3X4DVPROC glUniformMatrix3x4dv; |
518 | PFNGLUNIFORMMATRIX4X2DVPROC glUniformMatrix4x2dv; |
519 | PFNGLUNIFORMMATRIX4X3DVPROC glUniformMatrix4x3dv; |
520 | PFNGLGETUNIFORMDVPROC glGetUniformdv; |
521 | |
522 | public: //! @name GL_ARB_shader_subroutine (added to OpenGL 4.0 core) |
523 | |
524 | PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glGetSubroutineUniformLocation; |
525 | PFNGLGETSUBROUTINEINDEXPROC glGetSubroutineIndex; |
526 | PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glGetActiveSubroutineUniformiv; |
527 | PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glGetActiveSubroutineUniformName; |
528 | PFNGLGETACTIVESUBROUTINENAMEPROC glGetActiveSubroutineName; |
529 | PFNGLUNIFORMSUBROUTINESUIVPROC glUniformSubroutinesuiv; |
530 | PFNGLGETUNIFORMSUBROUTINEUIVPROC glGetUniformSubroutineuiv; |
531 | PFNGLGETPROGRAMSTAGEIVPROC glGetProgramStageiv; |
532 | |
533 | public: //! @name GL_ARB_tessellation_shader (added to OpenGL 4.0 core) |
534 | |
535 | PFNGLPATCHPARAMETERIPROC glPatchParameteri; |
536 | PFNGLPATCHPARAMETERFVPROC glPatchParameterfv; |
537 | |
538 | public: //! @name GL_ARB_transform_feedback2 (added to OpenGL 4.0 core) |
539 | |
540 | PFNGLBINDTRANSFORMFEEDBACKPROC glBindTransformFeedback; |
541 | PFNGLDELETETRANSFORMFEEDBACKSPROC glDeleteTransformFeedbacks; |
542 | PFNGLGENTRANSFORMFEEDBACKSPROC glGenTransformFeedbacks; |
543 | PFNGLISTRANSFORMFEEDBACKPROC glIsTransformFeedback; |
544 | PFNGLPAUSETRANSFORMFEEDBACKPROC glPauseTransformFeedback; |
545 | PFNGLRESUMETRANSFORMFEEDBACKPROC glResumeTransformFeedback; |
546 | PFNGLDRAWTRANSFORMFEEDBACKPROC glDrawTransformFeedback; |
547 | |
548 | public: //! @name GL_ARB_transform_feedback3 (added to OpenGL 4.0 core) |
549 | |
550 | PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glDrawTransformFeedbackStream; |
551 | PFNGLBEGINQUERYINDEXEDPROC glBeginQueryIndexed; |
552 | PFNGLENDQUERYINDEXEDPROC glEndQueryIndexed; |
553 | PFNGLGETQUERYINDEXEDIVPROC glGetQueryIndexediv; |
554 | |
555 | public: //! @name OpenGL 4.0 |
556 | |
557 | PFNGLMINSAMPLESHADINGPROC glMinSampleShading; |
558 | PFNGLBLENDEQUATIONIPROC glBlendEquationi; |
559 | PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei; |
560 | PFNGLBLENDFUNCIPROC glBlendFunci; |
561 | PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei; |
562 | |
563 | public: //! @name GL_ARB_ES2_compatibility (added to OpenGL 4.1 core) |
564 | |
565 | PFNGLRELEASESHADERCOMPILERPROC glReleaseShaderCompiler; |
566 | PFNGLSHADERBINARYPROC glShaderBinary; |
567 | PFNGLGETSHADERPRECISIONFORMATPROC glGetShaderPrecisionFormat; |
568 | PFNGLDEPTHRANGEFPROC glDepthRangef; |
569 | PFNGLCLEARDEPTHFPROC glClearDepthf; |
570 | |
571 | public: //! @name GL_ARB_get_program_binary (added to OpenGL 4.1 core) |
572 | |
573 | PFNGLGETPROGRAMBINARYPROC glGetProgramBinary; |
574 | PFNGLPROGRAMBINARYPROC glProgramBinary; |
575 | PFNGLPROGRAMPARAMETERIPROC glProgramParameteri; |
576 | |
577 | public: //! @name GL_ARB_separate_shader_objects (added to OpenGL 4.1 core) |
578 | |
579 | PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages; |
580 | PFNGLACTIVESHADERPROGRAMPROC glActiveShaderProgram; |
581 | PFNGLCREATESHADERPROGRAMVPROC glCreateShaderProgramv; |
582 | PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline; |
583 | PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines; |
584 | PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines; |
585 | PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline; |
586 | PFNGLGETPROGRAMPIPELINEIVPROC glGetProgramPipelineiv; |
587 | PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i; |
588 | PFNGLPROGRAMUNIFORM1IVPROC glProgramUniform1iv; |
589 | PFNGLPROGRAMUNIFORM1FPROC glProgramUniform1f; |
590 | PFNGLPROGRAMUNIFORM1FVPROC glProgramUniform1fv; |
591 | PFNGLPROGRAMUNIFORM1DPROC glProgramUniform1d; |
592 | PFNGLPROGRAMUNIFORM1DVPROC glProgramUniform1dv; |
593 | PFNGLPROGRAMUNIFORM1UIPROC glProgramUniform1ui; |
594 | PFNGLPROGRAMUNIFORM1UIVPROC glProgramUniform1uiv; |
595 | PFNGLPROGRAMUNIFORM2IPROC glProgramUniform2i; |
596 | PFNGLPROGRAMUNIFORM2IVPROC glProgramUniform2iv; |
597 | PFNGLPROGRAMUNIFORM2FPROC glProgramUniform2f; |
598 | PFNGLPROGRAMUNIFORM2FVPROC glProgramUniform2fv; |
599 | PFNGLPROGRAMUNIFORM2DPROC glProgramUniform2d; |
600 | PFNGLPROGRAMUNIFORM2DVPROC glProgramUniform2dv; |
601 | PFNGLPROGRAMUNIFORM2UIPROC glProgramUniform2ui; |
602 | PFNGLPROGRAMUNIFORM2UIVPROC glProgramUniform2uiv; |
603 | PFNGLPROGRAMUNIFORM3IPROC glProgramUniform3i; |
604 | PFNGLPROGRAMUNIFORM3IVPROC glProgramUniform3iv; |
605 | PFNGLPROGRAMUNIFORM3FPROC glProgramUniform3f; |
606 | PFNGLPROGRAMUNIFORM3FVPROC glProgramUniform3fv; |
607 | PFNGLPROGRAMUNIFORM3DPROC glProgramUniform3d; |
608 | PFNGLPROGRAMUNIFORM3DVPROC glProgramUniform3dv; |
609 | PFNGLPROGRAMUNIFORM3UIPROC glProgramUniform3ui; |
610 | PFNGLPROGRAMUNIFORM3UIVPROC glProgramUniform3uiv; |
611 | PFNGLPROGRAMUNIFORM4IPROC glProgramUniform4i; |
612 | PFNGLPROGRAMUNIFORM4IVPROC glProgramUniform4iv; |
613 | PFNGLPROGRAMUNIFORM4FPROC glProgramUniform4f; |
614 | PFNGLPROGRAMUNIFORM4FVPROC glProgramUniform4fv; |
615 | PFNGLPROGRAMUNIFORM4DPROC glProgramUniform4d; |
616 | PFNGLPROGRAMUNIFORM4DVPROC glProgramUniform4dv; |
617 | PFNGLPROGRAMUNIFORM4UIPROC glProgramUniform4ui; |
618 | PFNGLPROGRAMUNIFORM4UIVPROC glProgramUniform4uiv; |
619 | PFNGLPROGRAMUNIFORMMATRIX2FVPROC glProgramUniformMatrix2fv; |
620 | PFNGLPROGRAMUNIFORMMATRIX3FVPROC glProgramUniformMatrix3fv; |
621 | PFNGLPROGRAMUNIFORMMATRIX4FVPROC glProgramUniformMatrix4fv; |
622 | PFNGLPROGRAMUNIFORMMATRIX2DVPROC glProgramUniformMatrix2dv; |
623 | PFNGLPROGRAMUNIFORMMATRIX3DVPROC glProgramUniformMatrix3dv; |
624 | PFNGLPROGRAMUNIFORMMATRIX4DVPROC glProgramUniformMatrix4dv; |
625 | PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glProgramUniformMatrix2x3fv; |
626 | PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glProgramUniformMatrix3x2fv; |
627 | PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glProgramUniformMatrix2x4fv; |
628 | PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glProgramUniformMatrix4x2fv; |
629 | PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glProgramUniformMatrix3x4fv; |
630 | PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glProgramUniformMatrix4x3fv; |
631 | PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glProgramUniformMatrix2x3dv; |
632 | PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glProgramUniformMatrix3x2dv; |
633 | PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glProgramUniformMatrix2x4dv; |
634 | PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glProgramUniformMatrix4x2dv; |
635 | PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glProgramUniformMatrix3x4dv; |
636 | PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glProgramUniformMatrix4x3dv; |
637 | PFNGLVALIDATEPROGRAMPIPELINEPROC glValidateProgramPipeline; |
638 | PFNGLGETPROGRAMPIPELINEINFOLOGPROC glGetProgramPipelineInfoLog; |
639 | |
640 | public: //! @name GL_ARB_vertex_attrib_64bit (added to OpenGL 4.1 core) |
641 | |
642 | PFNGLVERTEXATTRIBL1DPROC glVertexAttribL1d; |
643 | PFNGLVERTEXATTRIBL2DPROC glVertexAttribL2d; |
644 | PFNGLVERTEXATTRIBL3DPROC glVertexAttribL3d; |
645 | PFNGLVERTEXATTRIBL4DPROC glVertexAttribL4d; |
646 | PFNGLVERTEXATTRIBL1DVPROC glVertexAttribL1dv; |
647 | PFNGLVERTEXATTRIBL2DVPROC glVertexAttribL2dv; |
648 | PFNGLVERTEXATTRIBL3DVPROC glVertexAttribL3dv; |
649 | PFNGLVERTEXATTRIBL4DVPROC glVertexAttribL4dv; |
650 | PFNGLVERTEXATTRIBLPOINTERPROC glVertexAttribLPointer; |
651 | PFNGLGETVERTEXATTRIBLDVPROC glGetVertexAttribLdv; |
652 | |
653 | public: //! @name GL_ARB_viewport_array (added to OpenGL 4.1 core) |
654 | |
655 | PFNGLVIEWPORTARRAYVPROC glViewportArrayv; |
656 | PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf; |
657 | PFNGLVIEWPORTINDEXEDFVPROC glViewportIndexedfv; |
658 | PFNGLSCISSORARRAYVPROC glScissorArrayv; |
659 | PFNGLSCISSORINDEXEDPROC glScissorIndexed; |
660 | PFNGLSCISSORINDEXEDVPROC glScissorIndexedv; |
661 | PFNGLDEPTHRANGEARRAYVPROC glDepthRangeArrayv; |
662 | PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed; |
663 | PFNGLGETFLOATI_VPROC glGetFloati_v; |
664 | PFNGLGETDOUBLEI_VPROC glGetDoublei_v; |
665 | |
666 | public: //! @name OpenGL 4.1 |
667 | |
668 | // |
669 | |
670 | public: //! @name GL_ARB_base_instance (added to OpenGL 4.2 core) |
671 | |
672 | PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glDrawArraysInstancedBaseInstance; |
673 | PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glDrawElementsInstancedBaseInstance; |
674 | PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glDrawElementsInstancedBaseVertexBaseInstance; |
675 | |
676 | public: //! @name GL_ARB_transform_feedback_instanced (added to OpenGL 4.2 core) |
677 | |
678 | PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glDrawTransformFeedbackInstanced; |
679 | PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glDrawTransformFeedbackStreamInstanced; |
680 | |
681 | public: //! @name GL_ARB_internalformat_query (added to OpenGL 4.2 core) |
682 | |
683 | PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ; |
684 | |
685 | public: //! @name GL_ARB_shader_atomic_counters (added to OpenGL 4.2 core) |
686 | |
687 | PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glGetActiveAtomicCounterBufferiv; |
688 | |
689 | public: //! @name GL_ARB_shader_image_load_store (added to OpenGL 4.2 core) |
690 | |
691 | PFNGLBINDIMAGETEXTUREPROC glBindImageTexture; |
692 | PFNGLMEMORYBARRIERPROC glMemoryBarrier; |
693 | |
694 | public: //! @name GL_ARB_texture_storage (added to OpenGL 4.2 core) |
695 | |
696 | PFNGLTEXSTORAGE1DPROC glTexStorage1D; |
697 | PFNGLTEXSTORAGE2DPROC glTexStorage2D; |
698 | PFNGLTEXSTORAGE3DPROC glTexStorage3D; |
699 | PFNGLTEXTURESTORAGE1DEXTPROC glTextureStorage1DEXT; |
700 | PFNGLTEXTURESTORAGE2DEXTPROC glTextureStorage2DEXT; |
701 | PFNGLTEXTURESTORAGE3DEXTPROC glTextureStorage3DEXT; |
702 | |
703 | public: //! @name OpenGL 4.2 |
704 | |
705 | public: //! @name OpenGL 4.3 |
706 | |
707 | PFNGLCLEARBUFFERDATAPROC glClearBufferData; |
708 | PFNGLCLEARBUFFERSUBDATAPROC glClearBufferSubData; |
709 | PFNGLDISPATCHCOMPUTEPROC glDispatchCompute; |
710 | PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect; |
711 | PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData; |
712 | PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri; |
713 | PFNGLGETFRAMEBUFFERPARAMETERIVPROC glGetFramebufferParameteriv; |
714 | PFNGLGETINTERNALFORMATI64VPROC glGetInternalformati64v; |
715 | PFNGLINVALIDATETEXSUBIMAGEPROC glInvalidateTexSubImage; |
716 | PFNGLINVALIDATETEXIMAGEPROC glInvalidateTexImage; |
717 | PFNGLINVALIDATEBUFFERSUBDATAPROC glInvalidateBufferSubData; |
718 | PFNGLINVALIDATEBUFFERDATAPROC glInvalidateBufferData; |
719 | PFNGLINVALIDATEFRAMEBUFFERPROC glInvalidateFramebuffer; |
720 | PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer; |
721 | PFNGLMULTIDRAWARRAYSINDIRECTPROC glMultiDrawArraysIndirect; |
722 | PFNGLMULTIDRAWELEMENTSINDIRECTPROC glMultiDrawElementsIndirect; |
723 | PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv; |
724 | PFNGLGETPROGRAMRESOURCEINDEXPROC glGetProgramResourceIndex; |
725 | PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName; |
726 | PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv; |
727 | PFNGLGETPROGRAMRESOURCELOCATIONPROC glGetProgramResourceLocation; |
728 | PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glGetProgramResourceLocationIndex; |
729 | PFNGLSHADERSTORAGEBLOCKBINDINGPROC glShaderStorageBlockBinding; |
730 | PFNGLTEXBUFFERRANGEPROC glTexBufferRange; |
731 | PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample; |
732 | PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample; |
733 | PFNGLTEXTUREVIEWPROC glTextureView; |
734 | PFNGLBINDVERTEXBUFFERPROC glBindVertexBuffer; |
735 | PFNGLVERTEXATTRIBFORMATPROC glVertexAttribFormat; |
736 | PFNGLVERTEXATTRIBIFORMATPROC glVertexAttribIFormat; |
737 | PFNGLVERTEXATTRIBLFORMATPROC glVertexAttribLFormat; |
738 | PFNGLVERTEXATTRIBBINDINGPROC glVertexAttribBinding; |
739 | PFNGLVERTEXBINDINGDIVISORPROC glVertexBindingDivisor; |
740 | PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl; |
741 | PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert; |
742 | PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback; |
743 | PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog; |
744 | PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup; |
745 | PFNGLPOPDEBUGGROUPPROC glPopDebugGroup; |
746 | PFNGLOBJECTLABELPROC glObjectLabel; |
747 | PFNGLGETOBJECTLABELPROC glGetObjectLabel; |
748 | PFNGLOBJECTPTRLABELPROC glObjectPtrLabel; |
749 | PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel; |
750 | |
751 | public: //! @name OpenGL 4.4 |
752 | |
753 | PFNGLBUFFERSTORAGEPROC glBufferStorage; |
754 | PFNGLCLEARTEXIMAGEPROC glClearTexImage; |
755 | PFNGLCLEARTEXSUBIMAGEPROC glClearTexSubImage; |
756 | PFNGLBINDBUFFERSBASEPROC glBindBuffersBase; |
757 | PFNGLBINDBUFFERSRANGEPROC glBindBuffersRange; |
758 | PFNGLBINDTEXTURESPROC glBindTextures; |
759 | PFNGLBINDSAMPLERSPROC glBindSamplers; |
760 | PFNGLBINDIMAGETEXTURESPROC glBindImageTextures; |
761 | PFNGLBINDVERTEXBUFFERSPROC glBindVertexBuffers; |
762 | |
763 | public: //! @name GL_ARB_debug_output (optional) |
764 | |
765 | PFNGLDEBUGMESSAGECONTROLARBPROC glDebugMessageControlARB; |
766 | PFNGLDEBUGMESSAGEINSERTARBPROC glDebugMessageInsertARB; |
767 | PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARB; |
768 | PFNGLGETDEBUGMESSAGELOGARBPROC glGetDebugMessageLogARB; |
769 | |
770 | public: //! @name GL_EXT_geometry_shader4 |
771 | |
772 | PFNGLPROGRAMPARAMETERIEXTPROC glProgramParameteriEXT; |
773 | |
774 | #if defined(_WIN32) |
775 | public: //! @name wgl extensions |
776 | |
777 | typedef const char* (WINAPI *wglGetExtensionsStringARB_t)(HDC theDeviceContext); |
778 | wglGetExtensionsStringARB_t wglGetExtensionsStringARB; |
779 | |
780 | typedef BOOL (WINAPI *wglSwapIntervalEXT_t)(int theInterval); |
781 | wglSwapIntervalEXT_t wglSwapIntervalEXT; |
782 | |
783 | // WGL_ARB_pixel_format |
784 | |
785 | #ifndef WGL_NUMBER_PIXEL_FORMATS_ARB |
786 | #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 |
787 | #define WGL_DRAW_TO_WINDOW_ARB 0x2001 |
788 | #define WGL_DRAW_TO_BITMAP_ARB 0x2002 |
789 | #define WGL_ACCELERATION_ARB 0x2003 |
790 | #define WGL_NEED_PALETTE_ARB 0x2004 |
791 | #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 |
792 | #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 |
793 | #define WGL_SWAP_METHOD_ARB 0x2007 |
794 | #define WGL_NUMBER_OVERLAYS_ARB 0x2008 |
795 | #define WGL_NUMBER_UNDERLAYS_ARB 0x2009 |
796 | #define WGL_TRANSPARENT_ARB 0x200A |
797 | #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 |
798 | #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 |
799 | #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 |
800 | #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A |
801 | #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B |
802 | #define WGL_SHARE_DEPTH_ARB 0x200C |
803 | #define WGL_SHARE_STENCIL_ARB 0x200D |
804 | #define WGL_SHARE_ACCUM_ARB 0x200E |
805 | #define WGL_SUPPORT_GDI_ARB 0x200F |
806 | #define WGL_SUPPORT_OPENGL_ARB 0x2010 |
807 | #define WGL_DOUBLE_BUFFER_ARB 0x2011 |
808 | #define WGL_STEREO_ARB 0x2012 |
809 | #define WGL_PIXEL_TYPE_ARB 0x2013 |
810 | #define WGL_COLOR_BITS_ARB 0x2014 |
811 | #define WGL_RED_BITS_ARB 0x2015 |
812 | #define WGL_RED_SHIFT_ARB 0x2016 |
813 | #define WGL_GREEN_BITS_ARB 0x2017 |
814 | #define WGL_GREEN_SHIFT_ARB 0x2018 |
815 | #define WGL_BLUE_BITS_ARB 0x2019 |
816 | #define WGL_BLUE_SHIFT_ARB 0x201A |
817 | #define WGL_ALPHA_BITS_ARB 0x201B |
818 | #define WGL_ALPHA_SHIFT_ARB 0x201C |
819 | #define WGL_ACCUM_BITS_ARB 0x201D |
820 | #define WGL_ACCUM_RED_BITS_ARB 0x201E |
821 | #define WGL_ACCUM_GREEN_BITS_ARB 0x201F |
822 | #define WGL_ACCUM_BLUE_BITS_ARB 0x2020 |
823 | #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 |
824 | #define WGL_DEPTH_BITS_ARB 0x2022 |
825 | #define WGL_STENCIL_BITS_ARB 0x2023 |
826 | #define WGL_AUX_BUFFERS_ARB 0x2024 |
827 | |
828 | #define WGL_NO_ACCELERATION_ARB 0x2025 |
829 | #define WGL_GENERIC_ACCELERATION_ARB 0x2026 |
830 | #define WGL_FULL_ACCELERATION_ARB 0x2027 |
831 | |
832 | #define WGL_SWAP_EXCHANGE_ARB 0x2028 |
833 | #define WGL_SWAP_COPY_ARB 0x2029 |
834 | #define WGL_SWAP_UNDEFINED_ARB 0x202A |
835 | |
836 | #define WGL_TYPE_RGBA_ARB 0x202B |
837 | #define WGL_TYPE_COLORINDEX_ARB 0x202C |
838 | |
839 | #endif // WGL_NUMBER_PIXEL_FORMATS_ARB |
840 | |
841 | // WGL_ARB_multisample |
842 | #ifndef WGL_SAMPLE_BUFFERS_ARB |
843 | #define WGL_SAMPLE_BUFFERS_ARB 0x2041 |
844 | #define WGL_SAMPLES_ARB 0x2042 |
845 | #endif |
846 | |
847 | // WGL_ARB_create_context_robustness |
848 | #ifndef WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB |
849 | #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 |
850 | #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 |
851 | #define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 |
852 | #define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 |
853 | #endif |
854 | |
855 | typedef BOOL (WINAPI *wglChoosePixelFormatARB_t) |
856 | (HDC theDevCtx, |
857 | const int* theIntAttribs, |
858 | const float* theFloatAttribs, |
859 | unsigned int theMaxFormats, |
860 | int* theFormatsOut, |
861 | unsigned int* theNumFormatsOut); |
862 | wglChoosePixelFormatARB_t wglChoosePixelFormatARB; |
863 | |
864 | // WGL_ARB_create_context_profile |
865 | |
866 | #ifndef WGL_CONTEXT_MAJOR_VERSION_ARB |
867 | #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 |
868 | #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 |
869 | #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 |
870 | #define WGL_CONTEXT_FLAGS_ARB 0x2094 |
871 | #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 |
872 | |
873 | // WGL_CONTEXT_FLAGS bits |
874 | #define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 |
875 | #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 |
876 | |
877 | // WGL_CONTEXT_PROFILE_MASK_ARB bits |
878 | #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 |
879 | #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 |
880 | #endif // WGL_CONTEXT_MAJOR_VERSION_ARB |
881 | |
882 | typedef HGLRC (WINAPI *wglCreateContextAttribsARB_t)(HDC theDevCtx, |
883 | HGLRC theShareContext, |
884 | const int* theAttribs); |
885 | wglCreateContextAttribsARB_t wglCreateContextAttribsARB; |
886 | |
887 | // WGL_NV_DX_interop |
888 | |
889 | typedef BOOL (WINAPI *wglDXSetResourceShareHandleNV_t)(void* theObjectD3d, HANDLE theShareHandle); |
890 | typedef HANDLE (WINAPI *wglDXOpenDeviceNV_t )(void* theDeviceD3d); |
891 | typedef BOOL (WINAPI *wglDXCloseDeviceNV_t )(HANDLE theDeviceIOP); |
892 | typedef HANDLE (WINAPI *wglDXRegisterObjectNV_t )(HANDLE theDeviceIOP, |
893 | void* theObjectD3d, |
894 | GLuint theName, |
895 | GLenum theType, |
896 | GLenum theAccess); |
897 | typedef BOOL (WINAPI *wglDXUnregisterObjectNV_t)(HANDLE theDeviceIOP, |
898 | HANDLE theObject); |
899 | typedef BOOL (WINAPI *wglDXObjectAccessNV_t )(HANDLE theObject, |
900 | GLenum theAccess); |
901 | typedef BOOL (WINAPI *wglDXLockObjectsNV_t )(HANDLE theDeviceIOP, |
902 | GLint theCount, |
903 | HANDLE* theObjects); |
904 | typedef BOOL (WINAPI *wglDXUnlockObjectsNV_t )(HANDLE theDeviceIOP, |
905 | GLint theCount, |
906 | HANDLE* theObjects); |
907 | |
908 | wglDXSetResourceShareHandleNV_t wglDXSetResourceShareHandleNV; |
909 | wglDXOpenDeviceNV_t wglDXOpenDeviceNV; |
910 | wglDXCloseDeviceNV_t wglDXCloseDeviceNV; |
911 | wglDXRegisterObjectNV_t wglDXRegisterObjectNV; |
912 | wglDXUnregisterObjectNV_t wglDXUnregisterObjectNV; |
913 | wglDXObjectAccessNV_t wglDXObjectAccessNV; |
914 | wglDXLockObjectsNV_t wglDXLockObjectsNV; |
915 | wglDXUnlockObjectsNV_t wglDXUnlockObjectsNV; |
916 | |
917 | #ifndef WGL_ACCESS_READ_WRITE_NV |
918 | #define WGL_ACCESS_READ_ONLY_NV 0x0000 |
919 | #define WGL_ACCESS_READ_WRITE_NV 0x0001 |
920 | #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 |
921 | #endif |
922 | |
923 | #elif defined(__APPLE__) |
924 | public: //! @name CGL extensions |
925 | |
926 | #else |
927 | public: //! @name glX extensions |
928 | |
929 | // GLX_EXT_swap_control |
930 | //typedef int (*glXSwapIntervalEXT_t)(Display* theDisplay, GLXDrawable theDrawable, int theInterval); |
931 | typedef int (*glXSwapIntervalEXT_t)(); |
932 | glXSwapIntervalEXT_t glXSwapIntervalEXT; |
933 | |
934 | typedef int (*glXSwapIntervalSGI_t)(int theInterval); |
935 | glXSwapIntervalSGI_t glXSwapIntervalSGI; |
936 | #endif |
937 | |
938 | }; |
939 | |
940 | #endif // _OpenGl_GlFunctions_Header |