1 // Created on: 2014-03-17
2 // Created by: Kirill GAVRILOV
3 // Copyright (c) 2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
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.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
16 #ifndef _OpenGl_GlFunctions_Header
17 #define _OpenGl_GlFunctions_Header
19 // required for correct APIENTRY definition
20 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
21 #define WIN32_LEAN_AND_MEAN
25 #include <Standard_Macro.hxx>
26 #include <Standard_TypeDef.hxx>
32 #define APIENTRYP APIENTRY *
38 // exclude modern definitions and system-provided glext.h, should be defined before gl.h inclusion
39 #ifndef GL_GLEXT_LEGACY
40 #define GL_GLEXT_LEGACY
42 #ifndef GLX_GLXEXT_LEGACY
43 #define GLX_GLXEXT_LEGACY
46 // include main OpenGL header provided with system
47 #if defined(__APPLE__)
48 #import <TargetConditionals.h>
49 // macOS 10.4 deprecated OpenGL framework - suppress useless warnings
50 #define GL_SILENCE_DEPRECATION
51 #if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
52 #include <OpenGLES/ES3/gl.h>
54 #include <OpenGL/gl.h>
56 #define __X_GL_H // prevent chaotic gl.h inclusions to avoid compile errors
57 #elif defined(HAVE_GLES2) || defined(OCCT_UWP) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__)
59 // Angle OpenGL ES headers do not define function prototypes even for core functions,
60 // however OCCT is expected to be linked against libGLESv2
61 #define GL_GLEXT_PROTOTYPES
63 #include <GLES3/gl3.h>
68 #if !defined(HAVE_EGL) && (defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(HAVE_GLES2) || defined(OCCT_UWP))
72 #include <InterfaceGraphic.hxx>
74 #if defined(GL_ES_VERSION_2_0)
75 #include <OpenGl_GLESExtensions.hxx>
77 // GL version can be defined by system gl.h header
95 // include glext.h provided by Khronos group
101 //! Mega structure defines the complete list of OpenGL functions.
102 struct OpenGl_GlFunctions
105 //! Check glGetError(); defined for debugging purposes.
106 //! @return TRUE on error
107 Standard_EXPORT bool debugPrintError (const char* theName) const;
110 Standard_EXPORT void load (OpenGl_Context& theCtx,
111 Standard_Boolean theIsCoreProfile);
113 // This debug macros can be enabled to help debugging OpenGL implementations
114 // without solid / working debugging capabilities.
115 //#define OpenGl_TRACE(theName) {OpenGl_GlFunctions::debugPrintError(#theName);}
116 #define OpenGl_TRACE(theName)
118 public: //! @name OpenGL ES 1.1
120 #if defined(GL_ES_VERSION_2_0)
122 inline void glActiveTexture (GLenum texture) const
124 ::glActiveTexture (texture);
125 OpenGl_TRACE(glActiveTexture)
128 inline void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) const
130 ::glCompressedTexImage2D (target, level, internalformat, width, height, border, imageSize, data);
131 OpenGl_TRACE(glCompressedTexImage2D)
134 inline void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) const
136 ::glCompressedTexSubImage2D (target, level, xoffset, yoffset, width, height, format, imageSize, data);
137 OpenGl_TRACE(glCompressedTexSubImage2D)
140 inline void glBindBuffer (GLenum target, GLuint buffer) const
142 ::glBindBuffer (target, buffer);
143 OpenGl_TRACE(glBindBuffer)
146 inline void glBufferData (GLenum target, GLsizeiptr size, const void* data, GLenum usage) const
148 ::glBufferData (target, size, data, usage);
149 OpenGl_TRACE(glBufferData)
152 inline void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void* data) const
154 ::glBufferSubData (target, offset, size, data);
155 OpenGl_TRACE(glBufferSubData)
158 inline void glDeleteBuffers (GLsizei n, const GLuint *buffers) const
160 ::glDeleteBuffers (n, buffers);
161 OpenGl_TRACE(glDeleteBuffers)
164 inline void glDeleteTextures (GLsizei n, const GLuint *textures) const
166 ::glDeleteTextures (n, textures);
167 OpenGl_TRACE(glDeleteTextures)
170 inline void glDepthFunc (GLenum func) const
172 ::glDepthFunc (func);
173 OpenGl_TRACE(glDepthFunc)
176 inline void glDepthMask (GLboolean flag) const
178 ::glDepthMask (flag);
179 OpenGl_TRACE(glDepthMask)
182 inline void glDepthRangef (GLfloat n, GLfloat f) const
184 ::glDepthRangef (n, f);
185 OpenGl_TRACE(glDepthRangef)
188 inline void glGenBuffers (GLsizei n, GLuint *buffers) const
190 ::glGenBuffers (n, buffers);
191 OpenGl_TRACE(glGenBuffers)
194 inline void glGenTextures (GLsizei n, GLuint *textures) const
196 ::glGenTextures (n, textures);
197 OpenGl_TRACE(glGenTextures)
200 inline void glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params) const
202 ::glGetBufferParameteriv (target, pname, params);
203 OpenGl_TRACE(glGetBufferParameteriv)
206 inline GLboolean glIsBuffer (GLuint buffer) const
208 return ::glIsBuffer (buffer);
211 inline void glSampleCoverage (GLfloat value, GLboolean invert) const
213 ::glSampleCoverage (value, invert);
214 OpenGl_TRACE(glSampleCoverage)
217 inline void glMultiDrawElements (GLenum theMode, const GLsizei* theCount, GLenum theType, const void* const* theIndices, GLsizei theDrawCount) const
220 || theIndices == NULL)
225 for (GLsizei aBatchIter = 0; aBatchIter < theDrawCount; ++aBatchIter)
227 ::glDrawElements (theMode, theCount[aBatchIter], theType, theIndices[aBatchIter]);
229 OpenGl_TRACE(glMultiDrawElements)
234 public: //! @name OpenGL ES 2.0
236 #if defined(GL_ES_VERSION_2_0)
237 inline void glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) const
239 ::glBlendColor (red, green, blue, alpha);
240 OpenGl_TRACE(glBlendColor)
243 inline void glBlendEquation (GLenum mode) const
245 ::glBlendEquation (mode);
246 OpenGl_TRACE(glBlendEquation)
249 inline void glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) const
251 ::glBlendFuncSeparate (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
252 OpenGl_TRACE(glBlendFuncSeparate)
255 inline void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha) const
257 ::glBlendEquationSeparate (modeRGB, modeAlpha);
258 OpenGl_TRACE(glBlendEquationSeparate)
261 inline void glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) const
263 ::glStencilOpSeparate (face, sfail, dpfail, dppass);
264 OpenGl_TRACE(glStencilOpSeparate)
267 inline void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask) const
269 ::glStencilFuncSeparate (face, func, ref, mask);
270 OpenGl_TRACE(glStencilFuncSeparate)
273 inline void glStencilMaskSeparate (GLenum face, GLuint mask) const
275 ::glStencilMaskSeparate (face, mask);
276 OpenGl_TRACE(glStencilMaskSeparate)
279 inline void glAttachShader (GLuint program, GLuint shader) const
281 ::glAttachShader (program, shader);
282 OpenGl_TRACE(glAttachShader)
285 inline void glBindAttribLocation (GLuint program, GLuint index, const GLchar *name) const
287 ::glBindAttribLocation (program, index, name);
288 OpenGl_TRACE(glBindAttribLocation)
291 inline void glBindFramebuffer (GLenum target, GLuint framebuffer) const
293 ::glBindFramebuffer (target, framebuffer);
294 OpenGl_TRACE(glBindFramebuffer)
297 inline void glBindRenderbuffer (GLenum target, GLuint renderbuffer) const
299 ::glBindRenderbuffer (target, renderbuffer);
300 OpenGl_TRACE(glBindRenderbuffer)
303 inline GLenum glCheckFramebufferStatus (GLenum target) const
305 return ::glCheckFramebufferStatus (target);
308 inline void glCompileShader (GLuint shader) const
310 ::glCompileShader (shader);
311 OpenGl_TRACE(glCompileShader)
314 inline GLuint glCreateProgram() const
316 return ::glCreateProgram();
319 inline GLuint glCreateShader (GLenum type) const
321 return ::glCreateShader (type);
324 inline void glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers) const
326 ::glDeleteFramebuffers (n, framebuffers);
327 OpenGl_TRACE(glDeleteFramebuffers)
330 inline void glDeleteProgram (GLuint program) const
332 ::glDeleteProgram (program);
333 OpenGl_TRACE(glDeleteProgram)
336 inline void glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers) const
338 ::glDeleteRenderbuffers (n, renderbuffers);
339 OpenGl_TRACE(glDeleteRenderbuffers)
342 inline void glDeleteShader (GLuint shader) const
344 ::glDeleteShader (shader);
345 OpenGl_TRACE(glDeleteShader)
348 inline void glDetachShader (GLuint program, GLuint shader) const
350 ::glDetachShader (program, shader);
351 OpenGl_TRACE(glDetachShader)
354 inline void glDisableVertexAttribArray (GLuint index) const
356 ::glDisableVertexAttribArray (index);
357 OpenGl_TRACE(glDisableVertexAttribArray)
360 inline void glEnableVertexAttribArray (GLuint index) const
362 ::glEnableVertexAttribArray (index);
363 OpenGl_TRACE(glEnableVertexAttribArray)
366 inline void glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) const
368 ::glFramebufferRenderbuffer (target, attachment, renderbuffertarget, renderbuffer);
369 OpenGl_TRACE(glFramebufferRenderbuffer)
372 inline void glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) const
374 ::glFramebufferTexture2D (target, attachment, textarget, texture, level);
375 OpenGl_TRACE(glFramebufferTexture2D)
378 inline void glGenerateMipmap (GLenum target) const
380 ::glGenerateMipmap (target);
381 OpenGl_TRACE(glGenerateMipmap)
384 inline void glGenFramebuffers (GLsizei n, GLuint *framebuffers) const
386 ::glGenFramebuffers (n, framebuffers);
387 OpenGl_TRACE(glGenFramebuffers)
390 inline void glGenRenderbuffers (GLsizei n, GLuint *renderbuffers) const
392 ::glGenRenderbuffers (n, renderbuffers);
393 OpenGl_TRACE(glGenRenderbuffers)
396 inline void glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint* size, GLenum *type, GLchar *name) const
398 ::glGetActiveAttrib (program, index, bufSize, length, size, type, name);
399 OpenGl_TRACE(glGetActiveAttrib)
402 inline void glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint* size, GLenum *type, GLchar *name) const
404 ::glGetActiveUniform (program, index, bufSize, length, size, type, name);
405 OpenGl_TRACE(glGetActiveUniform)
408 inline void glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders) const
410 ::glGetAttachedShaders (program, maxCount, count, shaders);
411 OpenGl_TRACE(glGetAttachedShaders)
414 inline GLint glGetAttribLocation (GLuint program, const GLchar *name) const
416 const GLint aRes = ::glGetAttribLocation (program, name);
417 OpenGl_TRACE(glGetAttribLocation)
421 inline void glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params) const
423 ::glGetFramebufferAttachmentParameteriv (target, attachment, pname, params);
424 OpenGl_TRACE(glGetFramebufferAttachmentParameteriv)
427 inline void glGetProgramiv (GLuint program, GLenum pname, GLint* params) const
429 ::glGetProgramiv (program, pname, params);
430 OpenGl_TRACE(glGetProgramiv)
433 inline void glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) const
435 ::glGetProgramInfoLog (program, bufSize, length, infoLog);
436 OpenGl_TRACE(glGetProgramInfoLog)
439 inline void glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params) const
441 ::glGetRenderbufferParameteriv (target, pname, params);
442 OpenGl_TRACE(glGetRenderbufferParameteriv)
445 inline void glGetShaderiv (GLuint shader, GLenum pname, GLint* params) const
447 ::glGetShaderiv (shader, pname, params);
448 OpenGl_TRACE(glGetShaderiv)
451 inline void glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) const
453 ::glGetShaderInfoLog (shader, bufSize, length, infoLog);
454 OpenGl_TRACE(glGetShaderInfoLog)
457 inline void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) const
459 ::glGetShaderPrecisionFormat (shadertype, precisiontype, range, precision);
460 OpenGl_TRACE(glGetShaderPrecisionFormat)
463 inline void glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source) const
465 ::glGetShaderSource (shader, bufSize, length, source);
466 OpenGl_TRACE(glGetShaderSource)
469 inline void glGetUniformfv (GLuint program, GLint location, GLfloat* params) const
471 ::glGetUniformfv (program, location, params);
472 OpenGl_TRACE(glGetUniformfv)
475 inline void glGetUniformiv (GLuint program, GLint location, GLint* params) const
477 ::glGetUniformiv (program, location, params);
478 OpenGl_TRACE(glGetUniformiv)
481 GLint glGetUniformLocation (GLuint program, const GLchar *name) const
483 const GLint aRes = ::glGetUniformLocation (program, name);
484 OpenGl_TRACE(glGetUniformLocation)
488 inline void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params) const
490 ::glGetVertexAttribfv (index, pname, params);
491 OpenGl_TRACE(glGetVertexAttribfv)
494 inline void glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params) const
496 ::glGetVertexAttribiv (index, pname, params);
497 OpenGl_TRACE(glGetVertexAttribiv)
500 inline void glGetVertexAttribPointerv (GLuint index, GLenum pname, void* *pointer) const
502 ::glGetVertexAttribPointerv (index, pname, pointer);
503 OpenGl_TRACE(glGetVertexAttribPointerv)
506 inline GLboolean glIsFramebuffer (GLuint framebuffer) const
508 return ::glIsFramebuffer (framebuffer);
511 inline GLboolean glIsProgram (GLuint program) const
513 return ::glIsProgram (program);
516 inline GLboolean glIsRenderbuffer (GLuint renderbuffer) const
518 return ::glIsRenderbuffer (renderbuffer);
521 inline GLboolean glIsShader (GLuint shader) const
523 return ::glIsShader (shader);
526 inline void glLinkProgram (GLuint program) const
528 ::glLinkProgram (program);
529 OpenGl_TRACE(glLinkProgram)
532 inline void glReleaseShaderCompiler() const
534 ::glReleaseShaderCompiler();
535 OpenGl_TRACE(glReleaseShaderCompiler)
538 inline void glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) const
540 ::glRenderbufferStorage (target, internalformat, width, height);
541 OpenGl_TRACE(glRenderbufferStorage)
544 inline void glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void* binary, GLsizei length) const
546 ::glShaderBinary (count, shaders, binaryformat, binary, length);
547 OpenGl_TRACE(glShaderBinary)
550 inline void glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length) const
552 ::glShaderSource (shader, count, string, length);
553 OpenGl_TRACE(glShaderSource)
556 inline void glUniform1f (GLint location, GLfloat v0) const
558 ::glUniform1f (location, v0);
559 OpenGl_TRACE(glUniform1f)
562 inline void glUniform1fv (GLint location, GLsizei count, const GLfloat* value) const
564 ::glUniform1fv (location, count, value);
565 OpenGl_TRACE(glUniform1fv)
568 inline void glUniform1i (GLint location, GLint v0) const
570 ::glUniform1i (location, v0);
571 OpenGl_TRACE(glUniform1i)
574 inline void glUniform1iv (GLint location, GLsizei count, const GLint* value) const
576 ::glUniform1iv (location, count, value);
577 OpenGl_TRACE(glUniform1iv)
580 inline void glUniform2f (GLint location, GLfloat v0, GLfloat v1) const
582 ::glUniform2f (location, v0, v1);
583 OpenGl_TRACE(glUniform2f)
586 inline void glUniform2fv (GLint location, GLsizei count, const GLfloat* value) const
588 ::glUniform2fv (location, count, value);
589 OpenGl_TRACE(glUniform2fv)
592 inline void glUniform2i (GLint location, GLint v0, GLint v1) const
594 ::glUniform2i (location, v0, v1);
595 OpenGl_TRACE(glUniform2i)
598 inline void glUniform2iv (GLint location, GLsizei count, const GLint* value) const
600 ::glUniform2iv (location, count, value);
601 OpenGl_TRACE(glUniform2iv)
604 inline void glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2) const
606 ::glUniform3f (location, v0, v1, v2);
607 OpenGl_TRACE(glUniform3f)
610 inline void glUniform3fv (GLint location, GLsizei count, const GLfloat* value) const
612 ::glUniform3fv (location, count, value);
613 OpenGl_TRACE(glUniform3fv)
616 inline void glUniform3i (GLint location, GLint v0, GLint v1, GLint v2) const
618 ::glUniform3i (location, v0, v1, v2);
619 OpenGl_TRACE(glUniform3i)
622 inline void glUniform3iv (GLint location, GLsizei count, const GLint* value) const
624 ::glUniform3iv (location, count, value);
625 OpenGl_TRACE(glUniform3iv)
628 inline void glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) const
630 ::glUniform4f (location, v0, v1, v2, v3);
631 OpenGl_TRACE(glUniform4f)
634 inline void glUniform4fv (GLint location, GLsizei count, const GLfloat* value) const
636 ::glUniform4fv (location, count, value);
637 OpenGl_TRACE(glUniform4fv)
640 inline void glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3) const
642 ::glUniform4i (location, v0, v1, v2, v3);
643 OpenGl_TRACE(glUniform4i)
646 inline void glUniform4iv (GLint location, GLsizei count, const GLint* value) const
648 ::glUniform4iv (location, count, value);
649 OpenGl_TRACE(glUniform4iv)
652 inline void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) const
654 ::glUniformMatrix2fv (location, count, transpose, value);
655 OpenGl_TRACE(glUniformMatrix2fv)
658 inline void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) const
660 ::glUniformMatrix3fv (location, count, transpose, value);
661 OpenGl_TRACE(glUniformMatrix3fv)
664 inline void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) const
666 ::glUniformMatrix4fv (location, count, transpose, value);
667 OpenGl_TRACE(glUniformMatrix4fv)
670 inline void glUseProgram (GLuint program) const
672 ::glUseProgram (program);
673 OpenGl_TRACE(glUseProgram)
676 inline void glValidateProgram (GLuint program) const
678 ::glValidateProgram (program);
679 OpenGl_TRACE(glValidateProgram)
682 inline void glVertexAttrib1f (GLuint index, GLfloat x) const
684 ::glVertexAttrib1f (index, x);
685 OpenGl_TRACE(glVertexAttrib1f)
688 inline void glVertexAttrib1fv (GLuint index, const GLfloat* v) const
690 ::glVertexAttrib1fv (index, v);
691 OpenGl_TRACE(glVertexAttrib1fv)
694 inline void glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y) const
696 ::glVertexAttrib2f (index, x, y);
697 OpenGl_TRACE(glVertexAttrib2f)
700 inline void glVertexAttrib2fv (GLuint index, const GLfloat* v) const
702 ::glVertexAttrib2fv (index, v);
703 OpenGl_TRACE(glVertexAttrib2fv)
706 inline void glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z) const
708 ::glVertexAttrib3f (index, x, y, z);
709 OpenGl_TRACE(glVertexAttrib3f)
712 inline void glVertexAttrib3fv (GLuint index, const GLfloat* v) const
714 ::glVertexAttrib3fv (index, v);
715 OpenGl_TRACE(glVertexAttrib3fv)
718 inline void glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
720 ::glVertexAttrib4f (index, x, y, z, w);
721 OpenGl_TRACE(glVertexAttrib4f)
724 inline void glVertexAttrib4fv (GLuint index, const GLfloat* v) const
726 ::glVertexAttrib4fv (index, v);
727 OpenGl_TRACE(glVertexAttrib4fv)
730 inline void glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer) const
732 ::glVertexAttribPointer (index, size, type, normalized, stride, pointer);
733 OpenGl_TRACE(glVertexAttribPointer)
736 public: //! @name OpenGL ES 3.0
738 opencascade::PFNGLREADBUFFERPROC glReadBuffer;
739 opencascade::PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
740 opencascade::PFNGLTEXIMAGE3DPROC glTexImage3D;
741 opencascade::PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
742 opencascade::PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
743 opencascade::PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
744 opencascade::PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
745 opencascade::PFNGLGENQUERIESPROC glGenQueries;
746 opencascade::PFNGLDELETEQUERIESPROC glDeleteQueries;
747 opencascade::PFNGLISQUERYPROC glIsQuery;
748 opencascade::PFNGLBEGINQUERYPROC glBeginQuery;
749 opencascade::PFNGLENDQUERYPROC glEndQuery;
750 opencascade::PFNGLGETQUERYIVPROC glGetQueryiv;
751 opencascade::PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
752 opencascade::PFNGLUNMAPBUFFERPROC glUnmapBuffer;
753 opencascade::PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
754 opencascade::PFNGLDRAWBUFFERSPROC glDrawBuffers;
755 opencascade::PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv;
756 opencascade::PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv;
757 opencascade::PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv;
758 opencascade::PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv;
759 opencascade::PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
760 opencascade::PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv;
761 opencascade::PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
762 opencascade::PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
763 opencascade::PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
764 opencascade::PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
765 opencascade::PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
766 opencascade::PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
767 opencascade::PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
768 opencascade::PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
769 opencascade::PFNGLISVERTEXARRAYPROC glIsVertexArray;
770 opencascade::PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
771 opencascade::PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
772 opencascade::PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
773 opencascade::PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
774 opencascade::PFNGLBINDBUFFERBASEPROC glBindBufferBase;
775 opencascade::PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
776 opencascade::PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
777 opencascade::PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
778 opencascade::PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
779 opencascade::PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
780 opencascade::PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
781 opencascade::PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
782 opencascade::PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
783 opencascade::PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
784 opencascade::PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
785 opencascade::PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
786 opencascade::PFNGLUNIFORM1UIPROC glUniform1ui;
787 opencascade::PFNGLUNIFORM2UIPROC glUniform2ui;
788 opencascade::PFNGLUNIFORM3UIPROC glUniform3ui;
789 opencascade::PFNGLUNIFORM4UIPROC glUniform4ui;
790 opencascade::PFNGLUNIFORM1UIVPROC glUniform1uiv;
791 opencascade::PFNGLUNIFORM2UIVPROC glUniform2uiv;
792 opencascade::PFNGLUNIFORM3UIVPROC glUniform3uiv;
793 opencascade::PFNGLUNIFORM4UIVPROC glUniform4uiv;
794 opencascade::PFNGLCLEARBUFFERIVPROC glClearBufferiv;
795 opencascade::PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
796 opencascade::PFNGLCLEARBUFFERFVPROC glClearBufferfv;
797 opencascade::PFNGLCLEARBUFFERFIPROC glClearBufferfi;
798 opencascade::PFNGLGETSTRINGIPROC glGetStringi;
799 opencascade::PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData;
800 opencascade::PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
801 opencascade::PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
802 opencascade::PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
803 opencascade::PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
804 opencascade::PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
805 opencascade::PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
806 opencascade::PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
807 opencascade::PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
808 opencascade::PFNGLFENCESYNCPROC glFenceSync;
809 opencascade::PFNGLISSYNCPROC glIsSync;
810 opencascade::PFNGLDELETESYNCPROC glDeleteSync;
811 opencascade::PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
812 opencascade::PFNGLWAITSYNCPROC glWaitSync;
813 opencascade::PFNGLGETINTEGER64VPROC glGetInteger64v;
814 opencascade::PFNGLGETSYNCIVPROC glGetSynciv;
815 opencascade::PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
816 opencascade::PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
817 opencascade::PFNGLGENSAMPLERSPROC glGenSamplers;
818 opencascade::PFNGLDELETESAMPLERSPROC glDeleteSamplers;
819 opencascade::PFNGLISSAMPLERPROC glIsSampler;
820 opencascade::PFNGLBINDSAMPLERPROC glBindSampler;
821 opencascade::PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
822 opencascade::PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
823 opencascade::PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
824 opencascade::PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
825 opencascade::PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
826 opencascade::PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
827 opencascade::PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
828 opencascade::PFNGLBINDTRANSFORMFEEDBACKPROC glBindTransformFeedback;
829 opencascade::PFNGLDELETETRANSFORMFEEDBACKSPROC glDeleteTransformFeedbacks;
830 opencascade::PFNGLGENTRANSFORMFEEDBACKSPROC glGenTransformFeedbacks;
831 opencascade::PFNGLISTRANSFORMFEEDBACKPROC glIsTransformFeedback;
832 opencascade::PFNGLPAUSETRANSFORMFEEDBACKPROC glPauseTransformFeedback;
833 opencascade::PFNGLRESUMETRANSFORMFEEDBACKPROC glResumeTransformFeedback;
834 opencascade::PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
835 opencascade::PFNGLPROGRAMBINARYPROC glProgramBinary;
836 opencascade::PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
837 opencascade::PFNGLINVALIDATEFRAMEBUFFERPROC glInvalidateFramebuffer;
838 opencascade::PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer;
839 opencascade::PFNGLTEXSTORAGE2DPROC glTexStorage2D;
840 opencascade::PFNGLTEXSTORAGE3DPROC glTexStorage3D;
841 opencascade::PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ;
843 public: //! @name OpenGL ES 3.1
845 opencascade::PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
846 opencascade::PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect;
847 opencascade::PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect;
848 opencascade::PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect;
849 opencascade::PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri;
850 opencascade::PFNGLGETFRAMEBUFFERPARAMETERIVPROC glGetFramebufferParameteriv;
851 opencascade::PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv;
852 opencascade::PFNGLGETPROGRAMRESOURCEINDEXPROC glGetProgramResourceIndex;
853 opencascade::PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName;
854 opencascade::PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv;
855 opencascade::PFNGLGETPROGRAMRESOURCELOCATIONPROC glGetProgramResourceLocation;
856 opencascade::PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages;
857 opencascade::PFNGLACTIVESHADERPROGRAMPROC glActiveShaderProgram;
858 opencascade::PFNGLCREATESHADERPROGRAMVPROC glCreateShaderProgramv;
859 opencascade::PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline;
860 opencascade::PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines;
861 opencascade::PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines;
862 opencascade::PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline;
863 opencascade::PFNGLGETPROGRAMPIPELINEIVPROC glGetProgramPipelineiv;
864 opencascade::PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i;
865 opencascade::PFNGLPROGRAMUNIFORM2IPROC glProgramUniform2i;
866 opencascade::PFNGLPROGRAMUNIFORM3IPROC glProgramUniform3i;
867 opencascade::PFNGLPROGRAMUNIFORM4IPROC glProgramUniform4i;
868 opencascade::PFNGLPROGRAMUNIFORM1UIPROC glProgramUniform1ui;
869 opencascade::PFNGLPROGRAMUNIFORM2UIPROC glProgramUniform2ui;
870 opencascade::PFNGLPROGRAMUNIFORM3UIPROC glProgramUniform3ui;
871 opencascade::PFNGLPROGRAMUNIFORM4UIPROC glProgramUniform4ui;
872 opencascade::PFNGLPROGRAMUNIFORM1FPROC glProgramUniform1f;
873 opencascade::PFNGLPROGRAMUNIFORM2FPROC glProgramUniform2f;
874 opencascade::PFNGLPROGRAMUNIFORM3FPROC glProgramUniform3f;
875 opencascade::PFNGLPROGRAMUNIFORM4FPROC glProgramUniform4f;
876 opencascade::PFNGLPROGRAMUNIFORM1IVPROC glProgramUniform1iv;
877 opencascade::PFNGLPROGRAMUNIFORM2IVPROC glProgramUniform2iv;
878 opencascade::PFNGLPROGRAMUNIFORM3IVPROC glProgramUniform3iv;
879 opencascade::PFNGLPROGRAMUNIFORM4IVPROC glProgramUniform4iv;
880 opencascade::PFNGLPROGRAMUNIFORM1UIVPROC glProgramUniform1uiv;
881 opencascade::PFNGLPROGRAMUNIFORM2UIVPROC glProgramUniform2uiv;
882 opencascade::PFNGLPROGRAMUNIFORM3UIVPROC glProgramUniform3uiv;
883 opencascade::PFNGLPROGRAMUNIFORM4UIVPROC glProgramUniform4uiv;
884 opencascade::PFNGLPROGRAMUNIFORM1FVPROC glProgramUniform1fv;
885 opencascade::PFNGLPROGRAMUNIFORM2FVPROC glProgramUniform2fv;
886 opencascade::PFNGLPROGRAMUNIFORM3FVPROC glProgramUniform3fv;
887 opencascade::PFNGLPROGRAMUNIFORM4FVPROC glProgramUniform4fv;
888 opencascade::PFNGLPROGRAMUNIFORMMATRIX2FVPROC glProgramUniformMatrix2fv;
889 opencascade::PFNGLPROGRAMUNIFORMMATRIX3FVPROC glProgramUniformMatrix3fv;
890 opencascade::PFNGLPROGRAMUNIFORMMATRIX4FVPROC glProgramUniformMatrix4fv;
891 opencascade::PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glProgramUniformMatrix2x3fv;
892 opencascade::PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glProgramUniformMatrix3x2fv;
893 opencascade::PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glProgramUniformMatrix2x4fv;
894 opencascade::PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glProgramUniformMatrix4x2fv;
895 opencascade::PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glProgramUniformMatrix3x4fv;
896 opencascade::PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glProgramUniformMatrix4x3fv;
897 opencascade::PFNGLVALIDATEPROGRAMPIPELINEPROC glValidateProgramPipeline;
898 opencascade::PFNGLGETPROGRAMPIPELINEINFOLOGPROC glGetProgramPipelineInfoLog;
899 opencascade::PFNGLBINDIMAGETEXTUREPROC glBindImageTexture;
900 opencascade::PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
901 opencascade::PFNGLMEMORYBARRIERPROC glMemoryBarrier;
902 opencascade::PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
903 opencascade::PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
904 opencascade::PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
905 opencascade::PFNGLSAMPLEMASKIPROC glSampleMaski;
906 opencascade::PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
907 opencascade::PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
908 opencascade::PFNGLBINDVERTEXBUFFERPROC glBindVertexBuffer;
909 opencascade::PFNGLVERTEXATTRIBFORMATPROC glVertexAttribFormat;
910 opencascade::PFNGLVERTEXATTRIBIFORMATPROC glVertexAttribIFormat;
911 opencascade::PFNGLVERTEXATTRIBBINDINGPROC glVertexAttribBinding;
912 opencascade::PFNGLVERTEXBINDINGDIVISORPROC glVertexBindingDivisor;
914 public: //! @name OpenGL ES 3.2
916 opencascade::PFNGLBLENDBARRIERPROC glBlendBarrier;
917 opencascade::PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
918 opencascade::PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
919 opencascade::PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
920 opencascade::PFNGLOBJECTLABELPROC glObjectLabel;
921 opencascade::PFNGLGETOBJECTLABELPROC glGetObjectLabel;
922 opencascade::PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
923 opencascade::PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
924 opencascade::PFNGLGETPOINTERVPROC glGetPointerv;
925 opencascade::PFNGLENABLEIPROC glEnablei;
926 opencascade::PFNGLDISABLEIPROC glDisablei;
927 opencascade::PFNGLBLENDEQUATIONIPROC glBlendEquationi;
928 opencascade::PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
929 opencascade::PFNGLBLENDFUNCIPROC glBlendFunci;
930 opencascade::PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
931 opencascade::PFNGLCOLORMASKIPROC glColorMaski;
932 opencascade::PFNGLISENABLEDIPROC glIsEnabledi;
933 opencascade::PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
934 opencascade::PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
935 opencascade::PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
936 opencascade::PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
937 opencascade::PFNGLPRIMITIVEBOUNDINGBOXPROC glPrimitiveBoundingBox;
938 opencascade::PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
939 opencascade::PFNGLREADNPIXELSPROC glReadnPixels;
940 opencascade::PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
941 opencascade::PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
942 opencascade::PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
943 opencascade::PFNGLMINSAMPLESHADINGPROC glMinSampleShading;
944 opencascade::PFNGLPATCHPARAMETERIPROC glPatchParameteri;
945 opencascade::PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
946 opencascade::PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
947 opencascade::PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
948 opencascade::PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
949 opencascade::PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
950 opencascade::PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
951 opencascade::PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
952 opencascade::PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
953 opencascade::PFNGLTEXBUFFERPROC glTexBuffer;
954 opencascade::PFNGLTEXBUFFERRANGEPROC glTexBufferRange;
955 opencascade::PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
957 public: //! @name GL_KHR_debug (optional) or OpenGL ES 3.2+
959 opencascade::PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
960 opencascade::PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
961 opencascade::PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
962 opencascade::PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
964 #else // OpenGL ES vs. desktop
966 public: //! @name OpenGL 1.2
968 PFNGLBLENDCOLORPROC glBlendColor;
969 PFNGLBLENDEQUATIONPROC glBlendEquation;
970 PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
971 PFNGLTEXIMAGE3DPROC glTexImage3D;
972 PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
973 PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
975 public: //! @name OpenGL 1.3
977 PFNGLACTIVETEXTUREPROC glActiveTexture;
978 PFNGLSAMPLECOVERAGEPROC glSampleCoverage;
979 PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
980 PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D;
981 PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D;
982 PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
983 PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
984 PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D;
985 PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage;
987 PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTexture;
988 PFNGLMULTITEXCOORD1DPROC glMultiTexCoord1d;
989 PFNGLMULTITEXCOORD1DVPROC glMultiTexCoord1dv;
990 PFNGLMULTITEXCOORD1FPROC glMultiTexCoord1f;
991 PFNGLMULTITEXCOORD1FVPROC glMultiTexCoord1fv;
992 PFNGLMULTITEXCOORD1IPROC glMultiTexCoord1i;
993 PFNGLMULTITEXCOORD1IVPROC glMultiTexCoord1iv;
994 PFNGLMULTITEXCOORD1SPROC glMultiTexCoord1s;
995 PFNGLMULTITEXCOORD1SVPROC glMultiTexCoord1sv;
996 PFNGLMULTITEXCOORD2DPROC glMultiTexCoord2d;
997 PFNGLMULTITEXCOORD2DVPROC glMultiTexCoord2dv;
998 PFNGLMULTITEXCOORD2FPROC glMultiTexCoord2f;
999 PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv;
1000 PFNGLMULTITEXCOORD2IPROC glMultiTexCoord2i;
1001 PFNGLMULTITEXCOORD2IVPROC glMultiTexCoord2iv;
1002 PFNGLMULTITEXCOORD2SPROC glMultiTexCoord2s;
1003 PFNGLMULTITEXCOORD2SVPROC glMultiTexCoord2sv;
1004 PFNGLMULTITEXCOORD3DPROC glMultiTexCoord3d;
1005 PFNGLMULTITEXCOORD3DVPROC glMultiTexCoord3dv;
1006 PFNGLMULTITEXCOORD3FPROC glMultiTexCoord3f;
1007 PFNGLMULTITEXCOORD3FVPROC glMultiTexCoord3fv;
1008 PFNGLMULTITEXCOORD3IPROC glMultiTexCoord3i;
1009 PFNGLMULTITEXCOORD3IVPROC glMultiTexCoord3iv;
1010 PFNGLMULTITEXCOORD3SPROC glMultiTexCoord3s;
1011 PFNGLMULTITEXCOORD3SVPROC glMultiTexCoord3sv;
1012 PFNGLMULTITEXCOORD4DPROC glMultiTexCoord4d;
1013 PFNGLMULTITEXCOORD4DVPROC glMultiTexCoord4dv;
1014 PFNGLMULTITEXCOORD4FPROC glMultiTexCoord4f;
1015 PFNGLMULTITEXCOORD4FVPROC glMultiTexCoord4fv;
1016 PFNGLMULTITEXCOORD4IPROC glMultiTexCoord4i;
1017 PFNGLMULTITEXCOORD4IVPROC glMultiTexCoord4iv;
1018 PFNGLMULTITEXCOORD4SPROC glMultiTexCoord4s;
1019 PFNGLMULTITEXCOORD4SVPROC glMultiTexCoord4sv;
1020 PFNGLLOADTRANSPOSEMATRIXFPROC glLoadTransposeMatrixf;
1021 PFNGLLOADTRANSPOSEMATRIXDPROC glLoadTransposeMatrixd;
1022 PFNGLMULTTRANSPOSEMATRIXFPROC glMultTransposeMatrixf;
1023 PFNGLMULTTRANSPOSEMATRIXDPROC glMultTransposeMatrixd;
1025 public: //! @name OpenGL 1.4
1027 PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
1028 PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays;
1029 PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements;
1030 PFNGLPOINTPARAMETERFPROC glPointParameterf;
1031 PFNGLPOINTPARAMETERFVPROC glPointParameterfv;
1032 PFNGLPOINTPARAMETERIPROC glPointParameteri;
1033 PFNGLPOINTPARAMETERIVPROC glPointParameteriv;
1035 public: //! @name OpenGL 1.5
1037 PFNGLGENQUERIESPROC glGenQueries;
1038 PFNGLDELETEQUERIESPROC glDeleteQueries;
1039 PFNGLISQUERYPROC glIsQuery;
1040 PFNGLBEGINQUERYPROC glBeginQuery;
1041 PFNGLENDQUERYPROC glEndQuery;
1042 PFNGLGETQUERYIVPROC glGetQueryiv;
1043 PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv;
1044 PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
1045 PFNGLBINDBUFFERPROC glBindBuffer;
1046 PFNGLDELETEBUFFERSPROC glDeleteBuffers;
1047 PFNGLGENBUFFERSPROC glGenBuffers;
1048 PFNGLISBUFFERPROC glIsBuffer;
1049 PFNGLBUFFERDATAPROC glBufferData;
1050 PFNGLBUFFERSUBDATAPROC glBufferSubData;
1051 PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData;
1052 PFNGLMAPBUFFERPROC glMapBuffer;
1053 PFNGLUNMAPBUFFERPROC glUnmapBuffer;
1054 PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv;
1055 PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
1057 public: //! @name OpenGL 2.0
1059 PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
1060 PFNGLDRAWBUFFERSPROC glDrawBuffers;
1061 PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate;
1062 PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
1063 PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate;
1064 PFNGLATTACHSHADERPROC glAttachShader;
1065 PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
1066 PFNGLCOMPILESHADERPROC glCompileShader;
1067 PFNGLCREATEPROGRAMPROC glCreateProgram;
1068 PFNGLCREATESHADERPROC glCreateShader;
1069 PFNGLDELETEPROGRAMPROC glDeleteProgram;
1070 PFNGLDELETESHADERPROC glDeleteShader;
1071 PFNGLDETACHSHADERPROC glDetachShader;
1072 PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
1073 PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
1074 PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib;
1075 PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
1076 PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders;
1077 PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
1078 PFNGLGETPROGRAMIVPROC glGetProgramiv;
1079 PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
1080 PFNGLGETSHADERIVPROC glGetShaderiv;
1081 PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
1082 PFNGLGETSHADERSOURCEPROC glGetShaderSource;
1083 PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
1084 PFNGLGETUNIFORMFVPROC glGetUniformfv;
1085 PFNGLGETUNIFORMIVPROC glGetUniformiv;
1086 PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv;
1087 PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
1088 PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv;
1089 PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv;
1090 PFNGLISPROGRAMPROC glIsProgram;
1091 PFNGLISSHADERPROC glIsShader;
1092 PFNGLLINKPROGRAMPROC glLinkProgram;
1093 PFNGLSHADERSOURCEPROC glShaderSource;
1094 PFNGLUSEPROGRAMPROC glUseProgram;
1095 PFNGLUNIFORM1FPROC glUniform1f;
1096 PFNGLUNIFORM2FPROC glUniform2f;
1097 PFNGLUNIFORM3FPROC glUniform3f;
1098 PFNGLUNIFORM4FPROC glUniform4f;
1099 PFNGLUNIFORM1IPROC glUniform1i;
1100 PFNGLUNIFORM2IPROC glUniform2i;
1101 PFNGLUNIFORM3IPROC glUniform3i;
1102 PFNGLUNIFORM4IPROC glUniform4i;
1103 PFNGLUNIFORM1FVPROC glUniform1fv;
1104 PFNGLUNIFORM2FVPROC glUniform2fv;
1105 PFNGLUNIFORM3FVPROC glUniform3fv;
1106 PFNGLUNIFORM4FVPROC glUniform4fv;
1107 PFNGLUNIFORM1IVPROC glUniform1iv;
1108 PFNGLUNIFORM2IVPROC glUniform2iv;
1109 PFNGLUNIFORM3IVPROC glUniform3iv;
1110 PFNGLUNIFORM4IVPROC glUniform4iv;
1111 PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv;
1112 PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv;
1113 PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
1114 PFNGLVALIDATEPROGRAMPROC glValidateProgram;
1115 PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d;
1116 PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv;
1117 PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
1118 PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
1119 PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s;
1120 PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv;
1121 PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d;
1122 PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv;
1123 PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f;
1124 PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
1125 PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s;
1126 PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv;
1127 PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d;
1128 PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv;
1129 PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f;
1130 PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
1131 PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s;
1132 PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv;
1133 PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv;
1134 PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv;
1135 PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv;
1136 PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub;
1137 PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv;
1138 PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv;
1139 PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv;
1140 PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv;
1141 PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d;
1142 PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv;
1143 PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f;
1144 PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
1145 PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv;
1146 PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s;
1147 PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv;
1148 PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv;
1149 PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv;
1150 PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv;
1151 PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
1153 public: //! @name OpenGL 2.1
1155 PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv;
1156 PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv;
1157 PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv;
1158 PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv;
1159 PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
1160 PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv;
1162 public: //! @name GL_ARB_framebuffer_object (added to OpenGL 3.0 core)
1164 PFNGLISRENDERBUFFERPROC glIsRenderbuffer;
1165 PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
1166 PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
1167 PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
1168 PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
1169 PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv;
1170 PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
1171 PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
1172 PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
1173 PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
1174 PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
1175 PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D;
1176 PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
1177 PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
1178 PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
1179 PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
1180 PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
1181 PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
1182 PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
1183 PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
1185 public: //! @name GL_ARB_vertex_array_object (added to OpenGL 3.0 core)
1187 PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
1188 PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
1189 PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
1190 PFNGLISVERTEXARRAYPROC glIsVertexArray;
1192 public: //! @name GL_ARB_map_buffer_range (added to OpenGL 3.0 core)
1194 PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
1195 PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
1197 public: //! @name OpenGL 3.0
1199 PFNGLCOLORMASKIPROC glColorMaski;
1200 PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
1201 PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
1202 PFNGLENABLEIPROC glEnablei;
1203 PFNGLDISABLEIPROC glDisablei;
1204 PFNGLISENABLEDIPROC glIsEnabledi;
1205 PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
1206 PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
1207 PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
1208 PFNGLBINDBUFFERBASEPROC glBindBufferBase;
1209 PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
1210 PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
1211 PFNGLCLAMPCOLORPROC glClampColor;
1212 PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender;
1213 PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender;
1214 PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
1215 PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
1216 PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
1217 PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i;
1218 PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i;
1219 PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i;
1220 PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
1221 PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui;
1222 PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui;
1223 PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui;
1224 PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
1225 PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv;
1226 PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv;
1227 PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv;
1228 PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
1229 PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv;
1230 PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv;
1231 PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv;
1232 PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
1233 PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv;
1234 PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv;
1235 PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv;
1236 PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv;
1237 PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
1238 PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation;
1239 PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
1240 PFNGLUNIFORM1UIPROC glUniform1ui;
1241 PFNGLUNIFORM2UIPROC glUniform2ui;
1242 PFNGLUNIFORM3UIPROC glUniform3ui;
1243 PFNGLUNIFORM4UIPROC glUniform4ui;
1244 PFNGLUNIFORM1UIVPROC glUniform1uiv;
1245 PFNGLUNIFORM2UIVPROC glUniform2uiv;
1246 PFNGLUNIFORM3UIVPROC glUniform3uiv;
1247 PFNGLUNIFORM4UIVPROC glUniform4uiv;
1248 PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
1249 PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
1250 PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
1251 PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
1252 PFNGLCLEARBUFFERIVPROC glClearBufferiv;
1253 PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
1254 PFNGLCLEARBUFFERFVPROC glClearBufferfv;
1255 PFNGLCLEARBUFFERFIPROC glClearBufferfi;
1256 PFNGLGETSTRINGIPROC glGetStringi;
1258 public: //! @name GL_ARB_uniform_buffer_object (added to OpenGL 3.1 core)
1260 PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
1261 PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
1262 PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformName;
1263 PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
1264 PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
1265 PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
1266 PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
1268 public: //! @name GL_ARB_copy_buffer (added to OpenGL 3.1 core)
1270 PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData;
1272 public: //! @name OpenGL 3.1
1274 PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
1275 PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
1276 PFNGLTEXBUFFERPROC glTexBuffer;
1277 PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex;
1279 public: //! @name GL_ARB_draw_elements_base_vertex (added to OpenGL 3.2 core)
1281 PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
1282 PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
1283 PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
1284 PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex;
1286 public: //! @name GL_ARB_provoking_vertex (added to OpenGL 3.2 core)
1288 PFNGLPROVOKINGVERTEXPROC glProvokingVertex;
1290 public: //! @name GL_ARB_sync (added to OpenGL 3.2 core)
1292 PFNGLFENCESYNCPROC glFenceSync;
1293 PFNGLISSYNCPROC glIsSync;
1294 PFNGLDELETESYNCPROC glDeleteSync;
1295 PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
1296 PFNGLWAITSYNCPROC glWaitSync;
1297 PFNGLGETINTEGER64VPROC glGetInteger64v;
1298 PFNGLGETSYNCIVPROC glGetSynciv;
1300 public: //! @name GL_ARB_texture_multisample (added to OpenGL 3.2 core)
1302 PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
1303 PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample;
1304 PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
1305 PFNGLSAMPLEMASKIPROC glSampleMaski;
1307 public: //! @name OpenGL 3.2
1309 PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
1310 PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
1311 PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
1313 public: //! @name GL_ARB_blend_func_extended (added to OpenGL 3.3 core)
1315 PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glBindFragDataLocationIndexed;
1316 PFNGLGETFRAGDATAINDEXPROC glGetFragDataIndex;
1318 public: //! @name GL_ARB_sampler_objects (added to OpenGL 3.3 core)
1320 PFNGLGENSAMPLERSPROC glGenSamplers;
1321 PFNGLDELETESAMPLERSPROC glDeleteSamplers;
1322 PFNGLISSAMPLERPROC glIsSampler;
1323 PFNGLBINDSAMPLERPROC glBindSampler;
1324 PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
1325 PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
1326 PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
1327 PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
1328 PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
1329 PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
1330 PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
1331 PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
1332 PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
1333 PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
1335 public: //! @name GL_ARB_timer_query (added to OpenGL 3.3 core)
1337 PFNGLQUERYCOUNTERPROC glQueryCounter;
1338 PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v;
1339 PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v;
1341 public: //! @name GL_ARB_vertex_type_2_10_10_10_rev (added to OpenGL 3.3 core)
1343 PFNGLVERTEXP2UIPROC glVertexP2ui;
1344 PFNGLVERTEXP2UIVPROC glVertexP2uiv;
1345 PFNGLVERTEXP3UIPROC glVertexP3ui;
1346 PFNGLVERTEXP3UIVPROC glVertexP3uiv;
1347 PFNGLVERTEXP4UIPROC glVertexP4ui;
1348 PFNGLVERTEXP4UIVPROC glVertexP4uiv;
1349 PFNGLTEXCOORDP1UIPROC glTexCoordP1ui;
1350 PFNGLTEXCOORDP1UIVPROC glTexCoordP1uiv;
1351 PFNGLTEXCOORDP2UIPROC glTexCoordP2ui;
1352 PFNGLTEXCOORDP2UIVPROC glTexCoordP2uiv;
1353 PFNGLTEXCOORDP3UIPROC glTexCoordP3ui;
1354 PFNGLTEXCOORDP3UIVPROC glTexCoordP3uiv;
1355 PFNGLTEXCOORDP4UIPROC glTexCoordP4ui;
1356 PFNGLTEXCOORDP4UIVPROC glTexCoordP4uiv;
1357 PFNGLMULTITEXCOORDP1UIPROC glMultiTexCoordP1ui;
1358 PFNGLMULTITEXCOORDP1UIVPROC glMultiTexCoordP1uiv;
1359 PFNGLMULTITEXCOORDP2UIPROC glMultiTexCoordP2ui;
1360 PFNGLMULTITEXCOORDP2UIVPROC glMultiTexCoordP2uiv;
1361 PFNGLMULTITEXCOORDP3UIPROC glMultiTexCoordP3ui;
1362 PFNGLMULTITEXCOORDP3UIVPROC glMultiTexCoordP3uiv;
1363 PFNGLMULTITEXCOORDP4UIPROC glMultiTexCoordP4ui;
1364 PFNGLMULTITEXCOORDP4UIVPROC glMultiTexCoordP4uiv;
1365 PFNGLNORMALP3UIPROC glNormalP3ui;
1366 PFNGLNORMALP3UIVPROC glNormalP3uiv;
1367 PFNGLCOLORP3UIPROC glColorP3ui;
1368 PFNGLCOLORP3UIVPROC glColorP3uiv;
1369 PFNGLCOLORP4UIPROC glColorP4ui;
1370 PFNGLCOLORP4UIVPROC glColorP4uiv;
1371 PFNGLSECONDARYCOLORP3UIPROC glSecondaryColorP3ui;
1372 PFNGLSECONDARYCOLORP3UIVPROC glSecondaryColorP3uiv;
1373 PFNGLVERTEXATTRIBP1UIPROC glVertexAttribP1ui;
1374 PFNGLVERTEXATTRIBP1UIVPROC glVertexAttribP1uiv;
1375 PFNGLVERTEXATTRIBP2UIPROC glVertexAttribP2ui;
1376 PFNGLVERTEXATTRIBP2UIVPROC glVertexAttribP2uiv;
1377 PFNGLVERTEXATTRIBP3UIPROC glVertexAttribP3ui;
1378 PFNGLVERTEXATTRIBP3UIVPROC glVertexAttribP3uiv;
1379 PFNGLVERTEXATTRIBP4UIPROC glVertexAttribP4ui;
1380 PFNGLVERTEXATTRIBP4UIVPROC glVertexAttribP4uiv;
1382 public: //! @name OpenGL 3.3
1384 PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
1386 public: //! @name GL_ARB_draw_indirect (added to OpenGL 4.0 core)
1388 PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect;
1389 PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect;
1391 public: //! @name GL_ARB_gpu_shader_fp64 (added to OpenGL 4.0 core)
1393 PFNGLUNIFORM1DPROC glUniform1d;
1394 PFNGLUNIFORM2DPROC glUniform2d;
1395 PFNGLUNIFORM3DPROC glUniform3d;
1396 PFNGLUNIFORM4DPROC glUniform4d;
1397 PFNGLUNIFORM1DVPROC glUniform1dv;
1398 PFNGLUNIFORM2DVPROC glUniform2dv;
1399 PFNGLUNIFORM3DVPROC glUniform3dv;
1400 PFNGLUNIFORM4DVPROC glUniform4dv;
1401 PFNGLUNIFORMMATRIX2DVPROC glUniformMatrix2dv;
1402 PFNGLUNIFORMMATRIX3DVPROC glUniformMatrix3dv;
1403 PFNGLUNIFORMMATRIX4DVPROC glUniformMatrix4dv;
1404 PFNGLUNIFORMMATRIX2X3DVPROC glUniformMatrix2x3dv;
1405 PFNGLUNIFORMMATRIX2X4DVPROC glUniformMatrix2x4dv;
1406 PFNGLUNIFORMMATRIX3X2DVPROC glUniformMatrix3x2dv;
1407 PFNGLUNIFORMMATRIX3X4DVPROC glUniformMatrix3x4dv;
1408 PFNGLUNIFORMMATRIX4X2DVPROC glUniformMatrix4x2dv;
1409 PFNGLUNIFORMMATRIX4X3DVPROC glUniformMatrix4x3dv;
1410 PFNGLGETUNIFORMDVPROC glGetUniformdv;
1412 public: //! @name GL_ARB_shader_subroutine (added to OpenGL 4.0 core)
1414 PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glGetSubroutineUniformLocation;
1415 PFNGLGETSUBROUTINEINDEXPROC glGetSubroutineIndex;
1416 PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glGetActiveSubroutineUniformiv;
1417 PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glGetActiveSubroutineUniformName;
1418 PFNGLGETACTIVESUBROUTINENAMEPROC glGetActiveSubroutineName;
1419 PFNGLUNIFORMSUBROUTINESUIVPROC glUniformSubroutinesuiv;
1420 PFNGLGETUNIFORMSUBROUTINEUIVPROC glGetUniformSubroutineuiv;
1421 PFNGLGETPROGRAMSTAGEIVPROC glGetProgramStageiv;
1423 public: //! @name GL_ARB_tessellation_shader (added to OpenGL 4.0 core)
1425 PFNGLPATCHPARAMETERIPROC glPatchParameteri;
1426 PFNGLPATCHPARAMETERFVPROC glPatchParameterfv;
1428 public: //! @name GL_ARB_transform_feedback2 (added to OpenGL 4.0 core)
1430 PFNGLBINDTRANSFORMFEEDBACKPROC glBindTransformFeedback;
1431 PFNGLDELETETRANSFORMFEEDBACKSPROC glDeleteTransformFeedbacks;
1432 PFNGLGENTRANSFORMFEEDBACKSPROC glGenTransformFeedbacks;
1433 PFNGLISTRANSFORMFEEDBACKPROC glIsTransformFeedback;
1434 PFNGLPAUSETRANSFORMFEEDBACKPROC glPauseTransformFeedback;
1435 PFNGLRESUMETRANSFORMFEEDBACKPROC glResumeTransformFeedback;
1436 PFNGLDRAWTRANSFORMFEEDBACKPROC glDrawTransformFeedback;
1438 public: //! @name GL_ARB_transform_feedback3 (added to OpenGL 4.0 core)
1440 PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glDrawTransformFeedbackStream;
1441 PFNGLBEGINQUERYINDEXEDPROC glBeginQueryIndexed;
1442 PFNGLENDQUERYINDEXEDPROC glEndQueryIndexed;
1443 PFNGLGETQUERYINDEXEDIVPROC glGetQueryIndexediv;
1445 public: //! @name OpenGL 4.0
1447 PFNGLMINSAMPLESHADINGPROC glMinSampleShading;
1448 PFNGLBLENDEQUATIONIPROC glBlendEquationi;
1449 PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
1450 PFNGLBLENDFUNCIPROC glBlendFunci;
1451 PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
1453 public: //! @name GL_ARB_ES2_compatibility (added to OpenGL 4.1 core)
1455 PFNGLRELEASESHADERCOMPILERPROC glReleaseShaderCompiler;
1456 PFNGLSHADERBINARYPROC glShaderBinary;
1457 PFNGLGETSHADERPRECISIONFORMATPROC glGetShaderPrecisionFormat;
1458 PFNGLDEPTHRANGEFPROC glDepthRangef;
1459 PFNGLCLEARDEPTHFPROC glClearDepthf;
1461 public: //! @name GL_ARB_get_program_binary (added to OpenGL 4.1 core)
1463 PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
1464 PFNGLPROGRAMBINARYPROC glProgramBinary;
1465 PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
1467 public: //! @name GL_ARB_separate_shader_objects (added to OpenGL 4.1 core)
1469 PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages;
1470 PFNGLACTIVESHADERPROGRAMPROC glActiveShaderProgram;
1471 PFNGLCREATESHADERPROGRAMVPROC glCreateShaderProgramv;
1472 PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline;
1473 PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines;
1474 PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines;
1475 PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline;
1476 PFNGLGETPROGRAMPIPELINEIVPROC glGetProgramPipelineiv;
1477 PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i;
1478 PFNGLPROGRAMUNIFORM1IVPROC glProgramUniform1iv;
1479 PFNGLPROGRAMUNIFORM1FPROC glProgramUniform1f;
1480 PFNGLPROGRAMUNIFORM1FVPROC glProgramUniform1fv;
1481 PFNGLPROGRAMUNIFORM1DPROC glProgramUniform1d;
1482 PFNGLPROGRAMUNIFORM1DVPROC glProgramUniform1dv;
1483 PFNGLPROGRAMUNIFORM1UIPROC glProgramUniform1ui;
1484 PFNGLPROGRAMUNIFORM1UIVPROC glProgramUniform1uiv;
1485 PFNGLPROGRAMUNIFORM2IPROC glProgramUniform2i;
1486 PFNGLPROGRAMUNIFORM2IVPROC glProgramUniform2iv;
1487 PFNGLPROGRAMUNIFORM2FPROC glProgramUniform2f;
1488 PFNGLPROGRAMUNIFORM2FVPROC glProgramUniform2fv;
1489 PFNGLPROGRAMUNIFORM2DPROC glProgramUniform2d;
1490 PFNGLPROGRAMUNIFORM2DVPROC glProgramUniform2dv;
1491 PFNGLPROGRAMUNIFORM2UIPROC glProgramUniform2ui;
1492 PFNGLPROGRAMUNIFORM2UIVPROC glProgramUniform2uiv;
1493 PFNGLPROGRAMUNIFORM3IPROC glProgramUniform3i;
1494 PFNGLPROGRAMUNIFORM3IVPROC glProgramUniform3iv;
1495 PFNGLPROGRAMUNIFORM3FPROC glProgramUniform3f;
1496 PFNGLPROGRAMUNIFORM3FVPROC glProgramUniform3fv;
1497 PFNGLPROGRAMUNIFORM3DPROC glProgramUniform3d;
1498 PFNGLPROGRAMUNIFORM3DVPROC glProgramUniform3dv;
1499 PFNGLPROGRAMUNIFORM3UIPROC glProgramUniform3ui;
1500 PFNGLPROGRAMUNIFORM3UIVPROC glProgramUniform3uiv;
1501 PFNGLPROGRAMUNIFORM4IPROC glProgramUniform4i;
1502 PFNGLPROGRAMUNIFORM4IVPROC glProgramUniform4iv;
1503 PFNGLPROGRAMUNIFORM4FPROC glProgramUniform4f;
1504 PFNGLPROGRAMUNIFORM4FVPROC glProgramUniform4fv;
1505 PFNGLPROGRAMUNIFORM4DPROC glProgramUniform4d;
1506 PFNGLPROGRAMUNIFORM4DVPROC glProgramUniform4dv;
1507 PFNGLPROGRAMUNIFORM4UIPROC glProgramUniform4ui;
1508 PFNGLPROGRAMUNIFORM4UIVPROC glProgramUniform4uiv;
1509 PFNGLPROGRAMUNIFORMMATRIX2FVPROC glProgramUniformMatrix2fv;
1510 PFNGLPROGRAMUNIFORMMATRIX3FVPROC glProgramUniformMatrix3fv;
1511 PFNGLPROGRAMUNIFORMMATRIX4FVPROC glProgramUniformMatrix4fv;
1512 PFNGLPROGRAMUNIFORMMATRIX2DVPROC glProgramUniformMatrix2dv;
1513 PFNGLPROGRAMUNIFORMMATRIX3DVPROC glProgramUniformMatrix3dv;
1514 PFNGLPROGRAMUNIFORMMATRIX4DVPROC glProgramUniformMatrix4dv;
1515 PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glProgramUniformMatrix2x3fv;
1516 PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glProgramUniformMatrix3x2fv;
1517 PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glProgramUniformMatrix2x4fv;
1518 PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glProgramUniformMatrix4x2fv;
1519 PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glProgramUniformMatrix3x4fv;
1520 PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glProgramUniformMatrix4x3fv;
1521 PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glProgramUniformMatrix2x3dv;
1522 PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glProgramUniformMatrix3x2dv;
1523 PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glProgramUniformMatrix2x4dv;
1524 PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glProgramUniformMatrix4x2dv;
1525 PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glProgramUniformMatrix3x4dv;
1526 PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glProgramUniformMatrix4x3dv;
1527 PFNGLVALIDATEPROGRAMPIPELINEPROC glValidateProgramPipeline;
1528 PFNGLGETPROGRAMPIPELINEINFOLOGPROC glGetProgramPipelineInfoLog;
1530 public: //! @name GL_ARB_vertex_attrib_64bit (added to OpenGL 4.1 core)
1532 PFNGLVERTEXATTRIBL1DPROC glVertexAttribL1d;
1533 PFNGLVERTEXATTRIBL2DPROC glVertexAttribL2d;
1534 PFNGLVERTEXATTRIBL3DPROC glVertexAttribL3d;
1535 PFNGLVERTEXATTRIBL4DPROC glVertexAttribL4d;
1536 PFNGLVERTEXATTRIBL1DVPROC glVertexAttribL1dv;
1537 PFNGLVERTEXATTRIBL2DVPROC glVertexAttribL2dv;
1538 PFNGLVERTEXATTRIBL3DVPROC glVertexAttribL3dv;
1539 PFNGLVERTEXATTRIBL4DVPROC glVertexAttribL4dv;
1540 PFNGLVERTEXATTRIBLPOINTERPROC glVertexAttribLPointer;
1541 PFNGLGETVERTEXATTRIBLDVPROC glGetVertexAttribLdv;
1543 public: //! @name GL_ARB_viewport_array (added to OpenGL 4.1 core)
1545 PFNGLVIEWPORTARRAYVPROC glViewportArrayv;
1546 PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf;
1547 PFNGLVIEWPORTINDEXEDFVPROC glViewportIndexedfv;
1548 PFNGLSCISSORARRAYVPROC glScissorArrayv;
1549 PFNGLSCISSORINDEXEDPROC glScissorIndexed;
1550 PFNGLSCISSORINDEXEDVPROC glScissorIndexedv;
1551 PFNGLDEPTHRANGEARRAYVPROC glDepthRangeArrayv;
1552 PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed;
1553 PFNGLGETFLOATI_VPROC glGetFloati_v;
1554 PFNGLGETDOUBLEI_VPROC glGetDoublei_v;
1556 public: //! @name OpenGL 4.1
1560 public: //! @name GL_ARB_base_instance (added to OpenGL 4.2 core)
1562 PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glDrawArraysInstancedBaseInstance;
1563 PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glDrawElementsInstancedBaseInstance;
1564 PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glDrawElementsInstancedBaseVertexBaseInstance;
1566 public: //! @name GL_ARB_transform_feedback_instanced (added to OpenGL 4.2 core)
1568 PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glDrawTransformFeedbackInstanced;
1569 PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glDrawTransformFeedbackStreamInstanced;
1571 public: //! @name GL_ARB_internalformat_query (added to OpenGL 4.2 core)
1573 PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ;
1575 public: //! @name GL_ARB_shader_atomic_counters (added to OpenGL 4.2 core)
1577 PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glGetActiveAtomicCounterBufferiv;
1579 public: //! @name GL_ARB_shader_image_load_store (added to OpenGL 4.2 core)
1581 PFNGLBINDIMAGETEXTUREPROC glBindImageTexture;
1582 PFNGLMEMORYBARRIERPROC glMemoryBarrier;
1584 public: //! @name GL_ARB_texture_storage (added to OpenGL 4.2 core)
1586 PFNGLTEXSTORAGE1DPROC glTexStorage1D;
1587 PFNGLTEXSTORAGE2DPROC glTexStorage2D;
1588 PFNGLTEXSTORAGE3DPROC glTexStorage3D;
1590 public: //! @name OpenGL 4.2
1592 public: //! @name OpenGL 4.3
1594 PFNGLCLEARBUFFERDATAPROC glClearBufferData;
1595 PFNGLCLEARBUFFERSUBDATAPROC glClearBufferSubData;
1596 PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
1597 PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect;
1598 PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
1599 PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri;
1600 PFNGLGETFRAMEBUFFERPARAMETERIVPROC glGetFramebufferParameteriv;
1601 PFNGLGETINTERNALFORMATI64VPROC glGetInternalformati64v;
1602 PFNGLINVALIDATETEXSUBIMAGEPROC glInvalidateTexSubImage;
1603 PFNGLINVALIDATETEXIMAGEPROC glInvalidateTexImage;
1604 PFNGLINVALIDATEBUFFERSUBDATAPROC glInvalidateBufferSubData;
1605 PFNGLINVALIDATEBUFFERDATAPROC glInvalidateBufferData;
1606 PFNGLINVALIDATEFRAMEBUFFERPROC glInvalidateFramebuffer;
1607 PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer;
1608 PFNGLMULTIDRAWARRAYSINDIRECTPROC glMultiDrawArraysIndirect;
1609 PFNGLMULTIDRAWELEMENTSINDIRECTPROC glMultiDrawElementsIndirect;
1610 PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv;
1611 PFNGLGETPROGRAMRESOURCEINDEXPROC glGetProgramResourceIndex;
1612 PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName;
1613 PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv;
1614 PFNGLGETPROGRAMRESOURCELOCATIONPROC glGetProgramResourceLocation;
1615 PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glGetProgramResourceLocationIndex;
1616 PFNGLSHADERSTORAGEBLOCKBINDINGPROC glShaderStorageBlockBinding;
1617 PFNGLTEXBUFFERRANGEPROC glTexBufferRange;
1618 PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
1619 PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
1620 PFNGLTEXTUREVIEWPROC glTextureView;
1621 PFNGLBINDVERTEXBUFFERPROC glBindVertexBuffer;
1622 PFNGLVERTEXATTRIBFORMATPROC glVertexAttribFormat;
1623 PFNGLVERTEXATTRIBIFORMATPROC glVertexAttribIFormat;
1624 PFNGLVERTEXATTRIBLFORMATPROC glVertexAttribLFormat;
1625 PFNGLVERTEXATTRIBBINDINGPROC glVertexAttribBinding;
1626 PFNGLVERTEXBINDINGDIVISORPROC glVertexBindingDivisor;
1627 PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
1628 PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
1629 PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
1630 PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
1631 PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
1632 PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
1633 PFNGLOBJECTLABELPROC glObjectLabel;
1634 PFNGLGETOBJECTLABELPROC glGetObjectLabel;
1635 PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
1636 PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
1638 public: //! @name OpenGL 4.4
1640 PFNGLBUFFERSTORAGEPROC glBufferStorage;
1641 PFNGLCLEARTEXIMAGEPROC glClearTexImage;
1642 PFNGLCLEARTEXSUBIMAGEPROC glClearTexSubImage;
1643 PFNGLBINDBUFFERSBASEPROC glBindBuffersBase;
1644 PFNGLBINDBUFFERSRANGEPROC glBindBuffersRange;
1645 PFNGLBINDTEXTURESPROC glBindTextures;
1646 PFNGLBINDSAMPLERSPROC glBindSamplers;
1647 PFNGLBINDIMAGETEXTURESPROC glBindImageTextures;
1648 PFNGLBINDVERTEXBUFFERSPROC glBindVertexBuffers;
1650 public: //! @name OpenGL 4.5
1652 PFNGLCLIPCONTROLPROC glClipControl;
1653 PFNGLCREATETRANSFORMFEEDBACKSPROC glCreateTransformFeedbacks;
1654 PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glTransformFeedbackBufferBase;
1655 PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glTransformFeedbackBufferRange;
1656 PFNGLGETTRANSFORMFEEDBACKIVPROC glGetTransformFeedbackiv;
1657 PFNGLGETTRANSFORMFEEDBACKI_VPROC glGetTransformFeedbacki_v;
1658 PFNGLGETTRANSFORMFEEDBACKI64_VPROC glGetTransformFeedbacki64_v;
1659 PFNGLCREATEBUFFERSPROC glCreateBuffers;
1660 PFNGLNAMEDBUFFERSTORAGEPROC glNamedBufferStorage;
1661 PFNGLNAMEDBUFFERDATAPROC glNamedBufferData;
1662 PFNGLNAMEDBUFFERSUBDATAPROC glNamedBufferSubData;
1663 PFNGLCOPYNAMEDBUFFERSUBDATAPROC glCopyNamedBufferSubData;
1664 PFNGLCLEARNAMEDBUFFERDATAPROC glClearNamedBufferData;
1665 PFNGLCLEARNAMEDBUFFERSUBDATAPROC glClearNamedBufferSubData;
1666 PFNGLMAPNAMEDBUFFERPROC glMapNamedBuffer;
1667 PFNGLMAPNAMEDBUFFERRANGEPROC glMapNamedBufferRange;
1668 PFNGLUNMAPNAMEDBUFFERPROC glUnmapNamedBuffer;
1669 PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glFlushMappedNamedBufferRange;
1670 PFNGLGETNAMEDBUFFERPARAMETERIVPROC glGetNamedBufferParameteriv;
1671 PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glGetNamedBufferParameteri64v;
1672 PFNGLGETNAMEDBUFFERPOINTERVPROC glGetNamedBufferPointerv;
1673 PFNGLGETNAMEDBUFFERSUBDATAPROC glGetNamedBufferSubData;
1674 PFNGLCREATEFRAMEBUFFERSPROC glCreateFramebuffers;
1675 PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glNamedFramebufferRenderbuffer;
1676 PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glNamedFramebufferParameteri;
1677 PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glNamedFramebufferTexture;
1678 PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glNamedFramebufferTextureLayer;
1679 PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glNamedFramebufferDrawBuffer;
1680 PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glNamedFramebufferDrawBuffers;
1681 PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glNamedFramebufferReadBuffer;
1682 PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glInvalidateNamedFramebufferData;
1683 PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glInvalidateNamedFramebufferSubData;
1684 PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glClearNamedFramebufferiv;
1685 PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glClearNamedFramebufferuiv;
1686 PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glClearNamedFramebufferfv;
1687 PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glClearNamedFramebufferfi;
1688 PFNGLBLITNAMEDFRAMEBUFFERPROC glBlitNamedFramebuffer;
1689 PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glCheckNamedFramebufferStatus;
1690 PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glGetNamedFramebufferParameteriv;
1691 PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetNamedFramebufferAttachmentParameteriv;
1692 PFNGLCREATERENDERBUFFERSPROC glCreateRenderbuffers;
1693 PFNGLNAMEDRENDERBUFFERSTORAGEPROC glNamedRenderbufferStorage;
1694 PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glNamedRenderbufferStorageMultisample;
1695 PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glGetNamedRenderbufferParameteriv;
1696 PFNGLCREATETEXTURESPROC glCreateTextures;
1697 PFNGLTEXTUREBUFFERPROC glTextureBuffer;
1698 PFNGLTEXTUREBUFFERRANGEPROC glTextureBufferRange;
1699 PFNGLTEXTURESTORAGE1DPROC glTextureStorage1D;
1700 PFNGLTEXTURESTORAGE2DPROC glTextureStorage2D;
1701 PFNGLTEXTURESTORAGE3DPROC glTextureStorage3D;
1702 PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glTextureStorage2DMultisample;
1703 PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glTextureStorage3DMultisample;
1704 PFNGLTEXTURESUBIMAGE1DPROC glTextureSubImage1D;
1705 PFNGLTEXTURESUBIMAGE2DPROC glTextureSubImage2D;
1706 PFNGLTEXTURESUBIMAGE3DPROC glTextureSubImage3D;
1707 PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glCompressedTextureSubImage1D;
1708 PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glCompressedTextureSubImage2D;
1709 PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glCompressedTextureSubImage3D;
1710 PFNGLCOPYTEXTURESUBIMAGE1DPROC glCopyTextureSubImage1D;
1711 PFNGLCOPYTEXTURESUBIMAGE2DPROC glCopyTextureSubImage2D;
1712 PFNGLCOPYTEXTURESUBIMAGE3DPROC glCopyTextureSubImage3D;
1713 PFNGLTEXTUREPARAMETERFPROC glTextureParameterf;
1714 PFNGLTEXTUREPARAMETERFVPROC glTextureParameterfv;
1715 PFNGLTEXTUREPARAMETERIPROC glTextureParameteri;
1716 PFNGLTEXTUREPARAMETERIIVPROC glTextureParameterIiv;
1717 PFNGLTEXTUREPARAMETERIUIVPROC glTextureParameterIuiv;
1718 PFNGLTEXTUREPARAMETERIVPROC glTextureParameteriv;
1719 PFNGLGENERATETEXTUREMIPMAPPROC glGenerateTextureMipmap;
1720 PFNGLBINDTEXTUREUNITPROC glBindTextureUnit;
1721 PFNGLGETTEXTUREIMAGEPROC glGetTextureImage;
1722 PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glGetCompressedTextureImage;
1723 PFNGLGETTEXTURELEVELPARAMETERFVPROC glGetTextureLevelParameterfv;
1724 PFNGLGETTEXTURELEVELPARAMETERIVPROC glGetTextureLevelParameteriv;
1725 PFNGLGETTEXTUREPARAMETERFVPROC glGetTextureParameterfv;
1726 PFNGLGETTEXTUREPARAMETERIIVPROC glGetTextureParameterIiv;
1727 PFNGLGETTEXTUREPARAMETERIUIVPROC glGetTextureParameterIuiv;
1728 PFNGLGETTEXTUREPARAMETERIVPROC glGetTextureParameteriv;
1729 PFNGLCREATEVERTEXARRAYSPROC glCreateVertexArrays;
1730 PFNGLDISABLEVERTEXARRAYATTRIBPROC glDisableVertexArrayAttrib;
1731 PFNGLENABLEVERTEXARRAYATTRIBPROC glEnableVertexArrayAttrib;
1732 PFNGLVERTEXARRAYELEMENTBUFFERPROC glVertexArrayElementBuffer;
1733 PFNGLVERTEXARRAYVERTEXBUFFERPROC glVertexArrayVertexBuffer;
1734 PFNGLVERTEXARRAYVERTEXBUFFERSPROC glVertexArrayVertexBuffers;
1735 PFNGLVERTEXARRAYATTRIBBINDINGPROC glVertexArrayAttribBinding;
1736 PFNGLVERTEXARRAYATTRIBFORMATPROC glVertexArrayAttribFormat;
1737 PFNGLVERTEXARRAYATTRIBIFORMATPROC glVertexArrayAttribIFormat;
1738 PFNGLVERTEXARRAYATTRIBLFORMATPROC glVertexArrayAttribLFormat;
1739 PFNGLVERTEXARRAYBINDINGDIVISORPROC glVertexArrayBindingDivisor;
1740 PFNGLGETVERTEXARRAYIVPROC glGetVertexArrayiv;
1741 PFNGLGETVERTEXARRAYINDEXEDIVPROC glGetVertexArrayIndexediv;
1742 PFNGLGETVERTEXARRAYINDEXED64IVPROC glGetVertexArrayIndexed64iv;
1743 PFNGLCREATESAMPLERSPROC glCreateSamplers;
1744 PFNGLCREATEPROGRAMPIPELINESPROC glCreateProgramPipelines;
1745 PFNGLCREATEQUERIESPROC glCreateQueries;
1746 PFNGLGETQUERYBUFFEROBJECTI64VPROC glGetQueryBufferObjecti64v;
1747 PFNGLGETQUERYBUFFEROBJECTIVPROC glGetQueryBufferObjectiv;
1748 PFNGLGETQUERYBUFFEROBJECTUI64VPROC glGetQueryBufferObjectui64v;
1749 PFNGLGETQUERYBUFFEROBJECTUIVPROC glGetQueryBufferObjectuiv;
1750 PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
1751 PFNGLGETTEXTURESUBIMAGEPROC glGetTextureSubImage;
1752 PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glGetCompressedTextureSubImage;
1753 PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
1754 PFNGLGETNCOMPRESSEDTEXIMAGEPROC glGetnCompressedTexImage;
1755 PFNGLGETNTEXIMAGEPROC glGetnTexImage;
1756 PFNGLGETNUNIFORMDVPROC glGetnUniformdv;
1757 PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
1758 PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
1759 PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
1760 PFNGLREADNPIXELSPROC glReadnPixels;
1761 PFNGLGETNMAPDVPROC glGetnMapdv;
1762 PFNGLGETNMAPFVPROC glGetnMapfv;
1763 PFNGLGETNMAPIVPROC glGetnMapiv;
1764 PFNGLGETNPIXELMAPFVPROC glGetnPixelMapfv;
1765 PFNGLGETNPIXELMAPUIVPROC glGetnPixelMapuiv;
1766 PFNGLGETNPIXELMAPUSVPROC glGetnPixelMapusv;
1767 PFNGLGETNPOLYGONSTIPPLEPROC glGetnPolygonStipple;
1768 PFNGLGETNCOLORTABLEPROC glGetnColorTable;
1769 PFNGLGETNCONVOLUTIONFILTERPROC glGetnConvolutionFilter;
1770 PFNGLGETNSEPARABLEFILTERPROC glGetnSeparableFilter;
1771 PFNGLGETNHISTOGRAMPROC glGetnHistogram;
1772 PFNGLGETNMINMAXPROC glGetnMinmax;
1773 PFNGLTEXTUREBARRIERPROC glTextureBarrier;
1775 public: //! @name OpenGL 4.6
1777 PFNGLSPECIALIZESHADERPROC glSpecializeShader;
1778 PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glMultiDrawArraysIndirectCount;
1779 PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glMultiDrawElementsIndirectCount;
1780 PFNGLPOLYGONOFFSETCLAMPPROC glPolygonOffsetClamp;
1782 public: //! @name GL_EXT_geometry_shader4
1784 PFNGLPROGRAMPARAMETERIEXTPROC glProgramParameteriEXT;
1786 public: //! @name GL_ARB_bindless_texture
1788 PFNGLGETTEXTUREHANDLEARBPROC glGetTextureHandleARB;
1789 PFNGLGETTEXTURESAMPLERHANDLEARBPROC glGetTextureSamplerHandleARB;
1790 PFNGLMAKETEXTUREHANDLERESIDENTARBPROC glMakeTextureHandleResidentARB;
1791 PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC glMakeTextureHandleNonResidentARB;
1792 PFNGLGETIMAGEHANDLEARBPROC glGetImageHandleARB;
1793 PFNGLMAKEIMAGEHANDLERESIDENTARBPROC glMakeImageHandleResidentARB;
1794 PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC glMakeImageHandleNonResidentARB;
1795 PFNGLUNIFORMHANDLEUI64ARBPROC glUniformHandleui64ARB;
1796 PFNGLUNIFORMHANDLEUI64VARBPROC glUniformHandleui64vARB;
1797 PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC glProgramUniformHandleui64ARB;
1798 PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC glProgramUniformHandleui64vARB;
1799 PFNGLISTEXTUREHANDLERESIDENTARBPROC glIsTextureHandleResidentARB;
1800 PFNGLISIMAGEHANDLERESIDENTARBPROC glIsImageHandleResidentARB;
1801 PFNGLVERTEXATTRIBL1UI64ARBPROC glVertexAttribL1ui64ARB;
1802 PFNGLVERTEXATTRIBL1UI64VARBPROC glVertexAttribL1ui64vARB;
1803 PFNGLGETVERTEXATTRIBLUI64VARBPROC glGetVertexAttribLui64vARB;
1806 public: //! @name wgl extensions
1808 typedef const char* (WINAPI *wglGetExtensionsStringARB_t)(HDC theDeviceContext);
1809 wglGetExtensionsStringARB_t wglGetExtensionsStringARB;
1811 typedef BOOL (WINAPI *wglSwapIntervalEXT_t)(int theInterval);
1812 wglSwapIntervalEXT_t wglSwapIntervalEXT;
1814 // WGL_ARB_pixel_format
1816 #ifndef WGL_NUMBER_PIXEL_FORMATS_ARB
1817 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
1818 #define WGL_DRAW_TO_WINDOW_ARB 0x2001
1819 #define WGL_DRAW_TO_BITMAP_ARB 0x2002
1820 #define WGL_ACCELERATION_ARB 0x2003
1821 #define WGL_NEED_PALETTE_ARB 0x2004
1822 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
1823 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
1824 #define WGL_SWAP_METHOD_ARB 0x2007
1825 #define WGL_NUMBER_OVERLAYS_ARB 0x2008
1826 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009
1827 #define WGL_TRANSPARENT_ARB 0x200A
1828 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
1829 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
1830 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
1831 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
1832 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
1833 #define WGL_SHARE_DEPTH_ARB 0x200C
1834 #define WGL_SHARE_STENCIL_ARB 0x200D
1835 #define WGL_SHARE_ACCUM_ARB 0x200E
1836 #define WGL_SUPPORT_GDI_ARB 0x200F
1837 #define WGL_SUPPORT_OPENGL_ARB 0x2010
1838 #define WGL_DOUBLE_BUFFER_ARB 0x2011
1839 #define WGL_STEREO_ARB 0x2012
1840 #define WGL_PIXEL_TYPE_ARB 0x2013
1841 #define WGL_COLOR_BITS_ARB 0x2014
1842 #define WGL_RED_BITS_ARB 0x2015
1843 #define WGL_RED_SHIFT_ARB 0x2016
1844 #define WGL_GREEN_BITS_ARB 0x2017
1845 #define WGL_GREEN_SHIFT_ARB 0x2018
1846 #define WGL_BLUE_BITS_ARB 0x2019
1847 #define WGL_BLUE_SHIFT_ARB 0x201A
1848 #define WGL_ALPHA_BITS_ARB 0x201B
1849 #define WGL_ALPHA_SHIFT_ARB 0x201C
1850 #define WGL_ACCUM_BITS_ARB 0x201D
1851 #define WGL_ACCUM_RED_BITS_ARB 0x201E
1852 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F
1853 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020
1854 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
1855 #define WGL_DEPTH_BITS_ARB 0x2022
1856 #define WGL_STENCIL_BITS_ARB 0x2023
1857 #define WGL_AUX_BUFFERS_ARB 0x2024
1859 #define WGL_NO_ACCELERATION_ARB 0x2025
1860 #define WGL_GENERIC_ACCELERATION_ARB 0x2026
1861 #define WGL_FULL_ACCELERATION_ARB 0x2027
1863 #define WGL_SWAP_EXCHANGE_ARB 0x2028
1864 #define WGL_SWAP_COPY_ARB 0x2029
1865 #define WGL_SWAP_UNDEFINED_ARB 0x202A
1867 #define WGL_TYPE_RGBA_ARB 0x202B
1868 #define WGL_TYPE_COLORINDEX_ARB 0x202C
1870 #endif // WGL_NUMBER_PIXEL_FORMATS_ARB
1872 // WGL_ARB_multisample
1873 #ifndef WGL_SAMPLE_BUFFERS_ARB
1874 #define WGL_SAMPLE_BUFFERS_ARB 0x2041
1875 #define WGL_SAMPLES_ARB 0x2042
1878 // WGL_ARB_create_context_robustness
1879 #ifndef WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB
1880 #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
1881 #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
1882 #define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
1883 #define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
1886 typedef BOOL (WINAPI *wglChoosePixelFormatARB_t)
1888 const int* theIntAttribs,
1889 const float* theFloatAttribs,
1890 unsigned int theMaxFormats,
1892 unsigned int* theNumFormatsOut);
1893 wglChoosePixelFormatARB_t wglChoosePixelFormatARB;
1895 // WGL_ARB_create_context_profile
1897 #ifndef WGL_CONTEXT_MAJOR_VERSION_ARB
1898 #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
1899 #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
1900 #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
1901 #define WGL_CONTEXT_FLAGS_ARB 0x2094
1902 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
1904 // WGL_CONTEXT_FLAGS bits
1905 #define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001
1906 #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
1908 // WGL_CONTEXT_PROFILE_MASK_ARB bits
1909 #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
1910 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
1911 #endif // WGL_CONTEXT_MAJOR_VERSION_ARB
1913 typedef HGLRC (WINAPI *wglCreateContextAttribsARB_t)(HDC theDevCtx,
1914 HGLRC theShareContext,
1915 const int* theAttribs);
1916 wglCreateContextAttribsARB_t wglCreateContextAttribsARB;
1918 // WGL_NV_DX_interop
1920 typedef BOOL (WINAPI *wglDXSetResourceShareHandleNV_t)(void* theObjectD3d, HANDLE theShareHandle);
1921 typedef HANDLE (WINAPI *wglDXOpenDeviceNV_t )(void* theDeviceD3d);
1922 typedef BOOL (WINAPI *wglDXCloseDeviceNV_t )(HANDLE theDeviceIOP);
1923 typedef HANDLE (WINAPI *wglDXRegisterObjectNV_t )(HANDLE theDeviceIOP,
1928 typedef BOOL (WINAPI *wglDXUnregisterObjectNV_t)(HANDLE theDeviceIOP,
1930 typedef BOOL (WINAPI *wglDXObjectAccessNV_t )(HANDLE theObject,
1932 typedef BOOL (WINAPI *wglDXLockObjectsNV_t )(HANDLE theDeviceIOP,
1934 HANDLE* theObjects);
1935 typedef BOOL (WINAPI *wglDXUnlockObjectsNV_t )(HANDLE theDeviceIOP,
1937 HANDLE* theObjects);
1939 wglDXSetResourceShareHandleNV_t wglDXSetResourceShareHandleNV;
1940 wglDXOpenDeviceNV_t wglDXOpenDeviceNV;
1941 wglDXCloseDeviceNV_t wglDXCloseDeviceNV;
1942 wglDXRegisterObjectNV_t wglDXRegisterObjectNV;
1943 wglDXUnregisterObjectNV_t wglDXUnregisterObjectNV;
1944 wglDXObjectAccessNV_t wglDXObjectAccessNV;
1945 wglDXLockObjectsNV_t wglDXLockObjectsNV;
1946 wglDXUnlockObjectsNV_t wglDXUnlockObjectsNV;
1948 #ifndef WGL_ACCESS_READ_WRITE_NV
1949 #define WGL_ACCESS_READ_ONLY_NV 0x0000
1950 #define WGL_ACCESS_READ_WRITE_NV 0x0001
1951 #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002
1954 // WGL_AMD_gpu_association
1956 #ifndef WGL_GPU_VENDOR_AMD
1957 #define WGL_GPU_VENDOR_AMD 0x1F00
1958 #define WGL_GPU_RENDERER_STRING_AMD 0x1F01
1959 #define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
1960 #define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
1961 #define WGL_GPU_RAM_AMD 0x21A3
1962 #define WGL_GPU_CLOCK_AMD 0x21A4
1963 #define WGL_GPU_NUM_PIPES_AMD 0x21A5
1964 #define WGL_GPU_NUM_SIMD_AMD 0x21A6
1965 #define WGL_GPU_NUM_RB_AMD 0x21A7
1966 #define WGL_GPU_NUM_SPI_AMD 0x21A8
1969 typedef UINT (WINAPI *wglGetGPUIDsAMD_t )(UINT theMaxCount, UINT* theIds);
1970 typedef INT (WINAPI *wglGetGPUInfoAMD_t )(UINT theId, INT theProperty, GLenum theDataType, UINT theSize, void* theData);
1971 typedef UINT (WINAPI *wglGetContextGPUIDAMD_t )(HGLRC theHglrc);
1972 wglGetGPUIDsAMD_t wglGetGPUIDsAMD;
1973 wglGetGPUInfoAMD_t wglGetGPUInfoAMD;
1974 wglGetContextGPUIDAMD_t wglGetContextGPUIDAMD;
1976 #elif defined(__APPLE__)
1977 public: //! @name CGL extensions
1980 public: //! @name glX extensions
1982 // GLX_EXT_swap_control
1983 //typedef int (*glXSwapIntervalEXT_t)(Display* theDisplay, GLXDrawable theDrawable, int theInterval);
1984 typedef int (*glXSwapIntervalEXT_t)();
1985 glXSwapIntervalEXT_t glXSwapIntervalEXT;
1987 typedef int (*glXSwapIntervalSGI_t)(int theInterval);
1988 glXSwapIntervalSGI_t glXSwapIntervalSGI;
1990 // GLX_MESA_query_renderer
1991 #ifndef GLX_RENDERER_VENDOR_ID_MESA
1992 // for glXQueryRendererIntegerMESA() and glXQueryCurrentRendererIntegerMESA()
1993 #define GLX_RENDERER_VENDOR_ID_MESA 0x8183
1994 #define GLX_RENDERER_DEVICE_ID_MESA 0x8184
1995 #define GLX_RENDERER_VERSION_MESA 0x8185
1996 #define GLX_RENDERER_ACCELERATED_MESA 0x8186
1997 #define GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187
1998 #define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188
1999 #define GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189
2000 #define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A
2001 #define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
2002 #define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C
2003 #define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D
2005 #define GLX_RENDERER_ID_MESA 0x818E
2006 #endif // GLX_RENDERER_VENDOR_ID_MESA
2008 typedef Bool (*glXQueryRendererIntegerMESA_t)(Display* theDisplay, int theScreen,
2009 int theRenderer, int theAttribute,
2010 unsigned int* theValue);
2011 typedef Bool (*glXQueryCurrentRendererIntegerMESA_t)(int theAttribute, unsigned int* theValue);
2012 typedef const char* (*glXQueryRendererStringMESA_t)(Display* theDisplay, int theScreen,
2013 int theRenderer, int theAttribute);
2014 typedef const char* (*glXQueryCurrentRendererStringMESA_t)(int theAttribute);
2016 glXQueryRendererIntegerMESA_t glXQueryRendererIntegerMESA;
2017 glXQueryCurrentRendererIntegerMESA_t glXQueryCurrentRendererIntegerMESA;
2018 glXQueryRendererStringMESA_t glXQueryRendererStringMESA;
2019 glXQueryCurrentRendererStringMESA_t glXQueryCurrentRendererStringMESA;
2022 #endif // OpenGL ES vs. desktop
2026 #endif // _OpenGl_GlFunctions_Header