opengl_wrap.h
1 /*
2 ** ClanLib SDK
3 ** Copyright (c) 1997-2016 The ClanLib Team
4 **
5 ** This software is provided 'as-is', without any express or implied
6 ** warranty. In no event will the authors be held liable for any damages
7 ** arising from the use of this software.
8 **
9 ** Permission is granted to anyone to use this software for any purpose,
10 ** including commercial applications, and to alter it and redistribute it
11 ** freely, subject to the following restrictions:
12 **
13 ** 1. The origin of this software must not be misrepresented; you must not
14 ** claim that you wrote the original software. If you use this software
15 ** in a product, an acknowledgment in the product documentation would be
16 ** appreciated but is not required.
17 ** 2. Altered source versions must be plainly marked as such, and must not be
18 ** misrepresented as being the original software.
19 ** 3. This notice may not be removed or altered from any source distribution.
20 **
21 ** Note: Some of the libraries ClanLib may link to may have additional
22 ** requirements or restrictions.
23 **
24 ** File Author(s):
25 **
26 ** Magnus Norddahl
27 ** Mark Page
28 */
29 
30 
31 #pragma once
32 
33 #include "opengl.h"
34 #include "opengl_defines.h"
35 
36 namespace clan
37 {
40 
41  #ifdef WIN32
42  #define GLFUNC WINAPI
43  #else
44  #define GLFUNC
45  #endif
46 
49 
52  {
53  public:
54  typedef void (GLFUNC *ptr_glCullFace)(GLenum mode);
55  typedef void (GLFUNC *ptr_glFrontFace)(GLenum mode);
56  typedef void (GLFUNC *ptr_glHint)(GLenum target, GLenum mode);
57  typedef void (GLFUNC *ptr_glLineWidth)(GLfloat width);
58  typedef void (GLFUNC *ptr_glPointSize)(GLfloat size);
59  typedef void (GLFUNC *ptr_glPolygonMode)(GLenum face, GLenum mode);
60  typedef void (GLFUNC *ptr_glScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
61  typedef void (GLFUNC *ptr_glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
62  typedef void (GLFUNC *ptr_glTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params);
63  typedef void (GLFUNC *ptr_glTexParameteri)(GLenum target, GLenum pname, GLint param);
64  typedef void (GLFUNC *ptr_glTexParameteriv)(GLenum target, GLenum pname, const GLint *params);
65  typedef void (GLFUNC *ptr_glTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
66  typedef void (GLFUNC *ptr_glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
67  typedef void (GLFUNC *ptr_glDrawBuffer)(GLenum mode);
68  typedef void (GLFUNC *ptr_glClear)(GLbitfield mask);
69  typedef void (GLFUNC *ptr_glClearColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
70  typedef void (GLFUNC *ptr_glClearStencil)(GLint s);
71  typedef void (GLFUNC *ptr_glClearDepth)(GLdouble depth);
72  typedef void (GLFUNC *ptr_glStencilMask)(GLuint mask);
73  typedef void (GLFUNC *ptr_glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
74  typedef void (GLFUNC *ptr_glDepthMask)(GLboolean flag);
75  typedef void (GLFUNC *ptr_glDisable)(GLenum cap);
76  typedef void (GLFUNC *ptr_glEnable)(GLenum cap);
77  typedef void (GLFUNC *ptr_glFinish)(void);
78  typedef void (GLFUNC *ptr_glFlush)(void);
79  typedef void (GLFUNC *ptr_glBlendFunc)(GLenum sfactor, GLenum dfactor);
80  typedef void (GLFUNC *ptr_glLogicOp)(GLenum opcode);
81  typedef void (GLFUNC *ptr_glStencilFunc)(GLenum func, GLint ref, GLuint mask);
82  typedef void (GLFUNC *ptr_glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
83  typedef void (GLFUNC *ptr_glDepthFunc)(GLenum func);
84  typedef void (GLFUNC *ptr_glPixelStoref)(GLenum pname, GLfloat param);
85  typedef void (GLFUNC *ptr_glPixelStorei)(GLenum pname, GLint param);
86  typedef void (GLFUNC *ptr_glReadBuffer)(GLenum mode);
87  typedef void (GLFUNC *ptr_glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
88  typedef void (GLFUNC *ptr_glGetBooleanv)(GLenum pname, GLboolean *params);
89  typedef void (GLFUNC *ptr_glGetDoublev)(GLenum pname, GLdouble *params);
90  typedef GLenum (GLFUNC *ptr_glGetError)(void);
91  typedef void (GLFUNC *ptr_glGetFloatv)(GLenum pname, GLfloat *params);
92  typedef void (GLFUNC *ptr_glGetIntegerv)(GLenum pname, GLint *params);
93  typedef const GLubyte * (GLFUNC *ptr_glGetString)(GLenum name);
94  typedef void (GLFUNC *ptr_glGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
95  typedef void (GLFUNC *ptr_glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
96  typedef void (GLFUNC *ptr_glGetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
97  typedef void (GLFUNC *ptr_glGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
98  typedef void (GLFUNC *ptr_glGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
100  typedef void (GLFUNC *ptr_glDepthRange)(GLdouble near, GLdouble far);
101  typedef void (GLFUNC *ptr_glViewport)(GLint x, GLint y, GLsizei width, GLsizei height);
102  typedef void (GLFUNC *ptr_glDrawArrays)(GLenum mode, GLint first, GLsizei count);
103  typedef void (GLFUNC *ptr_glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
104  typedef void (GLFUNC *ptr_glGetPointerv)(GLenum pname, GLvoid* *params);
105  typedef void (GLFUNC *ptr_glPolygonOffset)(GLfloat factor, GLfloat units);
106  typedef void (GLFUNC *ptr_glCopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
107  typedef void (GLFUNC *ptr_glCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
108  typedef void (GLFUNC *ptr_glCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
109  typedef void (GLFUNC *ptr_glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
110  typedef void (GLFUNC *ptr_glTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
111  typedef void (GLFUNC *ptr_glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
112  typedef void (GLFUNC *ptr_glBindTexture)(GLenum target, GLuint texture);
113  typedef void (GLFUNC *ptr_glDeleteTextures)(GLsizei n, const GLuint *textures);
114  typedef void (GLFUNC *ptr_glGenTextures)(GLsizei n, GLuint *textures);
115  typedef GLboolean (GLFUNC *ptr_glIsTexture)(GLuint texture);
116  typedef void (GLFUNC *ptr_glBlendColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
117  typedef void (GLFUNC *ptr_glBlendEquation)(GLenum mode);
118  typedef void (GLFUNC *ptr_glDrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
119  typedef void (GLFUNC *ptr_glTexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
120  typedef void (GLFUNC *ptr_glTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
121  typedef void (GLFUNC *ptr_glCopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
122  typedef void (GLFUNC *ptr_glActiveTexture)(GLenum texture);
123  typedef void (GLFUNC *ptr_glSampleCoverage)(GLfloat value, GLboolean invert);
124  typedef void (GLFUNC *ptr_glCompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
125  typedef void (GLFUNC *ptr_glCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
126  typedef void (GLFUNC *ptr_glCompressedTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
127  typedef void (GLFUNC *ptr_glCompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
128  typedef void (GLFUNC *ptr_glCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
129  typedef void (GLFUNC *ptr_glCompressedTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
130  typedef void (GLFUNC *ptr_glGetCompressedTexImage)(GLenum target, GLint level, GLvoid *img);
131  typedef void (GLFUNC *ptr_glBlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
132  typedef void (GLFUNC *ptr_glMultiDrawArrays)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
133  typedef void (GLFUNC *ptr_glMultiDrawElements)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount);
134  typedef void (GLFUNC *ptr_glPointParameterf)(GLenum pname, GLfloat param);
135  typedef void (GLFUNC *ptr_glPointParameterfv)(GLenum pname, const GLfloat *params);
136  typedef void (GLFUNC *ptr_glPointParameteri)(GLenum pname, GLint param);
137  typedef void (GLFUNC *ptr_glPointParameteriv)(GLenum pname, const GLint *params);
138  typedef void (GLFUNC *ptr_glGenQueries)(GLsizei n, GLuint *ids);
139  typedef void (GLFUNC *ptr_glDeleteQueries)(GLsizei n, const GLuint *ids);
141  typedef void (GLFUNC *ptr_glBeginQuery)(GLenum target, GLuint id);
142  typedef void (GLFUNC *ptr_glEndQuery)(GLenum target);
143  typedef void (GLFUNC *ptr_glGetQueryiv)(GLenum target, GLenum pname, GLint *params);
144  typedef void (GLFUNC *ptr_glGetQueryObjectiv)(GLuint id, GLenum pname, GLint *params);
145  typedef void (GLFUNC *ptr_glGetQueryObjectuiv)(GLuint id, GLenum pname, GLuint *params);
146  typedef void (GLFUNC *ptr_glBindBuffer)(GLenum target, GLuint buffer);
147  typedef void (GLFUNC *ptr_glDeleteBuffers)(GLsizei n, const GLuint *buffers);
148  typedef void (GLFUNC *ptr_glGenBuffers)(GLsizei n, GLuint *buffers);
149  typedef GLboolean (GLFUNC *ptr_glIsBuffer)(GLuint buffer);
150  typedef void (GLFUNC *ptr_glBufferData)(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
151  typedef void (GLFUNC *ptr_glBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
152  typedef void (GLFUNC *ptr_glGetBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
153  typedef GLvoid* (GLFUNC *ptr_glMapBuffer)(GLenum target, GLenum access);
155  typedef void (GLFUNC *ptr_glGetBufferParameteriv)(GLenum target, GLenum pname, GLint *params);
156  typedef void (GLFUNC *ptr_glGetBufferPointerv)(GLenum target, GLenum pname, GLvoid* *params);
157  typedef void (GLFUNC *ptr_glBlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
158  typedef void (GLFUNC *ptr_glDrawBuffers)(GLsizei n, const GLenum *bufs);
159  typedef void (GLFUNC *ptr_glStencilOpSeparate)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
160  typedef void (GLFUNC *ptr_glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
161  typedef void (GLFUNC *ptr_glStencilMaskSeparate)(GLenum face, GLuint mask);
162  typedef void (GLFUNC *ptr_glAttachShader)(GLuint program, GLuint shader);
163  typedef void (GLFUNC *ptr_glBindAttribLocation)(GLuint program, GLuint index, const GLchar *name);
164  typedef void (GLFUNC *ptr_glCompileShader)(GLuint shader);
167  typedef void (GLFUNC *ptr_glDeleteProgram)(GLuint program);
168  typedef void (GLFUNC *ptr_glDeleteShader)(GLuint shader);
169  typedef void (GLFUNC *ptr_glDetachShader)(GLuint program, GLuint shader);
172  typedef void (GLFUNC *ptr_glGetActiveAttrib)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
173  typedef void (GLFUNC *ptr_glGetActiveUniform)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
174  typedef void (GLFUNC *ptr_glGetAttachedShaders)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
175  typedef GLint (GLFUNC *ptr_glGetAttribLocation)(GLuint program, const GLchar *name);
176  typedef void (GLFUNC *ptr_glGetProgramiv)(GLuint program, GLenum pname, GLint *params);
177  typedef void (GLFUNC *ptr_glGetProgramInfoLog)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
178  typedef void (GLFUNC *ptr_glGetShaderiv)(GLuint shader, GLenum pname, GLint *params);
179  typedef void (GLFUNC *ptr_glGetShaderInfoLog)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
180  typedef void (GLFUNC *ptr_glGetShaderSource)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
181  typedef GLint (GLFUNC *ptr_glGetUniformLocation)(GLuint program, const GLchar *name);
182  typedef void (GLFUNC *ptr_glGetUniformfv)(GLuint program, GLint location, GLfloat *params);
183  typedef void (GLFUNC *ptr_glGetUniformiv)(GLuint program, GLint location, GLint *params);
184  typedef void (GLFUNC *ptr_glGetVertexAttribdv)(GLuint index, GLenum pname, GLdouble *params);
185  typedef void (GLFUNC *ptr_glGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat *params);
186  typedef void (GLFUNC *ptr_glGetVertexAttribiv)(GLuint index, GLenum pname, GLint *params);
187  typedef void (GLFUNC *ptr_glGetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid* *pointer);
188  typedef GLboolean (GLFUNC *ptr_glIsProgram)(GLuint program);
189  typedef GLboolean (GLFUNC *ptr_glIsShader)(GLuint shader);
190  typedef void (GLFUNC *ptr_glLinkProgram)(GLuint program);
191  typedef void (GLFUNC *ptr_glShaderSource)(GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length);
192  typedef void (GLFUNC *ptr_glUseProgram)(GLuint program);
193  typedef void (GLFUNC *ptr_glUniform1f)(GLint location, GLfloat v0);
194  typedef void (GLFUNC *ptr_glUniform2f)(GLint location, GLfloat v0, GLfloat v1);
195  typedef void (GLFUNC *ptr_glUniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
196  typedef void (GLFUNC *ptr_glUniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
197  typedef void (GLFUNC *ptr_glUniform1i)(GLint location, GLint v0);
198  typedef void (GLFUNC *ptr_glUniform2i)(GLint location, GLint v0, GLint v1);
199  typedef void (GLFUNC *ptr_glUniform3i)(GLint location, GLint v0, GLint v1, GLint v2);
200  typedef void (GLFUNC *ptr_glUniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
201  typedef void (GLFUNC *ptr_glUniform1fv)(GLint location, GLsizei count, const GLfloat *value);
202  typedef void (GLFUNC *ptr_glUniform2fv)(GLint location, GLsizei count, const GLfloat *value);
203  typedef void (GLFUNC *ptr_glUniform3fv)(GLint location, GLsizei count, const GLfloat *value);
204  typedef void (GLFUNC *ptr_glUniform4fv)(GLint location, GLsizei count, const GLfloat *value);
205  typedef void (GLFUNC *ptr_glUniform1iv)(GLint location, GLsizei count, const GLint *value);
206  typedef void (GLFUNC *ptr_glUniform2iv)(GLint location, GLsizei count, const GLint *value);
207  typedef void (GLFUNC *ptr_glUniform3iv)(GLint location, GLsizei count, const GLint *value);
208  typedef void (GLFUNC *ptr_glUniform4iv)(GLint location, GLsizei count, const GLint *value);
209  typedef void (GLFUNC *ptr_glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
210  typedef void (GLFUNC *ptr_glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
211  typedef void (GLFUNC *ptr_glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
212  typedef void (GLFUNC *ptr_glValidateProgram)(GLuint program);
213  typedef void (GLFUNC *ptr_glVertexAttrib1d)(GLuint index, GLdouble x);
214  typedef void (GLFUNC *ptr_glVertexAttrib1dv)(GLuint index, const GLdouble *v);
215  typedef void (GLFUNC *ptr_glVertexAttrib1f)(GLuint index, GLfloat x);
216  typedef void (GLFUNC *ptr_glVertexAttrib1fv)(GLuint index, const GLfloat *v);
217  typedef void (GLFUNC *ptr_glVertexAttrib1s)(GLuint index, GLshort x);
218  typedef void (GLFUNC *ptr_glVertexAttrib1sv)(GLuint index, const GLshort *v);
220  typedef void (GLFUNC *ptr_glVertexAttrib2dv)(GLuint index, const GLdouble *v);
221  typedef void (GLFUNC *ptr_glVertexAttrib2f)(GLuint index, GLfloat x, GLfloat y);
222  typedef void (GLFUNC *ptr_glVertexAttrib2fv)(GLuint index, const GLfloat *v);
223  typedef void (GLFUNC *ptr_glVertexAttrib2s)(GLuint index, GLshort x, GLshort y);
224  typedef void (GLFUNC *ptr_glVertexAttrib2sv)(GLuint index, const GLshort *v);
226  typedef void (GLFUNC *ptr_glVertexAttrib3dv)(GLuint index, const GLdouble *v);
228  typedef void (GLFUNC *ptr_glVertexAttrib3fv)(GLuint index, const GLfloat *v);
230  typedef void (GLFUNC *ptr_glVertexAttrib3sv)(GLuint index, const GLshort *v);
231  typedef void (GLFUNC *ptr_glVertexAttrib4Nbv)(GLuint index, const GLbyte *v);
232  typedef void (GLFUNC *ptr_glVertexAttrib4Niv)(GLuint index, const GLint *v);
233  typedef void (GLFUNC *ptr_glVertexAttrib4Nsv)(GLuint index, const GLshort *v);
235  typedef void (GLFUNC *ptr_glVertexAttrib4Nubv)(GLuint index, const GLubyte *v);
236  typedef void (GLFUNC *ptr_glVertexAttrib4Nuiv)(GLuint index, const GLuint *v);
237  typedef void (GLFUNC *ptr_glVertexAttrib4Nusv)(GLuint index, const GLushort *v);
238  typedef void (GLFUNC *ptr_glVertexAttrib4bv)(GLuint index, const GLbyte *v);
240  typedef void (GLFUNC *ptr_glVertexAttrib4dv)(GLuint index, const GLdouble *v);
242  typedef void (GLFUNC *ptr_glVertexAttrib4fv)(GLuint index, const GLfloat *v);
243  typedef void (GLFUNC *ptr_glVertexAttrib4iv)(GLuint index, const GLint *v);
245  typedef void (GLFUNC *ptr_glVertexAttrib4sv)(GLuint index, const GLshort *v);
246  typedef void (GLFUNC *ptr_glVertexAttrib4ubv)(GLuint index, const GLubyte *v);
247  typedef void (GLFUNC *ptr_glVertexAttrib4uiv)(GLuint index, const GLuint *v);
248  typedef void (GLFUNC *ptr_glVertexAttrib4usv)(GLuint index, const GLushort *v);
249  typedef void (GLFUNC *ptr_glVertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
250  typedef void (GLFUNC *ptr_glUniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
251  typedef void (GLFUNC *ptr_glUniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
252  typedef void (GLFUNC *ptr_glUniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
253  typedef void (GLFUNC *ptr_glUniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
254  typedef void (GLFUNC *ptr_glUniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
255  typedef void (GLFUNC *ptr_glUniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
257  typedef void (GLFUNC *ptr_glGetBooleani_v)(GLenum target, GLuint index, GLboolean *data);
258  typedef void (GLFUNC *ptr_glGetIntegeri_v)(GLenum target, GLuint index, GLint *data);
259  typedef void (GLFUNC *ptr_glEnablei)(GLenum target, GLuint index);
260  typedef void (GLFUNC *ptr_glDisablei)(GLenum target, GLuint index);
261  typedef GLboolean (GLFUNC *ptr_glIsEnabledi)(GLenum target, GLuint index);
262  typedef void (GLFUNC *ptr_glBeginTransformFeedback)(GLenum primitiveMode);
263  typedef void (GLFUNC *ptr_glEndTransformFeedback)(void);
264  typedef void (GLFUNC *ptr_glBindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
265  typedef void (GLFUNC *ptr_glBindBufferBase)(GLenum target, GLuint index, GLuint buffer);
266  typedef void (GLFUNC *ptr_glTransformFeedbackVaryings)(GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode);
267  typedef void (GLFUNC *ptr_glGetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
268  typedef void (GLFUNC *ptr_glClampColor)(GLenum target, GLenum clamp);
270  typedef void (GLFUNC *ptr_glEndConditionalRender)(void);
271  typedef void (GLFUNC *ptr_glVertexAttribIPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
272  typedef void (GLFUNC *ptr_glGetVertexAttribIiv)(GLuint index, GLenum pname, GLint *params);
273  typedef void (GLFUNC *ptr_glGetVertexAttribIuiv)(GLuint index, GLenum pname, GLuint *params);
274  typedef void (GLFUNC *ptr_glVertexAttribI1i)(GLuint index, GLint x);
275  typedef void (GLFUNC *ptr_glVertexAttribI2i)(GLuint index, GLint x, GLint y);
276  typedef void (GLFUNC *ptr_glVertexAttribI3i)(GLuint index, GLint x, GLint y, GLint z);
277  typedef void (GLFUNC *ptr_glVertexAttribI4i)(GLuint index, GLint x, GLint y, GLint z, GLint w);
278  typedef void (GLFUNC *ptr_glVertexAttribI1ui)(GLuint index, GLuint x);
279  typedef void (GLFUNC *ptr_glVertexAttribI2ui)(GLuint index, GLuint x, GLuint y);
282  typedef void (GLFUNC *ptr_glVertexAttribI1iv)(GLuint index, const GLint *v);
283  typedef void (GLFUNC *ptr_glVertexAttribI2iv)(GLuint index, const GLint *v);
284  typedef void (GLFUNC *ptr_glVertexAttribI3iv)(GLuint index, const GLint *v);
285  typedef void (GLFUNC *ptr_glVertexAttribI4iv)(GLuint index, const GLint *v);
286  typedef void (GLFUNC *ptr_glVertexAttribI1uiv)(GLuint index, const GLuint *v);
287  typedef void (GLFUNC *ptr_glVertexAttribI2uiv)(GLuint index, const GLuint *v);
288  typedef void (GLFUNC *ptr_glVertexAttribI3uiv)(GLuint index, const GLuint *v);
289  typedef void (GLFUNC *ptr_glVertexAttribI4uiv)(GLuint index, const GLuint *v);
290  typedef void (GLFUNC *ptr_glVertexAttribI4bv)(GLuint index, const GLbyte *v);
291  typedef void (GLFUNC *ptr_glVertexAttribI4sv)(GLuint index, const GLshort *v);
292  typedef void (GLFUNC *ptr_glVertexAttribI4ubv)(GLuint index, const GLubyte *v);
293  typedef void (GLFUNC *ptr_glVertexAttribI4usv)(GLuint index, const GLushort *v);
294  typedef void (GLFUNC *ptr_glGetUniformuiv)(GLuint program, GLint location, GLuint *params);
295  typedef void (GLFUNC *ptr_glBindFragDataLocation)(GLuint program, GLuint color, const GLchar *name);
296  typedef GLint (GLFUNC *ptr_glGetFragDataLocation)(GLuint program, const GLchar *name);
297  typedef void (GLFUNC *ptr_glUniform1ui)(GLint location, GLuint v0);
298  typedef void (GLFUNC *ptr_glUniform2ui)(GLint location, GLuint v0, GLuint v1);
299  typedef void (GLFUNC *ptr_glUniform3ui)(GLint location, GLuint v0, GLuint v1, GLuint v2);
300  typedef void (GLFUNC *ptr_glUniform4ui)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
301  typedef void (GLFUNC *ptr_glUniform1uiv)(GLint location, GLsizei count, const GLuint *value);
302  typedef void (GLFUNC *ptr_glUniform2uiv)(GLint location, GLsizei count, const GLuint *value);
303  typedef void (GLFUNC *ptr_glUniform3uiv)(GLint location, GLsizei count, const GLuint *value);
304  typedef void (GLFUNC *ptr_glUniform4uiv)(GLint location, GLsizei count, const GLuint *value);
305  typedef void (GLFUNC *ptr_glTexParameterIiv)(GLenum target, GLenum pname, const GLint *params);
306  typedef void (GLFUNC *ptr_glTexParameterIuiv)(GLenum target, GLenum pname, const GLuint *params);
307  typedef void (GLFUNC *ptr_glGetTexParameterIiv)(GLenum target, GLenum pname, GLint *params);
308  typedef void (GLFUNC *ptr_glGetTexParameterIuiv)(GLenum target, GLenum pname, GLuint *params);
309  typedef void (GLFUNC *ptr_glClearBufferiv)(GLenum buffer, GLint drawbuffer, const GLint *value);
310  typedef void (GLFUNC *ptr_glClearBufferuiv)(GLenum buffer, GLint drawbuffer, const GLuint *value);
311  typedef void (GLFUNC *ptr_glClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat *value);
312  typedef void (GLFUNC *ptr_glClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
313  typedef const GLubyte * (GLFUNC *ptr_glGetStringi)(GLenum name, GLuint index);
314  typedef void (GLFUNC *ptr_glDrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
315  typedef void (GLFUNC *ptr_glDrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount);
316  typedef void (GLFUNC *ptr_glTexBuffer)(GLenum target, GLenum internalformat, GLuint buffer);
317  typedef void (GLFUNC *ptr_glPrimitiveRestartIndex)(GLuint index);
318  typedef void (GLFUNC *ptr_glGetInteger64i_v)(GLenum target, GLuint index, CLint64 *data);
319  typedef void (GLFUNC *ptr_glGetBufferParameteri64v)(GLenum target, GLenum pname, CLint64 *params);
320  typedef void (GLFUNC *ptr_glFramebufferTexture)(GLenum target, GLenum attachment, GLuint texture, GLint level);
321  typedef void (GLFUNC *ptr_glVertexAttribDivisor)(GLuint index, GLuint divisor);
322  typedef void (GLFUNC *ptr_glMinSampleShading)(GLfloat value);
323  typedef void (GLFUNC *ptr_glBlendEquationi)(GLuint buf, GLenum mode);
324  typedef void (GLFUNC *ptr_glBlendEquationSeparatei)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
325  typedef void (GLFUNC *ptr_glBlendFunci)(GLuint buf, GLenum src, GLenum dst);
326  typedef void (GLFUNC *ptr_glBlendFuncSeparatei)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
327  typedef GLboolean (GLFUNC *ptr_glIsRenderbuffer)(GLuint renderbuffer);
328  typedef void (GLFUNC *ptr_glBindRenderbuffer)(GLenum target, GLuint renderbuffer);
329  typedef void (GLFUNC *ptr_glDeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers);
330  typedef void (GLFUNC *ptr_glGenRenderbuffers)(GLsizei n, GLuint *renderbuffers);
331  typedef void (GLFUNC *ptr_glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
332  typedef void (GLFUNC *ptr_glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params);
333  typedef GLboolean (GLFUNC *ptr_glIsFramebuffer)(GLuint framebuffer);
334  typedef void (GLFUNC *ptr_glBindFramebuffer)(GLenum target, GLuint framebuffer);
335  typedef void (GLFUNC *ptr_glDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers);
336  typedef void (GLFUNC *ptr_glGenFramebuffers)(GLsizei n, GLuint *framebuffers);
338  typedef void (GLFUNC *ptr_glFramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
339  typedef void (GLFUNC *ptr_glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
340  typedef void (GLFUNC *ptr_glFramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
341  typedef void (GLFUNC *ptr_glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
342  typedef void (GLFUNC *ptr_glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
343  typedef void (GLFUNC *ptr_glGenerateMipmap)(GLenum target);
344  typedef void (GLFUNC *ptr_glBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
345  typedef void (GLFUNC *ptr_glRenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
346  typedef void (GLFUNC *ptr_glFramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
347  typedef GLvoid* (GLFUNC *ptr_glMapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
350  typedef void (GLFUNC *ptr_glDeleteVertexArrays)(GLsizei n, const GLuint *arrays);
351  typedef void (GLFUNC *ptr_glGenVertexArrays)(GLsizei n, GLuint *arrays);
353  typedef void (GLFUNC *ptr_glGetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint *uniformIndices);
354  typedef void (GLFUNC *ptr_glGetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
355  typedef void (GLFUNC *ptr_glGetActiveUniformName)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
356  typedef GLuint (GLFUNC *ptr_glGetUniformBlockIndex)(GLuint program, const GLchar *uniformBlockName);
357  typedef void (GLFUNC *ptr_glGetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
358  typedef void (GLFUNC *ptr_glGetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
359  typedef void (GLFUNC *ptr_glUniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
360  typedef void (GLFUNC *ptr_glCopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
361  typedef void (GLFUNC *ptr_glDrawElementsBaseVertex)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
362  typedef void (GLFUNC *ptr_glDrawRangeElementsBaseVertex)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
363  typedef void (GLFUNC *ptr_glDrawElementsInstancedBaseVertex)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint basevertex);
364  typedef void (GLFUNC *ptr_glMultiDrawElementsBaseVertex)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *basevertex);
365  typedef void (GLFUNC *ptr_glProvokingVertex)(GLenum mode);
366  typedef CLsync (GLFUNC *ptr_glFenceSync)(GLenum condition, GLbitfield flags);
368  typedef void (GLFUNC *ptr_glDeleteSync)(CLsync sync);
369  typedef GLenum (GLFUNC *ptr_glClientWaitSync)(CLsync sync, GLbitfield flags, CLuint64 timeout);
370  typedef void (GLFUNC *ptr_glWaitSync)(CLsync sync, GLbitfield flags, CLuint64 timeout);
371  typedef void (GLFUNC *ptr_glGetInteger64v)(GLenum pname, CLint64 *params);
372  typedef void (GLFUNC *ptr_glGetSynciv)(CLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
373  typedef void (GLFUNC *ptr_glTexImage2DMultisample)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
374  typedef void (GLFUNC *ptr_glTexImage3DMultisample)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
375  typedef void (GLFUNC *ptr_glGetMultisamplefv)(GLenum pname, GLuint index, GLfloat *val);
376  typedef void (GLFUNC *ptr_glSampleMaski)(GLuint index, GLbitfield mask);
377  typedef void (GLFUNC *ptr_glBlendEquationiARB)(GLuint buf, GLenum mode);
378  typedef void (GLFUNC *ptr_glBlendEquationSeparateiARB)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
379  typedef void (GLFUNC *ptr_glBlendFunciARB)(GLuint buf, GLenum src, GLenum dst);
380  typedef void (GLFUNC *ptr_glBlendFuncSeparateiARB)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
381  typedef void (GLFUNC *ptr_glMinSampleShadingARB)(GLfloat value);
382  typedef void (GLFUNC *ptr_glNamedStringARB)(GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
383  typedef void (GLFUNC *ptr_glDeleteNamedStringARB)(GLint namelen, const GLchar *name);
384  typedef void (GLFUNC *ptr_glCompileShaderIncludeARB)(GLuint shader, GLsizei count, const GLchar* *path, const GLint *length);
385  typedef GLboolean (GLFUNC *ptr_glIsNamedStringARB)(GLint namelen, const GLchar *name);
386  typedef void (GLFUNC *ptr_glGetNamedStringARB)(GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
387  typedef void (GLFUNC *ptr_glGetNamedStringivARB)(GLint namelen, const GLchar *name, GLenum pname, GLint *params);
388  typedef void (GLFUNC *ptr_glBindFragDataLocationIndexed)(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
389  typedef GLint (GLFUNC *ptr_glGetFragDataIndex)(GLuint program, const GLchar *name);
390  typedef void (GLFUNC *ptr_glGenSamplers)(GLsizei count, GLuint *samplers);
391  typedef void (GLFUNC *ptr_glDeleteSamplers)(GLsizei count, const GLuint *samplers);
392  typedef GLboolean (GLFUNC *ptr_glIsSampler)(GLuint sampler);
393  typedef void (GLFUNC *ptr_glBindSampler)(GLuint unit, GLuint sampler);
394  typedef void (GLFUNC *ptr_glSamplerParameteri)(GLuint sampler, GLenum pname, GLint param);
395  typedef void (GLFUNC *ptr_glSamplerParameteriv)(GLuint sampler, GLenum pname, const GLint *param);
396  typedef void (GLFUNC *ptr_glSamplerParameterf)(GLuint sampler, GLenum pname, GLfloat param);
397  typedef void (GLFUNC *ptr_glSamplerParameterfv)(GLuint sampler, GLenum pname, const GLfloat *param);
398  typedef void (GLFUNC *ptr_glSamplerParameterIiv)(GLuint sampler, GLenum pname, const GLint *param);
399  typedef void (GLFUNC *ptr_glSamplerParameterIuiv)(GLuint sampler, GLenum pname, const GLuint *param);
400  typedef void (GLFUNC *ptr_glGetSamplerParameteriv)(GLuint sampler, GLenum pname, GLint *params);
401  typedef void (GLFUNC *ptr_glGetSamplerParameterIiv)(GLuint sampler, GLenum pname, GLint *params);
402  typedef void (GLFUNC *ptr_glGetSamplerParameterfv)(GLuint sampler, GLenum pname, GLfloat *params);
403  typedef void (GLFUNC *ptr_glGetSamplerParameterIuiv)(GLuint sampler, GLenum pname, GLuint *params);
404  typedef void (GLFUNC *ptr_glQueryCounter)(GLuint id, GLenum target);
405  typedef void (GLFUNC *ptr_glGetQueryObjecti64v)(GLuint id, GLenum pname, CLint64 *params);
406  typedef void (GLFUNC *ptr_glGetQueryObjectui64v)(GLuint id, GLenum pname, CLuint64 *params);
407  typedef void (GLFUNC *ptr_glVertexP2ui)(GLenum type, GLuint value);
408  typedef void (GLFUNC *ptr_glVertexP2uiv)(GLenum type, const GLuint *value);
409  typedef void (GLFUNC *ptr_glVertexP3ui)(GLenum type, GLuint value);
410  typedef void (GLFUNC *ptr_glVertexP3uiv)(GLenum type, const GLuint *value);
411  typedef void (GLFUNC *ptr_glVertexP4ui)(GLenum type, GLuint value);
412  typedef void (GLFUNC *ptr_glVertexP4uiv)(GLenum type, const GLuint *value);
413  typedef void (GLFUNC *ptr_glTexCoordP1ui)(GLenum type, GLuint coords);
414  typedef void (GLFUNC *ptr_glTexCoordP1uiv)(GLenum type, const GLuint *coords);
415  typedef void (GLFUNC *ptr_glTexCoordP2ui)(GLenum type, GLuint coords);
416  typedef void (GLFUNC *ptr_glTexCoordP2uiv)(GLenum type, const GLuint *coords);
417  typedef void (GLFUNC *ptr_glTexCoordP3ui)(GLenum type, GLuint coords);
418  typedef void (GLFUNC *ptr_glTexCoordP3uiv)(GLenum type, const GLuint *coords);
419  typedef void (GLFUNC *ptr_glTexCoordP4ui)(GLenum type, GLuint coords);
420  typedef void (GLFUNC *ptr_glTexCoordP4uiv)(GLenum type, const GLuint *coords);
421  typedef void (GLFUNC *ptr_glMultiTexCoordP1ui)(GLenum texture, GLenum type, GLuint coords);
422  typedef void (GLFUNC *ptr_glMultiTexCoordP1uiv)(GLenum texture, GLenum type, const GLuint *coords);
423  typedef void (GLFUNC *ptr_glMultiTexCoordP2ui)(GLenum texture, GLenum type, GLuint coords);
424  typedef void (GLFUNC *ptr_glMultiTexCoordP2uiv)(GLenum texture, GLenum type, const GLuint *coords);
425  typedef void (GLFUNC *ptr_glMultiTexCoordP3ui)(GLenum texture, GLenum type, GLuint coords);
426  typedef void (GLFUNC *ptr_glMultiTexCoordP3uiv)(GLenum texture, GLenum type, const GLuint *coords);
427  typedef void (GLFUNC *ptr_glMultiTexCoordP4ui)(GLenum texture, GLenum type, GLuint coords);
428  typedef void (GLFUNC *ptr_glMultiTexCoordP4uiv)(GLenum texture, GLenum type, const GLuint *coords);
429  typedef void (GLFUNC *ptr_glNormalP3ui)(GLenum type, GLuint coords);
430  typedef void (GLFUNC *ptr_glNormalP3uiv)(GLenum type, const GLuint *coords);
431  typedef void (GLFUNC *ptr_glColorP3ui)(GLenum type, GLuint color);
432  typedef void (GLFUNC *ptr_glColorP3uiv)(GLenum type, const GLuint *color);
433  typedef void (GLFUNC *ptr_glColorP4ui)(GLenum type, GLuint color);
434  typedef void (GLFUNC *ptr_glColorP4uiv)(GLenum type, const GLuint *color);
436  typedef void (GLFUNC *ptr_glSecondaryColorP3uiv)(GLenum type, const GLuint *color);
437  typedef void (GLFUNC *ptr_glVertexAttribP1ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
438  typedef void (GLFUNC *ptr_glVertexAttribP1uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
439  typedef void (GLFUNC *ptr_glVertexAttribP2ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
440  typedef void (GLFUNC *ptr_glVertexAttribP2uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
441  typedef void (GLFUNC *ptr_glVertexAttribP3ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
442  typedef void (GLFUNC *ptr_glVertexAttribP3uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
443  typedef void (GLFUNC *ptr_glVertexAttribP4ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
444  typedef void (GLFUNC *ptr_glVertexAttribP4uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
445  typedef void (GLFUNC *ptr_glDrawArraysIndirect)(GLenum mode, const GLvoid *indirect);
446  typedef void (GLFUNC *ptr_glDrawElementsIndirect)(GLenum mode, GLenum type, const GLvoid *indirect);
447  typedef void (GLFUNC *ptr_glUniform1d)(GLint location, GLdouble x);
448  typedef void (GLFUNC *ptr_glUniform2d)(GLint location, GLdouble x, GLdouble y);
449  typedef void (GLFUNC *ptr_glUniform3d)(GLint location, GLdouble x, GLdouble y, GLdouble z);
450  typedef void (GLFUNC *ptr_glUniform4d)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
451  typedef void (GLFUNC *ptr_glUniform1dv)(GLint location, GLsizei count, const GLdouble *value);
452  typedef void (GLFUNC *ptr_glUniform2dv)(GLint location, GLsizei count, const GLdouble *value);
453  typedef void (GLFUNC *ptr_glUniform3dv)(GLint location, GLsizei count, const GLdouble *value);
454  typedef void (GLFUNC *ptr_glUniform4dv)(GLint location, GLsizei count, const GLdouble *value);
455  typedef void (GLFUNC *ptr_glUniformMatrix2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
456  typedef void (GLFUNC *ptr_glUniformMatrix3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
457  typedef void (GLFUNC *ptr_glUniformMatrix4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
458  typedef void (GLFUNC *ptr_glUniformMatrix2x3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
459  typedef void (GLFUNC *ptr_glUniformMatrix2x4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
460  typedef void (GLFUNC *ptr_glUniformMatrix3x2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
461  typedef void (GLFUNC *ptr_glUniformMatrix3x4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
462  typedef void (GLFUNC *ptr_glUniformMatrix4x2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
463  typedef void (GLFUNC *ptr_glUniformMatrix4x3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
464  typedef void (GLFUNC *ptr_glGetUniformdv)(GLuint program, GLint location, GLdouble *params);
465  typedef GLint (GLFUNC *ptr_glGetSubroutineUniformLocation)(GLuint program, GLenum shadertype, const GLchar *name);
466  typedef GLuint (GLFUNC *ptr_glGetSubroutineIndex)(GLuint program, GLenum shadertype, const GLchar *name);
467  typedef void (GLFUNC *ptr_glGetActiveSubroutineUniformiv)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
468  typedef void (GLFUNC *ptr_glGetActiveSubroutineUniformName)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
469  typedef void (GLFUNC *ptr_glGetActiveSubroutineName)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
470  typedef void (GLFUNC *ptr_glUniformSubroutinesuiv)(GLenum shadertype, GLsizei count, const GLuint *indices);
471  typedef void (GLFUNC *ptr_glGetUniformSubroutineuiv)(GLenum shadertype, GLint location, GLuint *params);
472  typedef void (GLFUNC *ptr_glGetProgramStageiv)(GLuint program, GLenum shadertype, GLenum pname, GLint *values);
473  typedef void (GLFUNC *ptr_glPatchParameteri)(GLenum pname, GLint value);
474  typedef void (GLFUNC *ptr_glPatchParameterfv)(GLenum pname, const GLfloat *values);
475  typedef void (GLFUNC *ptr_glBindTransformFeedback)(GLenum target, GLuint id);
476  typedef void (GLFUNC *ptr_glDeleteTransformFeedbacks)(GLsizei n, const GLuint *ids);
479  typedef void (GLFUNC *ptr_glPauseTransformFeedback)(void);
480  typedef void (GLFUNC *ptr_glResumeTransformFeedback)(void);
481  typedef void (GLFUNC *ptr_glDrawTransformFeedback)(GLenum mode, GLuint id);
482  typedef void (GLFUNC *ptr_glDrawTransformFeedbackStream)(GLenum mode, GLuint id, GLuint stream);
483  typedef void (GLFUNC *ptr_glBeginQueryIndexed)(GLenum target, GLuint index, GLuint id);
484  typedef void (GLFUNC *ptr_glEndQueryIndexed)(GLenum target, GLuint index);
485  typedef void (GLFUNC *ptr_glGetQueryIndexediv)(GLenum target, GLuint index, GLenum pname, GLint *params);
486  typedef void (GLFUNC *ptr_glReleaseShaderCompiler)(void);
487  typedef void (GLFUNC *ptr_glShaderBinary)(GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
488  typedef void (GLFUNC *ptr_glGetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
490  typedef void (GLFUNC *ptr_glClearDepthf)(GLfloat d);
491  typedef void (GLFUNC *ptr_glGetProgramBinary)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
492  typedef void (GLFUNC *ptr_glProgramBinary)(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
493  typedef void (GLFUNC *ptr_glProgramParameteri)(GLuint program, GLenum pname, GLint value);
494  typedef void (GLFUNC *ptr_glUseProgramStages)(GLuint pipeline, GLbitfield stages, GLuint program);
495  typedef void (GLFUNC *ptr_glActiveShaderProgram)(GLuint pipeline, GLuint program);
496  typedef GLuint (GLFUNC *ptr_glCreateShaderProgramv)(GLenum type, GLsizei count, const GLchar* const *strings);
497  typedef void (GLFUNC *ptr_glBindProgramPipeline)(GLuint pipeline);
498  typedef void (GLFUNC *ptr_glDeleteProgramPipelines)(GLsizei n, const GLuint *pipelines);
499  typedef void (GLFUNC *ptr_glGenProgramPipelines)(GLsizei n, GLuint *pipelines);
501  typedef void (GLFUNC *ptr_glGetProgramPipelineiv)(GLuint pipeline, GLenum pname, GLint *params);
502  typedef void (GLFUNC *ptr_glProgramUniform1i)(GLuint program, GLint location, GLint v0);
503  typedef void (GLFUNC *ptr_glProgramUniform1iv)(GLuint program, GLint location, GLsizei count, const GLint *value);
504  typedef void (GLFUNC *ptr_glProgramUniform1f)(GLuint program, GLint location, GLfloat v0);
505  typedef void (GLFUNC *ptr_glProgramUniform1fv)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
506  typedef void (GLFUNC *ptr_glProgramUniform1d)(GLuint program, GLint location, GLdouble v0);
507  typedef void (GLFUNC *ptr_glProgramUniform1dv)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
508  typedef void (GLFUNC *ptr_glProgramUniform1ui)(GLuint program, GLint location, GLuint v0);
509  typedef void (GLFUNC *ptr_glProgramUniform1uiv)(GLuint program, GLint location, GLsizei count, const GLuint *value);
510  typedef void (GLFUNC *ptr_glProgramUniform2i)(GLuint program, GLint location, GLint v0, GLint v1);
511  typedef void (GLFUNC *ptr_glProgramUniform2iv)(GLuint program, GLint location, GLsizei count, const GLint *value);
512  typedef void (GLFUNC *ptr_glProgramUniform2f)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
513  typedef void (GLFUNC *ptr_glProgramUniform2fv)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
514  typedef void (GLFUNC *ptr_glProgramUniform2d)(GLuint program, GLint location, GLdouble v0, GLdouble v1);
515  typedef void (GLFUNC *ptr_glProgramUniform2dv)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
516  typedef void (GLFUNC *ptr_glProgramUniform2ui)(GLuint program, GLint location, GLuint v0, GLuint v1);
517  typedef void (GLFUNC *ptr_glProgramUniform2uiv)(GLuint program, GLint location, GLsizei count, const GLuint *value);
518  typedef void (GLFUNC *ptr_glProgramUniform3i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
519  typedef void (GLFUNC *ptr_glProgramUniform3iv)(GLuint program, GLint location, GLsizei count, const GLint *value);
520  typedef void (GLFUNC *ptr_glProgramUniform3f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
521  typedef void (GLFUNC *ptr_glProgramUniform3fv)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
522  typedef void (GLFUNC *ptr_glProgramUniform3d)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
523  typedef void (GLFUNC *ptr_glProgramUniform3dv)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
524  typedef void (GLFUNC *ptr_glProgramUniform3ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
525  typedef void (GLFUNC *ptr_glProgramUniform3uiv)(GLuint program, GLint location, GLsizei count, const GLuint *value);
526  typedef void (GLFUNC *ptr_glProgramUniform4i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
527  typedef void (GLFUNC *ptr_glProgramUniform4iv)(GLuint program, GLint location, GLsizei count, const GLint *value);
528  typedef void (GLFUNC *ptr_glProgramUniform4f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
529  typedef void (GLFUNC *ptr_glProgramUniform4fv)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
530  typedef void (GLFUNC *ptr_glProgramUniform4d)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
531  typedef void (GLFUNC *ptr_glProgramUniform4dv)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
532  typedef void (GLFUNC *ptr_glProgramUniform4ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
533  typedef void (GLFUNC *ptr_glProgramUniform4uiv)(GLuint program, GLint location, GLsizei count, const GLuint *value);
534  typedef void (GLFUNC *ptr_glProgramUniformMatrix2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
535  typedef void (GLFUNC *ptr_glProgramUniformMatrix3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
536  typedef void (GLFUNC *ptr_glProgramUniformMatrix4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
537  typedef void (GLFUNC *ptr_glProgramUniformMatrix2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
538  typedef void (GLFUNC *ptr_glProgramUniformMatrix3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
539  typedef void (GLFUNC *ptr_glProgramUniformMatrix4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
540  typedef void (GLFUNC *ptr_glProgramUniformMatrix2x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
541  typedef void (GLFUNC *ptr_glProgramUniformMatrix3x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
542  typedef void (GLFUNC *ptr_glProgramUniformMatrix2x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
543  typedef void (GLFUNC *ptr_glProgramUniformMatrix4x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
544  typedef void (GLFUNC *ptr_glProgramUniformMatrix3x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
545  typedef void (GLFUNC *ptr_glProgramUniformMatrix4x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
546  typedef void (GLFUNC *ptr_glProgramUniformMatrix2x3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
547  typedef void (GLFUNC *ptr_glProgramUniformMatrix3x2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
548  typedef void (GLFUNC *ptr_glProgramUniformMatrix2x4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
549  typedef void (GLFUNC *ptr_glProgramUniformMatrix4x2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
550  typedef void (GLFUNC *ptr_glProgramUniformMatrix3x4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
551  typedef void (GLFUNC *ptr_glProgramUniformMatrix4x3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
552  typedef void (GLFUNC *ptr_glValidateProgramPipeline)(GLuint pipeline);
553  typedef void (GLFUNC *ptr_glGetProgramPipelineInfoLog)(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
554  typedef void (GLFUNC *ptr_glVertexAttribL1d)(GLuint index, GLdouble x);
558  typedef void (GLFUNC *ptr_glVertexAttribL1dv)(GLuint index, const GLdouble *v);
559  typedef void (GLFUNC *ptr_glVertexAttribL2dv)(GLuint index, const GLdouble *v);
560  typedef void (GLFUNC *ptr_glVertexAttribL3dv)(GLuint index, const GLdouble *v);
561  typedef void (GLFUNC *ptr_glVertexAttribL4dv)(GLuint index, const GLdouble *v);
562  typedef void (GLFUNC *ptr_glVertexAttribLPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
563  typedef void (GLFUNC *ptr_glGetVertexAttribLdv)(GLuint index, GLenum pname, GLdouble *params);
564  typedef void (GLFUNC *ptr_glViewportArrayv)(GLuint first, GLsizei count, const GLfloat *v);
566  typedef void (GLFUNC *ptr_glViewportIndexedfv)(GLuint index, const GLfloat *v);
567  typedef void (GLFUNC *ptr_glScissorArrayv)(GLuint first, GLsizei count, const GLint *v);
568  typedef void (GLFUNC *ptr_glScissorIndexed)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
569  typedef void (GLFUNC *ptr_glScissorIndexedv)(GLuint index, const GLint *v);
570  typedef void (GLFUNC *ptr_glDepthRangeArrayv)(GLuint first, GLsizei count, const GLdouble *v);
572  typedef void (GLFUNC *ptr_glGetFloati_v)(GLenum target, GLuint index, GLfloat *data);
573  typedef void (GLFUNC *ptr_glGetDoublei_v)(GLenum target, GLuint index, GLdouble *data);
574  typedef CLsync (GLFUNC *ptr_glCreateSyncFromCLeventARB)(struct _cl_context * context, struct _cl_event * event, GLbitfield flags);
575  typedef void (GLFUNC *ptr_glDebugMessageControlARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
576  typedef void (GLFUNC *ptr_glDebugMessageInsertARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
577  typedef void (GLFUNC *ptr_glDebugMessageCallbackARB)(CLDEBUGPROCARB callback, const GLvoid *userParam);
578  typedef GLuint (GLFUNC *ptr_glGetDebugMessageLogARB)(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
580  typedef void (GLFUNC *ptr_glGetnMapdvARB)(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
581  typedef void (GLFUNC *ptr_glGetnMapfvARB)(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
582  typedef void (GLFUNC *ptr_glGetnMapivARB)(GLenum target, GLenum query, GLsizei bufSize, GLint *v);
583  typedef void (GLFUNC *ptr_glGetnPixelMapfvARB)(GLenum map, GLsizei bufSize, GLfloat *values);
584  typedef void (GLFUNC *ptr_glGetnPixelMapuivARB)(GLenum map, GLsizei bufSize, GLuint *values);
585  typedef void (GLFUNC *ptr_glGetnPixelMapusvARB)(GLenum map, GLsizei bufSize, GLushort *values);
586  typedef void (GLFUNC *ptr_glGetnPolygonStippleARB)(GLsizei bufSize, GLubyte *pattern);
587  typedef void (GLFUNC *ptr_glGetnColorTableARB)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
588  typedef void (GLFUNC *ptr_glGetnConvolutionFilterARB)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
589  typedef void (GLFUNC *ptr_glGetnSeparableFilterARB)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
590  typedef void (GLFUNC *ptr_glGetnHistogramARB)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
591  typedef void (GLFUNC *ptr_glGetnMinmaxARB)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
592  typedef void (GLFUNC *ptr_glGetnTexImageARB)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
593  typedef void (GLFUNC *ptr_glReadnPixelsARB)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
594  typedef void (GLFUNC *ptr_glGetnCompressedTexImageARB)(GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
595  typedef void (GLFUNC *ptr_glGetnUniformfvARB)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
596  typedef void (GLFUNC *ptr_glGetnUniformivARB)(GLuint program, GLint location, GLsizei bufSize, GLint *params);
597  typedef void (GLFUNC *ptr_glGetnUniformuivARB)(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
598  typedef void (GLFUNC *ptr_glGetnUniformdvARB)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
599  typedef void (GLFUNC *ptr_glDrawArraysInstancedBaseInstance)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
600  typedef void (GLFUNC *ptr_glDrawElementsInstancedBaseInstance)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
601  typedef void (GLFUNC *ptr_glDrawElementsInstancedBaseVertexBaseInstance)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
602  typedef void (GLFUNC *ptr_glDrawTransformFeedbackInstanced)(GLenum mode, GLuint id, GLsizei instancecount);
603  typedef void (GLFUNC *ptr_glDrawTransformFeedbackStreamInstanced)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
604  typedef void (GLFUNC *ptr_glGetInternalformativ)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
605  typedef void (GLFUNC *ptr_glGetActiveAtomicCounterBufferiv)(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
606  typedef void (GLFUNC *ptr_glBindImageTexture)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
607  typedef void (GLFUNC *ptr_glMemoryBarrier)(GLbitfield barriers);
608  typedef void (GLFUNC *ptr_glTexStorage1D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
609  typedef void (GLFUNC *ptr_glTexStorage2D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
610  typedef void (GLFUNC *ptr_glTexStorage3D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
611  typedef void (GLFUNC *ptr_glTextureStorage1DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
612  typedef void (GLFUNC *ptr_glTextureStorage2DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
613  typedef void (GLFUNC *ptr_glTextureStorage3DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
614  typedef void (GLFUNC *ptr_glDebugMessageControl)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
615  typedef void (GLFUNC *ptr_glDebugMessageInsert)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
616  typedef void (GLFUNC *ptr_glDebugMessageCallback)(CLDEBUGPROC callback, const void *userParam);
617  typedef GLuint (GLFUNC *ptr_glGetDebugMessageLog)(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
618  typedef void (GLFUNC *ptr_glPushDebugGroup)(GLenum source, GLuint id, GLsizei length, const GLchar *message);
619  typedef void (GLFUNC *ptr_glPopDebugGroup)(void);
620  typedef void (GLFUNC *ptr_glObjectLabel)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
621  typedef void (GLFUNC *ptr_glGetObjectLabel)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
622  typedef void (GLFUNC *ptr_glObjectPtrLabel)(const void *ptr, GLsizei length, const GLchar *label);
623  typedef void (GLFUNC *ptr_glGetObjectPtrLabel)(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
624  typedef void (GLFUNC *ptr_glClearBufferData)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
625  typedef void (GLFUNC *ptr_glClearBufferSubData)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
626  typedef void (GLFUNC *ptr_glClearNamedBufferDataEXT)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
627  typedef void (GLFUNC *ptr_glClearNamedBufferSubDataEXT)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const void *data);
628  typedef void (GLFUNC *ptr_glDispatchCompute)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
629  typedef void (GLFUNC *ptr_glDispatchComputeIndirect)(GLintptr indirect);
630  typedef void (GLFUNC *ptr_glCopyImageSubData)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
631  typedef void (GLFUNC *ptr_glFramebufferParameteri)(GLenum target, GLenum pname, GLint param);
632  typedef void (GLFUNC *ptr_glGetFramebufferParameteriv)(GLenum target, GLenum pname, GLint *params);
633  typedef void (GLFUNC *ptr_glNamedFramebufferParameteriEXT)(GLuint framebuffer, GLenum pname, GLint param);
634  typedef void (GLFUNC *ptr_glGetNamedFramebufferParameterivEXT)(GLuint framebuffer, GLenum pname, GLint *params);
635  typedef void (GLFUNC *ptr_glGetInternalformati64v)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, CLint64 *params);
636  typedef void (GLFUNC *ptr_glInvalidateTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
637  typedef void (GLFUNC *ptr_glInvalidateTexImage)(GLuint texture, GLint level);
639  typedef void (GLFUNC *ptr_glInvalidateBufferData)(GLuint buffer);
640  typedef void (GLFUNC *ptr_glInvalidateFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum *attachments);
641  typedef void (GLFUNC *ptr_glInvalidateSubFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
642  typedef void (GLFUNC *ptr_glMultiDrawArraysIndirect)(GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
643  typedef void (GLFUNC *ptr_glMultiDrawElementsIndirect)(GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
644  typedef void (GLFUNC *ptr_glGetProgramInterfaceiv)(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
645  typedef GLuint (GLFUNC *ptr_glGetProgramResourceIndex)(GLuint program, GLenum programInterface, const GLchar *name);
646  typedef void (GLFUNC *ptr_glGetProgramResourceName)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
647  typedef void (GLFUNC *ptr_glGetProgramResourceiv)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
648  typedef GLint (GLFUNC *ptr_glGetProgramResourceLocation)(GLuint program, GLenum programInterface, const GLchar *name);
649  typedef GLint (GLFUNC *ptr_glGetProgramResourceLocationIndex)(GLuint program, GLenum programInterface, const GLchar *name);
650  typedef void (GLFUNC *ptr_glShaderStorageBlockBinding)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
651  typedef void (GLFUNC *ptr_glTexBufferRange)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
652  typedef void (GLFUNC *ptr_glTextureBufferRangeEXT)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
653  typedef void (GLFUNC *ptr_glTexStorage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
654  typedef void (GLFUNC *ptr_glTexStorage3DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
655  typedef void (GLFUNC *ptr_glTextureStorage2DMultisampleEXT)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
656  typedef void (GLFUNC *ptr_glTextureStorage3DMultisampleEXT)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
657  typedef void (GLFUNC *ptr_glTextureView)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
658  typedef void (GLFUNC *ptr_glBindVertexBuffer)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
659  typedef void (GLFUNC *ptr_glVertexAttribFormat)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
660  typedef void (GLFUNC *ptr_glVertexAttribIFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
661  typedef void (GLFUNC *ptr_glVertexAttribLFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
662  typedef void (GLFUNC *ptr_glVertexAttribBinding)(GLuint attribindex, GLuint bindingindex);
663  typedef void (GLFUNC *ptr_glVertexBindingDivisor)(GLuint bindingindex, GLuint divisor);
664  typedef void (GLFUNC *ptr_glVertexArrayBindVertexBufferEXT)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
665  typedef void (GLFUNC *ptr_glVertexArrayVertexAttribFormatEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
666  typedef void (GLFUNC *ptr_glVertexArrayVertexAttribIFormatEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
667  typedef void (GLFUNC *ptr_glVertexArrayVertexAttribLFormatEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
668  typedef void (GLFUNC *ptr_glVertexArrayVertexAttribBindingEXT)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
669  typedef void (GLFUNC *ptr_glVertexArrayVertexBindingDivisorEXT)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
670 
671  // OpenGL 4.4
672  typedef void (GLFUNC *ptr_glBufferStorage)(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
673  typedef void (GLFUNC *ptr_glClearTexImage)(GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
674  typedef void (GLFUNC *ptr_glClearTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
675  typedef void (GLFUNC *ptr_glBindBuffersBase)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
676  typedef void (GLFUNC *ptr_glBindBuffersRange)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
677  typedef void (GLFUNC *ptr_glBindTextures)(GLuint first, GLsizei count, const GLuint *textures);
678  typedef void (GLFUNC *ptr_glBindSamplers)(GLuint first, GLsizei count, const GLuint *samplers);
679  typedef void (GLFUNC *ptr_glBindImageTextures)(GLuint first, GLsizei count, const GLuint *textures);
680  typedef void (GLFUNC *ptr_glBindVertexBuffers)(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
681 
682  // OpenGL 4.5
683  typedef void (GLFUNC *ptr_glClipControl)(GLenum origin, GLenum depth);
685  typedef void (GLFUNC *ptr_glTransformFeedbackBufferBase)(GLuint xfb, GLuint index, GLuint buffer);
686  typedef void (GLFUNC *ptr_glTransformFeedbackBufferRange)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
687  typedef void (GLFUNC *ptr_glGetTransformFeedbackiv)(GLuint xfb, GLenum pname, GLint *param);
688  typedef void (GLFUNC *ptr_glGetTransformFeedbacki_v)(GLuint xfb, GLenum pname, GLuint index, GLint *param);
689  typedef void (GLFUNC *ptr_glGetTransformFeedbacki64_v)(GLuint xfb, GLenum pname, GLuint index, CLint64 *param);
690  typedef void (GLFUNC *ptr_glCreateBuffers)(GLsizei n, GLuint *buffers);
691  typedef void (GLFUNC *ptr_glNamedBufferStorage)(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
692  typedef void (GLFUNC *ptr_glNamedBufferData)(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
693  typedef void (GLFUNC *ptr_glNamedBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
694  typedef void (GLFUNC *ptr_glCopyNamedBufferSubData)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
695  typedef void (GLFUNC *ptr_glClearNamedBufferData)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
696  typedef void (GLFUNC *ptr_glClearNamedBufferSubData)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
697  typedef void *(GLFUNC *ptr_glMapNamedBuffer)(GLuint buffer, GLenum access);
698  typedef void *(GLFUNC *ptr_glMapNamedBufferRange)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
701  typedef void (GLFUNC *ptr_glGetNamedBufferParameteriv)(GLuint buffer, GLenum pname, GLint *params);
702  typedef void (GLFUNC *ptr_glGetNamedBufferParameteri64v)(GLuint buffer, GLenum pname, CLint64 *params);
703  typedef void (GLFUNC *ptr_glGetNamedBufferPointerv)(GLuint buffer, GLenum pname, void **params);
704  typedef void (GLFUNC *ptr_glGetNamedBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
705  typedef void (GLFUNC *ptr_glCreateFramebuffers)(GLsizei n, GLuint *framebuffers);
706  typedef void (GLFUNC *ptr_glNamedFramebufferRenderbuffer)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
707  typedef void (GLFUNC *ptr_glNamedFramebufferParameteri)(GLuint framebuffer, GLenum pname, GLint param);
708  typedef void (GLFUNC *ptr_glNamedFramebufferTexture)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
709  typedef void (GLFUNC *ptr_glNamedFramebufferTextureLayer)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
710  typedef void (GLFUNC *ptr_glNamedFramebufferDrawBuffer)(GLuint framebuffer, GLenum buf);
711  typedef void (GLFUNC *ptr_glNamedFramebufferDrawBuffers)(GLuint framebuffer, GLsizei n, const GLenum *bufs);
712  typedef void (GLFUNC *ptr_glNamedFramebufferReadBuffer)(GLuint framebuffer, GLenum src);
713  typedef void (GLFUNC *ptr_glInvalidateNamedFramebufferData)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
714  typedef void (GLFUNC *ptr_glInvalidateNamedFramebufferSubData)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
715  typedef void (GLFUNC *ptr_glClearNamedFramebufferiv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
716  typedef void (GLFUNC *ptr_glClearNamedFramebufferuiv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
717  typedef void (GLFUNC *ptr_glClearNamedFramebufferfv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
718  typedef void (GLFUNC *ptr_glClearNamedFramebufferfi)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
719  typedef void (GLFUNC *ptr_glBlitNamedFramebuffer)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
721  typedef void (GLFUNC *ptr_glGetNamedFramebufferParameteriv)(GLuint framebuffer, GLenum pname, GLint *param);
722  typedef void (GLFUNC *ptr_glGetNamedFramebufferAttachmentParameteriv)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
723  typedef void (GLFUNC *ptr_glCreateRenderbuffers)(GLsizei n, GLuint *renderbuffers);
724  typedef void (GLFUNC *ptr_glNamedRenderbufferStorage)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
725  typedef void (GLFUNC *ptr_glNamedRenderbufferStorageMultisample)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
726  typedef void (GLFUNC *ptr_glGetNamedRenderbufferParameteriv)(GLuint renderbuffer, GLenum pname, GLint *params);
727  typedef void (GLFUNC *ptr_glCreateTextures)(GLenum target, GLsizei n, GLuint *textures);
728  typedef void (GLFUNC *ptr_glTextureBuffer)(GLuint texture, GLenum internalformat, GLuint buffer);
729  typedef void (GLFUNC *ptr_glTextureBufferRange)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
730  typedef void (GLFUNC *ptr_glTextureStorage1D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
731  typedef void (GLFUNC *ptr_glTextureStorage2D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
732  typedef void (GLFUNC *ptr_glTextureStorage3D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
733  typedef void (GLFUNC *ptr_glTextureStorage2DMultisample)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
734  typedef void (GLFUNC *ptr_glTextureStorage3DMultisample)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
735  typedef void (GLFUNC *ptr_glTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
736  typedef void (GLFUNC *ptr_glTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
737  typedef void (GLFUNC *ptr_glTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
738  typedef void (GLFUNC *ptr_glCompressedTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
739  typedef void (GLFUNC *ptr_glCompressedTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
740  typedef void (GLFUNC *ptr_glCompressedTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
741  typedef void (GLFUNC *ptr_glCopyTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
742  typedef void (GLFUNC *ptr_glCopyTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
743  typedef void (GLFUNC *ptr_glCopyTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
744  typedef void (GLFUNC *ptr_glTextureParameterf)(GLuint texture, GLenum pname, GLfloat param);
745  typedef void (GLFUNC *ptr_glTextureParameterfv)(GLuint texture, GLenum pname, const GLfloat *param);
746  typedef void (GLFUNC *ptr_glTextureParameteri)(GLuint texture, GLenum pname, GLint param);
747  typedef void (GLFUNC *ptr_glTextureParameterIiv)(GLuint texture, GLenum pname, const GLint *params);
748  typedef void (GLFUNC *ptr_glTextureParameterIuiv)(GLuint texture, GLenum pname, const GLuint *params);
749  typedef void (GLFUNC *ptr_glTextureParameteriv)(GLuint texture, GLenum pname, const GLint *param);
750  typedef void (GLFUNC *ptr_glGenerateTextureMipmap)(GLuint texture);
751  typedef void (GLFUNC *ptr_glBindTextureUnit)(GLuint unit, GLuint texture);
752  typedef void (GLFUNC *ptr_glGetTextureImage)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
753  typedef void (GLFUNC *ptr_glGetCompressedTextureImage)(GLuint texture, GLint level, GLsizei bufSize, void *pixels);
754  typedef void (GLFUNC *ptr_glGetTextureLevelParameterfv)(GLuint texture, GLint level, GLenum pname, GLfloat *params);
755  typedef void (GLFUNC *ptr_glGetTextureLevelParameteriv)(GLuint texture, GLint level, GLenum pname, GLint *params);
756  typedef void (GLFUNC *ptr_glGetTextureParameterfv)(GLuint texture, GLenum pname, GLfloat *params);
757  typedef void (GLFUNC *ptr_glGetTextureParameterIiv)(GLuint texture, GLenum pname, GLint *params);
758  typedef void (GLFUNC *ptr_glGetTextureParameterIuiv)(GLuint texture, GLenum pname, GLuint *params);
759  typedef void (GLFUNC *ptr_glGetTextureParameteriv)(GLuint texture, GLenum pname, GLint *params);
760  typedef void (GLFUNC *ptr_glCreateVertexArrays)(GLsizei n, GLuint *arrays);
761  typedef void (GLFUNC *ptr_glDisableVertexArrayAttrib)(GLuint vaobj, GLuint index);
762  typedef void (GLFUNC *ptr_glEnableVertexArrayAttrib)(GLuint vaobj, GLuint index);
763  typedef void (GLFUNC *ptr_glVertexArrayElementBuffer)(GLuint vaobj, GLuint buffer);
764  typedef void (GLFUNC *ptr_glVertexArrayVertexBuffer)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
765  typedef void (GLFUNC *ptr_glVertexArrayVertexBuffers)(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
766  typedef void (GLFUNC *ptr_glVertexArrayAttribBinding)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
767  typedef void (GLFUNC *ptr_glVertexArrayAttribFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
768  typedef void (GLFUNC *ptr_glVertexArrayAttribIFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
769  typedef void (GLFUNC *ptr_glVertexArrayAttribLFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
770  typedef void (GLFUNC *ptr_glVertexArrayBindingDivisor)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
771  typedef void (GLFUNC *ptr_glGetVertexArrayiv)(GLuint vaobj, GLenum pname, GLint *param);
772  typedef void (GLFUNC *ptr_glGetVertexArrayIndexediv)(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
773  typedef void (GLFUNC *ptr_glGetVertexArrayIndexed64iv)(GLuint vaobj, GLuint index, GLenum pname, CLint64 *param);
774  typedef void (GLFUNC *ptr_glCreateSamplers)(GLsizei n, GLuint *samplers);
775  typedef void (GLFUNC *ptr_glCreateProgramPipelines)(GLsizei n, GLuint *pipelines);
776  typedef void (GLFUNC *ptr_glCreateQueries)(GLenum target, GLsizei n, GLuint *ids);
777  typedef void (GLFUNC *ptr_glGetQueryBufferObjecti64v)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
778  typedef void (GLFUNC *ptr_glGetQueryBufferObjectiv)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
779  typedef void (GLFUNC *ptr_glGetQueryBufferObjectui64v)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
780  typedef void (GLFUNC *ptr_glGetQueryBufferObjectuiv)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
781  typedef void (GLFUNC *ptr_glMemoryBarrierByRegion)(GLbitfield barriers);
782  typedef void (GLFUNC *ptr_glGetTextureSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
783  typedef void (GLFUNC *ptr_glGetCompressedTextureSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
785  typedef void (GLFUNC *ptr_glGetnCompressedTexImage)(GLenum target, GLint lod, GLsizei bufSize, void *pixels);
786  typedef void (GLFUNC *ptr_glGetnTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
787  typedef void (GLFUNC *ptr_glGetnUniformdv)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
788  typedef void (GLFUNC *ptr_glGetnUniformfv)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
789  typedef void (GLFUNC *ptr_glGetnUniformiv)(GLuint program, GLint location, GLsizei bufSize, GLint *params);
790  typedef void (GLFUNC *ptr_glGetnUniformuiv)(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
791  typedef void (GLFUNC *ptr_glReadnPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
792  typedef void (GLFUNC *ptr_glGetnMapdv)(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
793  typedef void (GLFUNC *ptr_glGetnMapfv)(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
794  typedef void (GLFUNC *ptr_glGetnMapiv)(GLenum target, GLenum query, GLsizei bufSize, GLint *v);
795  typedef void (GLFUNC *ptr_glGetnPixelMapfv)(GLenum map, GLsizei bufSize, GLfloat *values);
796  typedef void (GLFUNC *ptr_glGetnPixelMapuiv)(GLenum map, GLsizei bufSize, GLuint *values);
797  typedef void (GLFUNC *ptr_glGetnPixelMapusv)(GLenum map, GLsizei bufSize, GLushort *values);
798  typedef void (GLFUNC *ptr_glGetnPolygonStipple)(GLsizei bufSize, GLubyte *pattern);
799  typedef void (GLFUNC *ptr_glGetnColorTable)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
800  typedef void (GLFUNC *ptr_glGetnConvolutionFilter)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
801  typedef void (GLFUNC *ptr_glGetnSeparableFilter)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span);
802  typedef void (GLFUNC *ptr_glGetnHistogram)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
803  typedef void (GLFUNC *ptr_glGetnMinmax)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
804  typedef void (GLFUNC *ptr_glTextureBarrier)(void);
805 
806  // For Legacy OpenGL (For GL1 target)
808  #ifdef WIN32
809  DECLARE_HANDLE(HPBUFFERARB);
810  typedef HPBUFFERARB (GLFUNC *ptr_wglCreatePbufferARB)(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
811  typedef HDC (GLFUNC *ptr_wglGetPbufferDCARB)(HPBUFFERARB hPbuffer);
812  typedef int (GLFUNC *ptr_wglReleasePbufferDCARB)(HPBUFFERARB hPbuffer, HDC hDC);
813  typedef BOOL (GLFUNC *ptr_wglDestroyPbufferARB)(HPBUFFERARB hPbuffer);
814  typedef BOOL (GLFUNC *ptr_wglQueryPbufferARB)(HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
815  #endif
816 
1433 
1434  // OpenGL 4.4
1444 
1445  // OpenGL 4.5
1568 
1569  // For Legacy OpenGL (For GL1 target)
1571  #ifdef WIN32
1572  ptr_wglCreatePbufferARB wglCreatePbufferARB;
1573  ptr_wglGetPbufferDCARB wglGetPbufferDCARB;
1574  ptr_wglReleasePbufferDCARB wglReleasePbufferDCARB;
1575  ptr_wglDestroyPbufferARB wglDestroyPbufferARB;
1576  ptr_wglQueryPbufferARB wglQueryPbufferARB;
1577  #endif
1578 
1579  };
1580 
1581  #define glCullFace clan::OpenGL::functions->cullFace
1582  #define glFrontFace clan::OpenGL::functions->frontFace
1583  #define glHint clan::OpenGL::functions->hint
1584  #define glLineWidth clan::OpenGL::functions->lineWidth
1585  #define glPointSize clan::OpenGL::functions->pointSize
1586  #define glPolygonMode clan::OpenGL::functions->polygonMode
1587  #define glScissor clan::OpenGL::functions->scissor
1588  #define glTexParameterf clan::OpenGL::functions->texParameterf
1589  #define glTexParameterfv clan::OpenGL::functions->texParameterfv
1590  #define glTexParameteri clan::OpenGL::functions->texParameteri
1591  #define glTexParameteriv clan::OpenGL::functions->texParameteriv
1592  #define glTexImage1D clan::OpenGL::functions->texImage1D
1593  #define glTexImage2D clan::OpenGL::functions->texImage2D
1594  #define glDrawBuffer clan::OpenGL::functions->drawBuffer
1595  #define glClear clan::OpenGL::functions->clear
1596  #define glClearColor clan::OpenGL::functions->clearColor
1597  #define glClearStencil clan::OpenGL::functions->clearStencil
1598  #define glClearDepth clan::OpenGL::functions->clearDepth
1599  #define glStencilMask clan::OpenGL::functions->stencilMask
1600  #define glColorMask clan::OpenGL::functions->colorMask
1601  #define glDepthMask clan::OpenGL::functions->depthMask
1602  #define glDisable clan::OpenGL::functions->disable
1603  #define glEnable clan::OpenGL::functions->enable
1604  #define glFinish clan::OpenGL::functions->finish
1605  #define glFlush clan::OpenGL::functions->flush
1606  #define glBlendFunc clan::OpenGL::functions->blendFunc
1607  #define glLogicOp clan::OpenGL::functions->logicOp
1608  #define glStencilFunc clan::OpenGL::functions->stencilFunc
1609  #define glStencilOp clan::OpenGL::functions->stencilOp
1610  #define glDepthFunc clan::OpenGL::functions->depthFunc
1611  #define glPixelStoref clan::OpenGL::functions->pixelStoref
1612  #define glPixelStorei clan::OpenGL::functions->pixelStorei
1613  #define glReadBuffer clan::OpenGL::functions->readBuffer
1614  #define glReadPixels clan::OpenGL::functions->readPixels
1615  #define glGetBooleanv clan::OpenGL::functions->getBooleanv
1616  #define glGetDoublev clan::OpenGL::functions->getDoublev
1617  #define glGetError clan::OpenGL::functions->getError
1618  #define glGetFloatv clan::OpenGL::functions->getFloatv
1619  #define glGetIntegerv clan::OpenGL::functions->getIntegerv
1620  #define glGetString clan::OpenGL::functions->getString
1621  #define glGetTexImage clan::OpenGL::functions->getTexImage
1622  #define glGetTexParameterfv clan::OpenGL::functions->getTexParameterfv
1623  #define glGetTexParameteriv clan::OpenGL::functions->getTexParameteriv
1624  #define glGetTexLevelParameterfv clan::OpenGL::functions->getTexLevelParameterfv
1625  #define glGetTexLevelParameteriv clan::OpenGL::functions->getTexLevelParameteriv
1626  #define glIsEnabled clan::OpenGL::functions->isEnabled
1627  #define glDepthRange clan::OpenGL::functions->depthRange
1628  #define glViewport clan::OpenGL::functions->viewport
1629  #define glDrawArrays clan::OpenGL::functions->drawArrays
1630  #define glDrawElements clan::OpenGL::functions->drawElements
1631  #define glGetPointerv clan::OpenGL::functions->getPointerv
1632  #define glPolygonOffset clan::OpenGL::functions->polygonOffset
1633  #define glCopyTexImage1D clan::OpenGL::functions->copyTexImage1D
1634  #define glCopyTexImage2D clan::OpenGL::functions->copyTexImage2D
1635  #define glCopyTexSubImage1D clan::OpenGL::functions->copyTexSubImage1D
1636  #define glCopyTexSubImage2D clan::OpenGL::functions->copyTexSubImage2D
1637  #define glTexSubImage1D clan::OpenGL::functions->texSubImage1D
1638  #define glTexSubImage2D clan::OpenGL::functions->texSubImage2D
1639  #define glBindTexture clan::OpenGL::functions->bindTexture
1640  #define glDeleteTextures clan::OpenGL::functions->deleteTextures
1641  #define glGenTextures clan::OpenGL::functions->genTextures
1642  #define glIsTexture clan::OpenGL::functions->isTexture
1643  #define glBlendColor clan::OpenGL::functions->blendColor
1644  #define glBlendEquation clan::OpenGL::functions->blendEquation
1645  #define glDrawRangeElements clan::OpenGL::functions->drawRangeElements
1646  #define glTexImage3D clan::OpenGL::functions->texImage3D
1647  #define glTexSubImage3D clan::OpenGL::functions->texSubImage3D
1648  #define glCopyTexSubImage3D clan::OpenGL::functions->copyTexSubImage3D
1649  #define glActiveTexture clan::OpenGL::functions->activeTexture
1650  #define glSampleCoverage clan::OpenGL::functions->sampleCoverage
1651  #define glCompressedTexImage3D clan::OpenGL::functions->compressedTexImage3D
1652  #define glCompressedTexImage2D clan::OpenGL::functions->compressedTexImage2D
1653  #define glCompressedTexImage1D clan::OpenGL::functions->compressedTexImage1D
1654  #define glCompressedTexSubImage3D clan::OpenGL::functions->compressedTexSubImage3D
1655  #define glCompressedTexSubImage2D clan::OpenGL::functions->compressedTexSubImage2D
1656  #define glCompressedTexSubImage1D clan::OpenGL::functions->compressedTexSubImage1D
1657  #define glGetCompressedTexImage clan::OpenGL::functions->getCompressedTexImage
1658  #define glBlendFuncSeparate clan::OpenGL::functions->blendFuncSeparate
1659  #define glMultiDrawArrays clan::OpenGL::functions->multiDrawArrays
1660  #define glMultiDrawElements clan::OpenGL::functions->multiDrawElements
1661  #define glPointParameterf clan::OpenGL::functions->pointParameterf
1662  #define glPointParameterfv clan::OpenGL::functions->pointParameterfv
1663  #define glPointParameteri clan::OpenGL::functions->pointParameteri
1664  #define glPointParameteriv clan::OpenGL::functions->pointParameteriv
1665  #define glGenQueries clan::OpenGL::functions->genQueries
1666  #define glDeleteQueries clan::OpenGL::functions->deleteQueries
1667  #define glIsQuery clan::OpenGL::functions->isQuery
1668  #define glBeginQuery clan::OpenGL::functions->beginQuery
1669  #define glEndQuery clan::OpenGL::functions->endQuery
1670  #define glGetQueryiv clan::OpenGL::functions->getQueryiv
1671  #define glGetQueryObjectiv clan::OpenGL::functions->getQueryObjectiv
1672  #define glGetQueryObjectuiv clan::OpenGL::functions->getQueryObjectuiv
1673  #define glBindBuffer clan::OpenGL::functions->bindBuffer
1674  #define glDeleteBuffers clan::OpenGL::functions->deleteBuffers
1675  #define glGenBuffers clan::OpenGL::functions->genBuffers
1676  #define glIsBuffer clan::OpenGL::functions->isBuffer
1677  #define glBufferData clan::OpenGL::functions->bufferData
1678  #define glBufferSubData clan::OpenGL::functions->bufferSubData
1679  #define glGetBufferSubData clan::OpenGL::functions->getBufferSubData
1680  #define glMapBuffer clan::OpenGL::functions->mapBuffer
1681  #define glUnmapBuffer clan::OpenGL::functions->unmapBuffer
1682  #define glGetBufferParameteriv clan::OpenGL::functions->getBufferParameteriv
1683  #define glGetBufferPointerv clan::OpenGL::functions->getBufferPointerv
1684  #define glBlendEquationSeparate clan::OpenGL::functions->blendEquationSeparate
1685  #define glDrawBuffers clan::OpenGL::functions->drawBuffers
1686  #define glStencilOpSeparate clan::OpenGL::functions->stencilOpSeparate
1687  #define glStencilFuncSeparate clan::OpenGL::functions->stencilFuncSeparate
1688  #define glStencilMaskSeparate clan::OpenGL::functions->stencilMaskSeparate
1689  #define glAttachShader clan::OpenGL::functions->attachShader
1690  #define glBindAttribLocation clan::OpenGL::functions->bindAttribLocation
1691  #define glCompileShader clan::OpenGL::functions->compileShader
1692  #define glCreateProgram clan::OpenGL::functions->createProgram
1693  #define glCreateShader clan::OpenGL::functions->createShader
1694  #define glDeleteProgram clan::OpenGL::functions->deleteProgram
1695  #define glDeleteShader clan::OpenGL::functions->deleteShader
1696  #define glDetachShader clan::OpenGL::functions->detachShader
1697  #define glDisableVertexAttribArray clan::OpenGL::functions->disableVertexAttribArray
1698  #define glEnableVertexAttribArray clan::OpenGL::functions->enableVertexAttribArray
1699  #define glGetActiveAttrib clan::OpenGL::functions->getActiveAttrib
1700  #define glGetActiveUniform clan::OpenGL::functions->getActiveUniform
1701  #define glGetAttachedShaders clan::OpenGL::functions->getAttachedShaders
1702  #define glGetAttribLocation clan::OpenGL::functions->getAttribLocation
1703  #define glGetProgramiv clan::OpenGL::functions->getProgramiv
1704  #define glGetProgramInfoLog clan::OpenGL::functions->getProgramInfoLog
1705  #define glGetShaderiv clan::OpenGL::functions->getShaderiv
1706  #define glGetShaderInfoLog clan::OpenGL::functions->getShaderInfoLog
1707  #define glGetShaderSource clan::OpenGL::functions->getShaderSource
1708  #define glGetUniformLocation clan::OpenGL::functions->getUniformLocation
1709  #define glGetUniformfv clan::OpenGL::functions->getUniformfv
1710  #define glGetUniformiv clan::OpenGL::functions->getUniformiv
1711  #define glGetVertexAttribdv clan::OpenGL::functions->getVertexAttribdv
1712  #define glGetVertexAttribfv clan::OpenGL::functions->getVertexAttribfv
1713  #define glGetVertexAttribiv clan::OpenGL::functions->getVertexAttribiv
1714  #define glGetVertexAttribPointerv clan::OpenGL::functions->getVertexAttribPointerv
1715  #define glIsProgram clan::OpenGL::functions->isProgram
1716  #define glIsShader clan::OpenGL::functions->isShader
1717  #define glLinkProgram clan::OpenGL::functions->linkProgram
1718  #define glShaderSource clan::OpenGL::functions->shaderSource
1719  #define glUseProgram clan::OpenGL::functions->useProgram
1720  #define glUniform1f clan::OpenGL::functions->uniform1f
1721  #define glUniform2f clan::OpenGL::functions->uniform2f
1722  #define glUniform3f clan::OpenGL::functions->uniform3f
1723  #define glUniform4f clan::OpenGL::functions->uniform4f
1724  #define glUniform1i clan::OpenGL::functions->uniform1i
1725  #define glUniform2i clan::OpenGL::functions->uniform2i
1726  #define glUniform3i clan::OpenGL::functions->uniform3i
1727  #define glUniform4i clan::OpenGL::functions->uniform4i
1728  #define glUniform1fv clan::OpenGL::functions->uniform1fv
1729  #define glUniform2fv clan::OpenGL::functions->uniform2fv
1730  #define glUniform3fv clan::OpenGL::functions->uniform3fv
1731  #define glUniform4fv clan::OpenGL::functions->uniform4fv
1732  #define glUniform1iv clan::OpenGL::functions->uniform1iv
1733  #define glUniform2iv clan::OpenGL::functions->uniform2iv
1734  #define glUniform3iv clan::OpenGL::functions->uniform3iv
1735  #define glUniform4iv clan::OpenGL::functions->uniform4iv
1736  #define glUniformMatrix2fv clan::OpenGL::functions->uniformMatrix2fv
1737  #define glUniformMatrix3fv clan::OpenGL::functions->uniformMatrix3fv
1738  #define glUniformMatrix4fv clan::OpenGL::functions->uniformMatrix4fv
1739  #define glValidateProgram clan::OpenGL::functions->validateProgram
1740  #define glVertexAttrib1d clan::OpenGL::functions->vertexAttrib1d
1741  #define glVertexAttrib1dv clan::OpenGL::functions->vertexAttrib1dv
1742  #define glVertexAttrib1f clan::OpenGL::functions->vertexAttrib1f
1743  #define glVertexAttrib1fv clan::OpenGL::functions->vertexAttrib1fv
1744  #define glVertexAttrib1s clan::OpenGL::functions->vertexAttrib1s
1745  #define glVertexAttrib1sv clan::OpenGL::functions->vertexAttrib1sv
1746  #define glVertexAttrib2d clan::OpenGL::functions->vertexAttrib2d
1747  #define glVertexAttrib2dv clan::OpenGL::functions->vertexAttrib2dv
1748  #define glVertexAttrib2f clan::OpenGL::functions->vertexAttrib2f
1749  #define glVertexAttrib2fv clan::OpenGL::functions->vertexAttrib2fv
1750  #define glVertexAttrib2s clan::OpenGL::functions->vertexAttrib2s
1751  #define glVertexAttrib2sv clan::OpenGL::functions->vertexAttrib2sv
1752  #define glVertexAttrib3d clan::OpenGL::functions->vertexAttrib3d
1753  #define glVertexAttrib3dv clan::OpenGL::functions->vertexAttrib3dv
1754  #define glVertexAttrib3f clan::OpenGL::functions->vertexAttrib3f
1755  #define glVertexAttrib3fv clan::OpenGL::functions->vertexAttrib3fv
1756  #define glVertexAttrib3s clan::OpenGL::functions->vertexAttrib3s
1757  #define glVertexAttrib3sv clan::OpenGL::functions->vertexAttrib3sv
1758  #define glVertexAttrib4Nbv clan::OpenGL::functions->vertexAttrib4Nbv
1759  #define glVertexAttrib4Niv clan::OpenGL::functions->vertexAttrib4Niv
1760  #define glVertexAttrib4Nsv clan::OpenGL::functions->vertexAttrib4Nsv
1761  #define glVertexAttrib4Nub clan::OpenGL::functions->vertexAttrib4Nub
1762  #define glVertexAttrib4Nubv clan::OpenGL::functions->vertexAttrib4Nubv
1763  #define glVertexAttrib4Nuiv clan::OpenGL::functions->vertexAttrib4Nuiv
1764  #define glVertexAttrib4Nusv clan::OpenGL::functions->vertexAttrib4Nusv
1765  #define glVertexAttrib4bv clan::OpenGL::functions->vertexAttrib4bv
1766  #define glVertexAttrib4d clan::OpenGL::functions->vertexAttrib4d
1767  #define glVertexAttrib4dv clan::OpenGL::functions->vertexAttrib4dv
1768  #define glVertexAttrib4f clan::OpenGL::functions->vertexAttrib4f
1769  #define glVertexAttrib4fv clan::OpenGL::functions->vertexAttrib4fv
1770  #define glVertexAttrib4iv clan::OpenGL::functions->vertexAttrib4iv
1771  #define glVertexAttrib4s clan::OpenGL::functions->vertexAttrib4s
1772  #define glVertexAttrib4sv clan::OpenGL::functions->vertexAttrib4sv
1773  #define glVertexAttrib4ubv clan::OpenGL::functions->vertexAttrib4ubv
1774  #define glVertexAttrib4uiv clan::OpenGL::functions->vertexAttrib4uiv
1775  #define glVertexAttrib4usv clan::OpenGL::functions->vertexAttrib4usv
1776  #define glVertexAttribPointer clan::OpenGL::functions->vertexAttribPointer
1777  #define glUniformMatrix2x3fv clan::OpenGL::functions->uniformMatrix2x3fv
1778  #define glUniformMatrix3x2fv clan::OpenGL::functions->uniformMatrix3x2fv
1779  #define glUniformMatrix2x4fv clan::OpenGL::functions->uniformMatrix2x4fv
1780  #define glUniformMatrix4x2fv clan::OpenGL::functions->uniformMatrix4x2fv
1781  #define glUniformMatrix3x4fv clan::OpenGL::functions->uniformMatrix3x4fv
1782  #define glUniformMatrix4x3fv clan::OpenGL::functions->uniformMatrix4x3fv
1783  #define glColorMaski clan::OpenGL::functions->colorMaski
1784  #define glGetBooleani_v clan::OpenGL::functions->getBooleani_v
1785  #define glGetIntegeri_v clan::OpenGL::functions->getIntegeri_v
1786  #define glEnablei clan::OpenGL::functions->enablei
1787  #define glDisablei clan::OpenGL::functions->disablei
1788  #define glIsEnabledi clan::OpenGL::functions->isEnabledi
1789  #define glBeginTransformFeedback clan::OpenGL::functions->beginTransformFeedback
1790  #define glEndTransformFeedback clan::OpenGL::functions->endTransformFeedback
1791  #define glBindBufferRange clan::OpenGL::functions->bindBufferRange
1792  #define glBindBufferBase clan::OpenGL::functions->bindBufferBase
1793  #define glTransformFeedbackVaryings clan::OpenGL::functions->transformFeedbackVaryings
1794  #define glGetTransformFeedbackVarying clan::OpenGL::functions->getTransformFeedbackVarying
1795  #define glClampColor clan::OpenGL::functions->clampColor
1796  #define glBeginConditionalRender clan::OpenGL::functions->beginConditionalRender
1797  #define glEndConditionalRender clan::OpenGL::functions->endConditionalRender
1798  #define glVertexAttribIPointer clan::OpenGL::functions->vertexAttribIPointer
1799  #define glGetVertexAttribIiv clan::OpenGL::functions->getVertexAttribIiv
1800  #define glGetVertexAttribIuiv clan::OpenGL::functions->getVertexAttribIuiv
1801  #define glVertexAttribI1i clan::OpenGL::functions->vertexAttribI1i
1802  #define glVertexAttribI2i clan::OpenGL::functions->vertexAttribI2i
1803  #define glVertexAttribI3i clan::OpenGL::functions->vertexAttribI3i
1804  #define glVertexAttribI4i clan::OpenGL::functions->vertexAttribI4i
1805  #define glVertexAttribI1ui clan::OpenGL::functions->vertexAttribI1ui
1806  #define glVertexAttribI2ui clan::OpenGL::functions->vertexAttribI2ui
1807  #define glVertexAttribI3ui clan::OpenGL::functions->vertexAttribI3ui
1808  #define glVertexAttribI4ui clan::OpenGL::functions->vertexAttribI4ui
1809  #define glVertexAttribI1iv clan::OpenGL::functions->vertexAttribI1iv
1810  #define glVertexAttribI2iv clan::OpenGL::functions->vertexAttribI2iv
1811  #define glVertexAttribI3iv clan::OpenGL::functions->vertexAttribI3iv
1812  #define glVertexAttribI4iv clan::OpenGL::functions->vertexAttribI4iv
1813  #define glVertexAttribI1uiv clan::OpenGL::functions->vertexAttribI1uiv
1814  #define glVertexAttribI2uiv clan::OpenGL::functions->vertexAttribI2uiv
1815  #define glVertexAttribI3uiv clan::OpenGL::functions->vertexAttribI3uiv
1816  #define glVertexAttribI4uiv clan::OpenGL::functions->vertexAttribI4uiv
1817  #define glVertexAttribI4bv clan::OpenGL::functions->vertexAttribI4bv
1818  #define glVertexAttribI4sv clan::OpenGL::functions->vertexAttribI4sv
1819  #define glVertexAttribI4ubv clan::OpenGL::functions->vertexAttribI4ubv
1820  #define glVertexAttribI4usv clan::OpenGL::functions->vertexAttribI4usv
1821  #define glGetUniformuiv clan::OpenGL::functions->getUniformuiv
1822  #define glBindFragDataLocation clan::OpenGL::functions->bindFragDataLocation
1823  #define glGetFragDataLocation clan::OpenGL::functions->getFragDataLocation
1824  #define glUniform1ui clan::OpenGL::functions->uniform1ui<