• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2015 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // functionsgl_typedefs.h: Typedefs of OpenGL types and functions for versions 1.0 through 4.5.
8 
9 #ifndef LIBANGLE_RENDERER_GL_FUNCTIONSGLTYPEDEFS_H_
10 #define LIBANGLE_RENDERER_GL_FUNCTIONSGLTYPEDEFS_H_
11 
12 #include "common/platform.h"
13 
14 #include <KHR/khrplatform.h>
15 #include <stdint.h>
16 
17 #ifndef INTERNAL_GL_APIENTRY
18 #    ifdef ANGLE_PLATFORM_WINDOWS
19 #        define INTERNAL_GL_APIENTRY __stdcall
20 #    else
21 #        define INTERNAL_GL_APIENTRY
22 #    endif
23 #endif
24 
25 typedef void GLvoid;
26 typedef char GLchar;
27 typedef unsigned int GLenum;
28 typedef unsigned char GLboolean;
29 typedef unsigned int GLbitfield;
30 typedef khronos_int8_t GLbyte;
31 typedef short GLshort;
32 typedef int GLint;
33 typedef int GLsizei;
34 typedef khronos_uint8_t GLubyte;
35 typedef unsigned short GLushort;
36 typedef unsigned int GLuint;
37 typedef khronos_float_t GLfloat;
38 typedef khronos_float_t GLclampf;
39 typedef double GLdouble;
40 typedef double GLclampd;
41 typedef khronos_int32_t GLfixed;
42 typedef khronos_intptr_t GLintptr;
43 typedef khronos_ssize_t GLsizeiptr;
44 typedef unsigned short GLhalf;
45 typedef khronos_int64_t GLint64;
46 typedef khronos_uint64_t GLuint64;
47 typedef struct __GLsync *GLsync;
48 
49 // TODO(jmadill): It's likely we can auto-generate this file from gl.xml.
50 
51 namespace rx
52 {
53 typedef void(INTERNAL_GL_APIENTRY *GLDEBUGPROC)(GLenum source,
54                                                 GLenum type,
55                                                 GLuint id,
56                                                 GLenum severity,
57                                                 GLsizei length,
58                                                 const GLchar *message,
59                                                 const void *userParam);
60 typedef void(INTERNAL_GL_APIENTRY *GLDEBUGPROCARB)(GLenum source,
61                                                    GLenum type,
62                                                    GLuint id,
63                                                    GLenum severity,
64                                                    GLsizei length,
65                                                    const GLchar *message,
66                                                    const void *userParam);
67 typedef void(INTERNAL_GL_APIENTRY *GLDEBUGPROCAMD)(GLuint id,
68                                                    GLenum category,
69                                                    GLenum severity,
70                                                    GLsizei length,
71                                                    const GLchar *message,
72                                                    void *userParam);
73 
74 // 1.0
75 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDFUNCPROC)(GLenum, GLenum);
76 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARPROC)(GLbitfield);
77 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARCOLORPROC)(GLfloat, GLfloat, GLfloat, GLfloat);
78 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARDEPTHPROC)(GLdouble);
79 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARSTENCILPROC)(GLint);
80 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOLORMASKPROC)(GLboolean, GLboolean, GLboolean, GLboolean);
81 typedef void(INTERNAL_GL_APIENTRY *PFNGLCULLFACEPROC)(GLenum);
82 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEPTHFUNCPROC)(GLenum);
83 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEPTHMASKPROC)(GLboolean);
84 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEPTHRANGEPROC)(GLdouble, GLdouble);
85 typedef void(INTERNAL_GL_APIENTRY *PFNGLDISABLEPROC)(GLenum);
86 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWBUFFERPROC)(GLenum);
87 typedef void(INTERNAL_GL_APIENTRY *PFNGLENABLEPROC)(GLenum);
88 typedef void(INTERNAL_GL_APIENTRY *PFNGLFINISHPROC)();
89 typedef void(INTERNAL_GL_APIENTRY *PFNGLFLUSHPROC)();
90 typedef void(INTERNAL_GL_APIENTRY *PFNGLFRONTFACEPROC)(GLenum);
91 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETBOOLEANVPROC)(GLenum, GLboolean *);
92 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETDOUBLEVPROC)(GLenum, GLdouble *);
93 typedef GLenum(INTERNAL_GL_APIENTRY *PFNGLGETERRORPROC)();
94 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETFLOATVPROC)(GLenum, GLfloat *);
95 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETINTEGERVPROC)(GLenum, GLint *);
96 typedef const GLubyte *(INTERNAL_GL_APIENTRY *PFNGLGETSTRINGPROC)(GLenum);
97 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXIMAGEPROC)(GLenum, GLint, GLenum, GLenum, GLvoid *);
98 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum,
99                                                                     GLint,
100                                                                     GLenum,
101                                                                     GLfloat *);
102 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum, GLint, GLenum, GLint *);
103 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXPARAMETERFVPROC)(GLenum, GLenum, GLfloat *);
104 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXPARAMETERIVPROC)(GLenum, GLenum, GLint *);
105 typedef void(INTERNAL_GL_APIENTRY *PFNGLHINTPROC)(GLenum, GLenum);
106 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISENABLEDPROC)(GLenum);
107 typedef void(INTERNAL_GL_APIENTRY *PFNGLLINEWIDTHPROC)(GLfloat);
108 typedef void(INTERNAL_GL_APIENTRY *PFNGLLOGICOPPROC)(GLenum);
109 typedef void(INTERNAL_GL_APIENTRY *PFNGLPIXELSTOREFPROC)(GLenum, GLfloat);
110 typedef void(INTERNAL_GL_APIENTRY *PFNGLPIXELSTOREIPROC)(GLenum, GLint);
111 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOINTSIZEPROC)(GLfloat);
112 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOLYGONMODEPROC)(GLenum, GLenum);
113 typedef void(INTERNAL_GL_APIENTRY *PFNGLREADBUFFERPROC)(GLenum);
114 typedef void(INTERNAL_GL_APIENTRY
115                  *PFNGLREADPIXELSPROC)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
116 typedef void(INTERNAL_GL_APIENTRY *PFNGLSCISSORPROC)(GLint, GLint, GLsizei, GLsizei);
117 typedef void(INTERNAL_GL_APIENTRY *PFNGLSTENCILFUNCPROC)(GLenum, GLint, GLuint);
118 typedef void(INTERNAL_GL_APIENTRY *PFNGLSTENCILMASKPROC)(GLuint);
119 typedef void(INTERNAL_GL_APIENTRY *PFNGLSTENCILOPPROC)(GLenum, GLenum, GLenum);
120 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXIMAGE1DPROC)(GLenum,
121                                                         GLint,
122                                                         GLint,
123                                                         GLsizei,
124                                                         GLint,
125                                                         GLenum,
126                                                         GLenum,
127                                                         const GLvoid *);
128 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXIMAGE2DPROC)(GLenum,
129                                                         GLint,
130                                                         GLint,
131                                                         GLsizei,
132                                                         GLsizei,
133                                                         GLint,
134                                                         GLenum,
135                                                         GLenum,
136                                                         const GLvoid *);
137 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXPARAMETERFPROC)(GLenum, GLenum, GLfloat);
138 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXPARAMETERFVPROC)(GLenum, GLenum, const GLfloat *);
139 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXPARAMETERIPROC)(GLenum, GLenum, GLint);
140 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXPARAMETERIVPROC)(GLenum, GLenum, const GLint *);
141 typedef void(INTERNAL_GL_APIENTRY *PFNGLVIEWPORTPROC)(GLint, GLint, GLsizei, GLsizei);
142 
143 // 1.1
144 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDTEXTUREPROC)(GLenum, GLuint);
145 typedef void(INTERNAL_GL_APIENTRY
146                  *PFNGLCOPYTEXIMAGE1DPROC)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
147 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYTEXIMAGE2DPROC)(GLenum,
148                                                             GLint,
149                                                             GLenum,
150                                                             GLint,
151                                                             GLint,
152                                                             GLsizei,
153                                                             GLsizei,
154                                                             GLint);
155 typedef void(
156     INTERNAL_GL_APIENTRY *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
157 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum,
158                                                                GLint,
159                                                                GLint,
160                                                                GLint,
161                                                                GLint,
162                                                                GLint,
163                                                                GLsizei,
164                                                                GLsizei);
165 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETETEXTURESPROC)(GLsizei, const GLuint *);
166 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWARRAYSPROC)(GLenum, GLint, GLsizei);
167 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWELEMENTSPROC)(GLenum, GLsizei, GLenum, const GLvoid *);
168 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENTEXTURESPROC)(GLsizei, GLuint *);
169 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISTEXTUREPROC)(GLuint);
170 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOLYGONOFFSETPROC)(GLfloat, GLfloat);
171 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSUBIMAGE1DPROC)(GLenum,
172                                                            GLint,
173                                                            GLint,
174                                                            GLsizei,
175                                                            GLenum,
176                                                            GLenum,
177                                                            const GLvoid *);
178 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSUBIMAGE2DPROC)(GLenum,
179                                                            GLint,
180                                                            GLint,
181                                                            GLint,
182                                                            GLsizei,
183                                                            GLsizei,
184                                                            GLenum,
185                                                            GLenum,
186                                                            const GLvoid *);
187 
188 // 1.2
189 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDCOLORPROC)(GLfloat, GLfloat, GLfloat, GLfloat);
190 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDEQUATIONPROC)(GLenum);
191 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum,
192                                                                GLint,
193                                                                GLint,
194                                                                GLint,
195                                                                GLint,
196                                                                GLint,
197                                                                GLint,
198                                                                GLsizei,
199                                                                GLsizei);
200 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWRANGEELEMENTSPROC)(GLenum,
201                                                                GLuint,
202                                                                GLuint,
203                                                                GLsizei,
204                                                                GLenum,
205                                                                const GLvoid *);
206 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXIMAGE3DPROC)(GLenum,
207                                                         GLint,
208                                                         GLint,
209                                                         GLsizei,
210                                                         GLsizei,
211                                                         GLsizei,
212                                                         GLint,
213                                                         GLenum,
214                                                         GLenum,
215                                                         const GLvoid *);
216 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSUBIMAGE3DPROC)(GLenum,
217                                                            GLint,
218                                                            GLint,
219                                                            GLint,
220                                                            GLint,
221                                                            GLsizei,
222                                                            GLsizei,
223                                                            GLsizei,
224                                                            GLenum,
225                                                            GLenum,
226                                                            const GLvoid *);
227 
228 // 1.2 Extensions
229 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETEFENCESNVPROC)(GLsizei, const GLuint *);
230 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENFENCESNVPROC)(GLsizei, GLuint *);
231 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISFENCENVPROC)(GLuint);
232 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLTESTFENCENVPROC)(GLuint);
233 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETFENCEIVNVPROC)(GLuint, GLenum, GLint *);
234 typedef void(INTERNAL_GL_APIENTRY *PFNGLFINISHFENCENVPROC)(GLuint);
235 typedef void(INTERNAL_GL_APIENTRY *PFNGLSETFENCENVPROC)(GLuint, GLenum);
236 
237 // 1.3
238 typedef void(INTERNAL_GL_APIENTRY *PFNGLACTIVETEXTUREPROC)(GLenum);
239 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum,
240                                                                   GLint,
241                                                                   GLenum,
242                                                                   GLsizei,
243                                                                   GLint,
244                                                                   GLsizei,
245                                                                   const GLvoid *);
246 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum,
247                                                                   GLint,
248                                                                   GLenum,
249                                                                   GLsizei,
250                                                                   GLsizei,
251                                                                   GLint,
252                                                                   GLsizei,
253                                                                   const GLvoid *);
254 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum,
255                                                                   GLint,
256                                                                   GLenum,
257                                                                   GLsizei,
258                                                                   GLsizei,
259                                                                   GLsizei,
260                                                                   GLint,
261                                                                   GLsizei,
262                                                                   const GLvoid *);
263 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum,
264                                                                      GLint,
265                                                                      GLint,
266                                                                      GLsizei,
267                                                                      GLenum,
268                                                                      GLsizei,
269                                                                      const GLvoid *);
270 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum,
271                                                                      GLint,
272                                                                      GLint,
273                                                                      GLint,
274                                                                      GLsizei,
275                                                                      GLsizei,
276                                                                      GLenum,
277                                                                      GLsizei,
278                                                                      const GLvoid *);
279 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum,
280                                                                      GLint,
281                                                                      GLint,
282                                                                      GLint,
283                                                                      GLint,
284                                                                      GLsizei,
285                                                                      GLsizei,
286                                                                      GLsizei,
287                                                                      GLenum,
288                                                                      GLsizei,
289                                                                      const GLvoid *);
290 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum, GLint, GLvoid *);
291 typedef void(INTERNAL_GL_APIENTRY *PFNGLSAMPLECOVERAGEPROC)(GLfloat, GLboolean);
292 
293 // 1.4
294 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDFUNCSEPARATEPROC)(GLenum, GLenum, GLenum, GLenum);
295 typedef void(INTERNAL_GL_APIENTRY *PFNGLMULTIDRAWARRAYSPROC)(GLenum,
296                                                              const GLint *,
297                                                              const GLsizei *,
298                                                              GLsizei);
299 typedef void(INTERNAL_GL_APIENTRY *PFNGLMULTIDRAWELEMENTSPROC)(GLenum,
300                                                                const GLsizei *,
301                                                                GLenum,
302                                                                const GLvoid *const *,
303                                                                GLsizei);
304 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOINTPARAMETERFPROC)(GLenum, GLfloat);
305 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOINTPARAMETERFVPROC)(GLenum, const GLfloat *);
306 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOINTPARAMETERIPROC)(GLenum, GLint);
307 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOINTPARAMETERIVPROC)(GLenum, const GLint *);
308 
309 // 1.5
310 typedef void(INTERNAL_GL_APIENTRY *PFNGLBEGINQUERYPROC)(GLenum, GLuint);
311 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDBUFFERPROC)(GLenum, GLuint);
312 typedef void(INTERNAL_GL_APIENTRY *PFNGLBUFFERDATAPROC)(GLenum, GLsizeiptr, const GLvoid *, GLenum);
313 typedef void(INTERNAL_GL_APIENTRY *PFNGLBUFFERSUBDATAPROC)(GLenum,
314                                                            GLintptr,
315                                                            GLsizeiptr,
316                                                            const GLvoid *);
317 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETEBUFFERSPROC)(GLsizei, const GLuint *);
318 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETEQUERIESPROC)(GLsizei, const GLuint *);
319 typedef void(INTERNAL_GL_APIENTRY *PFNGLENDQUERYPROC)(GLenum);
320 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENBUFFERSPROC)(GLsizei, GLuint *);
321 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENQUERIESPROC)(GLsizei, GLuint *);
322 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum, GLenum, GLint *);
323 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETBUFFERPOINTERVPROC)(GLenum, GLenum, GLvoid **);
324 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETBUFFERSUBDATAPROC)(GLenum,
325                                                               GLintptr,
326                                                               GLsizeiptr,
327                                                               GLvoid *);
328 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYOBJECTIVPROC)(GLuint, GLenum, GLint *);
329 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYOBJECTUIVPROC)(GLuint, GLenum, GLuint *);
330 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYIVPROC)(GLenum, GLenum, GLint *);
331 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISBUFFERPROC)(GLuint);
332 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISQUERYPROC)(GLuint);
333 typedef void *(INTERNAL_GL_APIENTRY *PFNGLMAPBUFFERPROC)(GLenum, GLenum);
334 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLUNMAPBUFFERPROC)(GLenum);
335 
336 // 2.0
337 typedef void(INTERNAL_GL_APIENTRY *PFNGLATTACHSHADERPROC)(GLuint, GLuint);
338 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDATTRIBLOCATIONPROC)(GLuint, GLuint, const GLchar *);
339 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum, GLenum);
340 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPILESHADERPROC)(GLuint);
341 typedef GLuint(INTERNAL_GL_APIENTRY *PFNGLCREATEPROGRAMPROC)();
342 typedef GLuint(INTERNAL_GL_APIENTRY *PFNGLCREATESHADERPROC)(GLenum);
343 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETEPROGRAMPROC)(GLuint);
344 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETESHADERPROC)(GLuint);
345 typedef void(INTERNAL_GL_APIENTRY *PFNGLDETACHSHADERPROC)(GLuint, GLuint);
346 typedef void(INTERNAL_GL_APIENTRY *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint);
347 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWBUFFERSPROC)(GLsizei, const GLenum *);
348 typedef void(INTERNAL_GL_APIENTRY *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint);
349 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVEATTRIBPROC)(GLuint,
350                                                              GLuint,
351                                                              GLsizei,
352                                                              GLsizei *,
353                                                              GLint *,
354                                                              GLenum *,
355                                                              GLchar *);
356 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVEUNIFORMPROC)(GLuint,
357                                                               GLuint,
358                                                               GLsizei,
359                                                               GLsizei *,
360                                                               GLint *,
361                                                               GLenum *,
362                                                               GLchar *);
363 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETATTACHEDSHADERSPROC)(GLuint,
364                                                                 GLsizei,
365                                                                 GLsizei *,
366                                                                 GLuint *);
367 typedef GLint(INTERNAL_GL_APIENTRY *PFNGLGETATTRIBLOCATIONPROC)(GLuint, const GLchar *);
368 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMINFOLOGPROC)(GLuint,
369                                                                GLsizei,
370                                                                GLsizei *,
371                                                                GLchar *);
372 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMIVPROC)(GLuint, GLenum, GLint *);
373 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSHADERINFOLOGPROC)(GLuint, GLsizei, GLsizei *, GLchar *);
374 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSHADERSOURCEPROC)(GLuint, GLsizei, GLsizei *, GLchar *);
375 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSHADERIVPROC)(GLuint, GLenum, GLint *);
376 typedef GLint(INTERNAL_GL_APIENTRY *PFNGLGETUNIFORMLOCATIONPROC)(GLuint, const GLchar *);
377 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETUNIFORMFVPROC)(GLuint, GLint, GLfloat *);
378 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETUNIFORMIVPROC)(GLuint, GLint, GLint *);
379 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint, GLenum, GLvoid **);
380 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXATTRIBDVPROC)(GLuint, GLenum, GLdouble *);
381 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXATTRIBFVPROC)(GLuint, GLenum, GLfloat *);
382 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXATTRIBIVPROC)(GLuint, GLenum, GLint *);
383 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISPROGRAMPROC)(GLuint);
384 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISSHADERPROC)(GLuint);
385 typedef void(INTERNAL_GL_APIENTRY *PFNGLLINKPROGRAMPROC)(GLuint);
386 typedef void(INTERNAL_GL_APIENTRY *PFNGLSHADERSOURCEPROC)(GLuint,
387                                                           GLsizei,
388                                                           const GLchar *const *,
389                                                           const GLint *);
390 typedef void(INTERNAL_GL_APIENTRY *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum, GLenum, GLint, GLuint);
391 typedef void(INTERNAL_GL_APIENTRY *PFNGLSTENCILMASKSEPARATEPROC)(GLenum, GLuint);
392 typedef void(INTERNAL_GL_APIENTRY *PFNGLSTENCILOPSEPARATEPROC)(GLenum, GLenum, GLenum, GLenum);
393 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM1FPROC)(GLint, GLfloat);
394 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM1FVPROC)(GLint, GLsizei, const GLfloat *);
395 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM1IPROC)(GLint, GLint);
396 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM1IVPROC)(GLint, GLsizei, const GLint *);
397 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM2FPROC)(GLint, GLfloat, GLfloat);
398 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM2FVPROC)(GLint, GLsizei, const GLfloat *);
399 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM2IPROC)(GLint, GLint, GLint);
400 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM2IVPROC)(GLint, GLsizei, const GLint *);
401 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM3FPROC)(GLint, GLfloat, GLfloat, GLfloat);
402 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM3FVPROC)(GLint, GLsizei, const GLfloat *);
403 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM3IPROC)(GLint, GLint, GLint, GLint);
404 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM3IVPROC)(GLint, GLsizei, const GLint *);
405 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM4FPROC)(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
406 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM4FVPROC)(GLint, GLsizei, const GLfloat *);
407 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM4IPROC)(GLint, GLint, GLint, GLint, GLint);
408 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM4IVPROC)(GLint, GLsizei, const GLint *);
409 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX2FVPROC)(GLint,
410                                                               GLsizei,
411                                                               GLboolean,
412                                                               const GLfloat *);
413 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX3FVPROC)(GLint,
414                                                               GLsizei,
415                                                               GLboolean,
416                                                               const GLfloat *);
417 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX4FVPROC)(GLint,
418                                                               GLsizei,
419                                                               GLboolean,
420                                                               const GLfloat *);
421 typedef void(INTERNAL_GL_APIENTRY *PFNGLUSEPROGRAMPROC)(GLuint);
422 typedef void(INTERNAL_GL_APIENTRY *PFNGLVALIDATEPROGRAMPROC)(GLuint);
423 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB1DPROC)(GLuint, GLdouble);
424 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB1DVPROC)(GLuint, const GLdouble *);
425 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB1FPROC)(GLuint, GLfloat);
426 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB1FVPROC)(GLuint, const GLfloat *);
427 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB1SPROC)(GLuint, GLshort);
428 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB1SVPROC)(GLuint, const GLshort *);
429 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB2DPROC)(GLuint, GLdouble, GLdouble);
430 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB2DVPROC)(GLuint, const GLdouble *);
431 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB2FPROC)(GLuint, GLfloat, GLfloat);
432 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB2FVPROC)(GLuint, const GLfloat *);
433 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB2SPROC)(GLuint, GLshort, GLshort);
434 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB2SVPROC)(GLuint, const GLshort *);
435 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB3DPROC)(GLuint, GLdouble, GLdouble, GLdouble);
436 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB3DVPROC)(GLuint, const GLdouble *);
437 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB3FPROC)(GLuint, GLfloat, GLfloat, GLfloat);
438 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB3FVPROC)(GLuint, const GLfloat *);
439 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB3SPROC)(GLuint, GLshort, GLshort, GLshort);
440 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB3SVPROC)(GLuint, const GLshort *);
441 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4NBVPROC)(GLuint, const GLbyte *);
442 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4NIVPROC)(GLuint, const GLint *);
443 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4NSVPROC)(GLuint, const GLshort *);
444 typedef void(
445     INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4NUBPROC)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
446 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint, const GLubyte *);
447 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint, const GLuint *);
448 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint, const GLushort *);
449 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4BVPROC)(GLuint, const GLbyte *);
450 typedef void(
451     INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4DPROC)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
452 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4DVPROC)(GLuint, const GLdouble *);
453 typedef void(
454     INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4FPROC)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
455 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4FVPROC)(GLuint, const GLfloat *);
456 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4IVPROC)(GLuint, const GLint *);
457 typedef void(
458     INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4SPROC)(GLuint, GLshort, GLshort, GLshort, GLshort);
459 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4SVPROC)(GLuint, const GLshort *);
460 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4UBVPROC)(GLuint, const GLubyte *);
461 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4UIVPROC)(GLuint, const GLuint *);
462 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIB4USVPROC)(GLuint, const GLushort *);
463 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint,
464                                                                  GLint,
465                                                                  GLenum,
466                                                                  GLboolean,
467                                                                  GLsizei,
468                                                                  const GLvoid *);
469 
470 // 2.1
471 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint,
472                                                                 GLsizei,
473                                                                 GLboolean,
474                                                                 const GLfloat *);
475 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint,
476                                                                 GLsizei,
477                                                                 GLboolean,
478                                                                 const GLfloat *);
479 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint,
480                                                                 GLsizei,
481                                                                 GLboolean,
482                                                                 const GLfloat *);
483 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint,
484                                                                 GLsizei,
485                                                                 GLboolean,
486                                                                 const GLfloat *);
487 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint,
488                                                                 GLsizei,
489                                                                 GLboolean,
490                                                                 const GLfloat *);
491 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint,
492                                                                 GLsizei,
493                                                                 GLboolean,
494                                                                 const GLfloat *);
495 
496 // 3.0
497 typedef void(INTERNAL_GL_APIENTRY *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint, GLenum);
498 typedef void(INTERNAL_GL_APIENTRY *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum);
499 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDBUFFERBASEPROC)(GLenum, GLuint, GLuint);
500 typedef void(
501     INTERNAL_GL_APIENTRY *PFNGLBINDBUFFERRANGEPROC)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
502 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint, GLuint, const GLchar *);
503 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDFRAMEBUFFERPROC)(GLenum, GLuint);
504 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDRENDERBUFFERPROC)(GLenum, GLuint);
505 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDVERTEXARRAYPROC)(GLuint);
506 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLITFRAMEBUFFERPROC)(GLint,
507                                                              GLint,
508                                                              GLint,
509                                                              GLint,
510                                                              GLint,
511                                                              GLint,
512                                                              GLint,
513                                                              GLint,
514                                                              GLbitfield,
515                                                              GLenum);
516 typedef GLenum(INTERNAL_GL_APIENTRY *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum);
517 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLAMPCOLORPROC)(GLenum, GLenum);
518 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARBUFFERFIPROC)(GLenum, GLint, GLfloat, GLint);
519 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARBUFFERFVPROC)(GLenum, GLint, const GLfloat *);
520 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARBUFFERIVPROC)(GLenum, GLint, const GLint *);
521 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARBUFFERUIVPROC)(GLenum, GLint, const GLuint *);
522 typedef void(
523     INTERNAL_GL_APIENTRY *PFNGLCOLORMASKIPROC)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
524 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei, const GLuint *);
525 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETERENDERBUFFERSPROC)(GLsizei, const GLuint *);
526 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei, const GLuint *);
527 typedef void(INTERNAL_GL_APIENTRY *PFNGLDISABLEIPROC)(GLenum, GLuint);
528 typedef void(INTERNAL_GL_APIENTRY *PFNGLENABLEIPROC)(GLenum, GLuint);
529 typedef void(INTERNAL_GL_APIENTRY *PFNGLENDCONDITIONALRENDERPROC)();
530 typedef void(INTERNAL_GL_APIENTRY *PFNGLENDTRANSFORMFEEDBACKPROC)();
531 typedef void(INTERNAL_GL_APIENTRY *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum, GLintptr, GLsizeiptr);
532 typedef void(INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum,
533                                                                      GLenum,
534                                                                      GLenum,
535                                                                      GLuint);
536 typedef void(
537     INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum, GLenum, GLenum, GLuint, GLint);
538 typedef void(
539     INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum, GLenum, GLenum, GLuint, GLint);
540 typedef void(INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum,
541                                                                   GLenum,
542                                                                   GLenum,
543                                                                   GLuint,
544                                                                   GLint,
545                                                                   GLint);
546 typedef void(
547     INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum, GLenum, GLuint, GLint, GLint);
548 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENFRAMEBUFFERSPROC)(GLsizei, GLuint *);
549 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENRENDERBUFFERSPROC)(GLsizei, GLuint *);
550 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENVERTEXARRAYSPROC)(GLsizei, GLuint *);
551 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENERATEMIPMAPPROC)(GLenum);
552 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETBOOLEANI_VPROC)(GLenum, GLuint, GLboolean *);
553 typedef GLint(INTERNAL_GL_APIENTRY *PFNGLGETFRAGDATALOCATIONPROC)(GLuint, const GLchar *);
554 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum,
555                                                                                  GLenum,
556                                                                                  GLenum,
557                                                                                  GLint *);
558 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETINTEGERI_VPROC)(GLenum, GLuint, GLint *);
559 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum, GLenum, GLint *);
560 typedef const GLubyte *(INTERNAL_GL_APIENTRY *PFNGLGETSTRINGIPROC)(GLenum, GLuint);
561 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXPARAMETERIIVPROC)(GLenum, GLenum, GLint *);
562 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum, GLenum, GLuint *);
563 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint,
564                                                                          GLuint,
565                                                                          GLsizei,
566                                                                          GLsizei *,
567                                                                          GLsizei *,
568                                                                          GLenum *,
569                                                                          GLchar *);
570 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETUNIFORMUIVPROC)(GLuint, GLint, GLuint *);
571 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint, GLenum, GLint *);
572 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint, GLenum, GLuint *);
573 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISENABLEDIPROC)(GLenum, GLuint);
574 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISFRAMEBUFFERPROC)(GLuint);
575 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISRENDERBUFFERPROC)(GLuint);
576 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISVERTEXARRAYPROC)(GLuint);
577 typedef void *(INTERNAL_GL_APIENTRY *PFNGLMAPBUFFERRANGEPROC)(GLenum,
578                                                               GLintptr,
579                                                               GLsizeiptr,
580                                                               GLbitfield);
581 typedef void(INTERNAL_GL_APIENTRY *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum, GLenum, GLsizei, GLsizei);
582 typedef void(INTERNAL_GL_APIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum,
583                                                                             GLsizei,
584                                                                             GLenum,
585                                                                             GLsizei,
586                                                                             GLsizei);
587 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXPARAMETERIIVPROC)(GLenum, GLenum, const GLint *);
588 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXPARAMETERIUIVPROC)(GLenum, GLenum, const GLuint *);
589 typedef void(INTERNAL_GL_APIENTRY *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint,
590                                                                        GLsizei,
591                                                                        const GLchar *const *,
592                                                                        GLenum);
593 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM1UIPROC)(GLint, GLuint);
594 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM1UIVPROC)(GLint, GLsizei, const GLuint *);
595 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM2UIPROC)(GLint, GLuint, GLuint);
596 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM2UIVPROC)(GLint, GLsizei, const GLuint *);
597 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM3UIPROC)(GLint, GLuint, GLuint, GLuint);
598 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM3UIVPROC)(GLint, GLsizei, const GLuint *);
599 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM4UIPROC)(GLint, GLuint, GLuint, GLuint, GLuint);
600 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM4UIVPROC)(GLint, GLsizei, const GLuint *);
601 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI1IPROC)(GLuint, GLint);
602 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI1IVPROC)(GLuint, const GLint *);
603 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI1UIPROC)(GLuint, GLuint);
604 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint, const GLuint *);
605 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI2IPROC)(GLuint, GLint, GLint);
606 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI2IVPROC)(GLuint, const GLint *);
607 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI2UIPROC)(GLuint, GLuint, GLuint);
608 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint, const GLuint *);
609 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI3IPROC)(GLuint, GLint, GLint, GLint);
610 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI3IVPROC)(GLuint, const GLint *);
611 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI3UIPROC)(GLuint, GLuint, GLuint, GLuint);
612 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint, const GLuint *);
613 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI4BVPROC)(GLuint, const GLbyte *);
614 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI4IPROC)(GLuint, GLint, GLint, GLint, GLint);
615 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI4IVPROC)(GLuint, const GLint *);
616 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI4SVPROC)(GLuint, const GLshort *);
617 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint, const GLubyte *);
618 typedef void(
619     INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI4UIPROC)(GLuint, GLuint, GLuint, GLuint, GLuint);
620 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint, const GLuint *);
621 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBI4USVPROC)(GLuint, const GLushort *);
622 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint,
623                                                                   GLint,
624                                                                   GLenum,
625                                                                   GLsizei,
626                                                                   const GLvoid *);
627 
628 // 3.1
629 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum,
630                                                                GLenum,
631                                                                GLintptr,
632                                                                GLintptr,
633                                                                GLsizeiptr);
634 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum, GLint, GLsizei, GLsizei);
635 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum,
636                                                                    GLsizei,
637                                                                    GLenum,
638                                                                    const GLvoid *,
639                                                                    GLsizei);
640 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint,
641                                                                        GLuint,
642                                                                        GLsizei,
643                                                                        GLsizei *,
644                                                                        GLchar *);
645 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint,
646                                                                      GLuint,
647                                                                      GLenum,
648                                                                      GLint *);
649 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint,
650                                                                   GLuint,
651                                                                   GLsizei,
652                                                                   GLsizei *,
653                                                                   GLchar *);
654 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint,
655                                                                  GLsizei,
656                                                                  const GLuint *,
657                                                                  GLenum,
658                                                                  GLint *);
659 typedef GLuint(INTERNAL_GL_APIENTRY *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint, const GLchar *);
660 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETUNIFORMINDICESPROC)(GLuint,
661                                                                GLsizei,
662                                                                const GLchar *const *,
663                                                                GLuint *);
664 typedef void(INTERNAL_GL_APIENTRY *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint);
665 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXBUFFERPROC)(GLenum, GLenum, GLuint);
666 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint, GLuint, GLuint);
667 
668 // 3.2
669 typedef GLenum(INTERNAL_GL_APIENTRY *PFNGLCLIENTWAITSYNCPROC)(GLsync, GLbitfield, GLuint64);
670 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETESYNCPROC)(GLsync);
671 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum,
672                                                                     GLsizei,
673                                                                     GLenum,
674                                                                     const GLvoid *,
675                                                                     GLint);
676 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum,
677                                                                              GLsizei,
678                                                                              GLenum,
679                                                                              const GLvoid *,
680                                                                              GLsizei,
681                                                                              GLint);
682 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum,
683                                                                          GLuint,
684                                                                          GLuint,
685                                                                          GLsizei,
686                                                                          GLenum,
687                                                                          const GLvoid *,
688                                                                          GLint);
689 typedef GLsync(INTERNAL_GL_APIENTRY *PFNGLFENCESYNCPROC)(GLenum, GLbitfield);
690 typedef void(INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum, GLenum, GLuint, GLint);
691 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum, GLenum, GLint64 *);
692 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETINTEGER64I_VPROC)(GLenum, GLuint, GLint64 *);
693 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETINTEGER64VPROC)(GLenum, GLint64 *);
694 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETMULTISAMPLEFVPROC)(GLenum, GLuint, GLfloat *);
695 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSYNCIVPROC)(GLsync, GLenum, GLsizei, GLsizei *, GLint *);
696 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISSYNCPROC)(GLsync);
697 typedef void(INTERNAL_GL_APIENTRY *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum,
698                                                                          const GLsizei *,
699                                                                          GLenum,
700                                                                          const GLvoid *const *,
701                                                                          GLsizei,
702                                                                          const GLint *);
703 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROVOKINGVERTEXPROC)(GLenum);
704 typedef void(INTERNAL_GL_APIENTRY *PFNGLSAMPLEMASKIPROC)(GLuint, GLbitfield);
705 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum,
706                                                                    GLsizei,
707                                                                    GLenum,
708                                                                    GLsizei,
709                                                                    GLsizei,
710                                                                    GLboolean);
711 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum,
712                                                                    GLsizei,
713                                                                    GLenum,
714                                                                    GLsizei,
715                                                                    GLsizei,
716                                                                    GLsizei,
717                                                                    GLboolean);
718 typedef void(INTERNAL_GL_APIENTRY *PFNGLWAITSYNCPROC)(GLsync, GLbitfield, GLuint64);
719 
720 // 3.3
721 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint,
722                                                                          GLuint,
723                                                                          GLuint,
724                                                                          const GLchar *);
725 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDSAMPLERPROC)(GLuint, GLuint);
726 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETESAMPLERSPROC)(GLsizei, const GLuint *);
727 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENSAMPLERSPROC)(GLsizei, GLuint *);
728 typedef GLint(INTERNAL_GL_APIENTRY *PFNGLGETFRAGDATAINDEXPROC)(GLuint, const GLchar *);
729 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYOBJECTI64VPROC)(GLuint, GLenum, GLint64 *);
730 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint, GLenum, GLuint64 *);
731 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint, GLenum, GLint *);
732 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint, GLenum, GLuint *);
733 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint, GLenum, GLfloat *);
734 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint, GLenum, GLint *);
735 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISSAMPLERPROC)(GLuint);
736 typedef void(INTERNAL_GL_APIENTRY *PFNGLQUERYCOUNTERPROC)(GLuint, GLenum);
737 typedef void(INTERNAL_GL_APIENTRY *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint, GLenum, const GLint *);
738 typedef void(INTERNAL_GL_APIENTRY *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint, GLenum, const GLuint *);
739 typedef void(INTERNAL_GL_APIENTRY *PFNGLSAMPLERPARAMETERFPROC)(GLuint, GLenum, GLfloat);
740 typedef void(INTERNAL_GL_APIENTRY *PFNGLSAMPLERPARAMETERFVPROC)(GLuint, GLenum, const GLfloat *);
741 typedef void(INTERNAL_GL_APIENTRY *PFNGLSAMPLERPARAMETERIPROC)(GLuint, GLenum, GLint);
742 typedef void(INTERNAL_GL_APIENTRY *PFNGLSAMPLERPARAMETERIVPROC)(GLuint, GLenum, const GLint *);
743 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint, GLuint);
744 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBP1UIPROC)(GLuint, GLenum, GLboolean, GLuint);
745 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint,
746                                                                GLenum,
747                                                                GLboolean,
748                                                                const GLuint *);
749 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBP2UIPROC)(GLuint, GLenum, GLboolean, GLuint);
750 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint,
751                                                                GLenum,
752                                                                GLboolean,
753                                                                const GLuint *);
754 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBP3UIPROC)(GLuint, GLenum, GLboolean, GLuint);
755 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint,
756                                                                GLenum,
757                                                                GLboolean,
758                                                                const GLuint *);
759 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBP4UIPROC)(GLuint, GLenum, GLboolean, GLuint);
760 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint,
761                                                                GLenum,
762                                                                GLboolean,
763                                                                const GLuint *);
764 
765 // 4.0
766 typedef void(INTERNAL_GL_APIENTRY *PFNGLBEGINQUERYINDEXEDPROC)(GLenum, GLuint, GLuint);
767 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum, GLuint);
768 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint, GLenum, GLenum);
769 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDEQUATIONIPROC)(GLuint, GLenum);
770 typedef void(
771     INTERNAL_GL_APIENTRY *PFNGLBLENDFUNCSEPARATEIPROC)(GLuint, GLenum, GLenum, GLenum, GLenum);
772 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDFUNCIPROC)(GLuint, GLenum, GLenum);
773 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei, const GLuint *);
774 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWARRAYSINDIRECTPROC)(GLenum, const void *);
775 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum, GLenum, const void *);
776 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum, GLuint);
777 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum, GLuint, GLuint);
778 typedef void(INTERNAL_GL_APIENTRY *PFNGLENDQUERYINDEXEDPROC)(GLenum, GLuint);
779 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei, GLuint *);
780 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint,
781                                                                      GLenum,
782                                                                      GLuint,
783                                                                      GLsizei,
784                                                                      GLsizei *,
785                                                                      GLchar *);
786 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint,
787                                                                             GLenum,
788                                                                             GLuint,
789                                                                             GLsizei,
790                                                                             GLsizei *,
791                                                                             GLchar *);
792 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint,
793                                                                           GLenum,
794                                                                           GLuint,
795                                                                           GLenum,
796                                                                           GLint *);
797 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMSTAGEIVPROC)(GLuint, GLenum, GLenum, GLint *);
798 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYINDEXEDIVPROC)(GLenum, GLuint, GLenum, GLint *);
799 typedef GLuint(INTERNAL_GL_APIENTRY *PFNGLGETSUBROUTINEINDEXPROC)(GLuint, GLenum, const GLchar *);
800 typedef GLint(INTERNAL_GL_APIENTRY *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint,
801                                                                            GLenum,
802                                                                            const GLchar *);
803 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum, GLint, GLuint *);
804 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETUNIFORMDVPROC)(GLuint, GLint, GLdouble *);
805 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISTRANSFORMFEEDBACKPROC)(GLuint);
806 typedef void(INTERNAL_GL_APIENTRY *PFNGLMINSAMPLESHADINGPROC)(GLfloat);
807 typedef void(INTERNAL_GL_APIENTRY *PFNGLPATCHPARAMETERFVPROC)(GLenum, const GLfloat *);
808 typedef void(INTERNAL_GL_APIENTRY *PFNGLPATCHPARAMETERIPROC)(GLenum, GLint);
809 typedef void(INTERNAL_GL_APIENTRY *PFNGLPAUSETRANSFORMFEEDBACKPROC)();
810 typedef void(INTERNAL_GL_APIENTRY *PFNGLRESUMETRANSFORMFEEDBACKPROC)();
811 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM1DPROC)(GLint, GLdouble);
812 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM1DVPROC)(GLint, GLsizei, const GLdouble *);
813 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM2DPROC)(GLint, GLdouble, GLdouble);
814 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM2DVPROC)(GLint, GLsizei, const GLdouble *);
815 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM3DPROC)(GLint, GLdouble, GLdouble, GLdouble);
816 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM3DVPROC)(GLint, GLsizei, const GLdouble *);
817 typedef void(
818     INTERNAL_GL_APIENTRY *PFNGLUNIFORM4DPROC)(GLint, GLdouble, GLdouble, GLdouble, GLdouble);
819 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORM4DVPROC)(GLint, GLsizei, const GLdouble *);
820 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX2DVPROC)(GLint,
821                                                               GLsizei,
822                                                               GLboolean,
823                                                               const GLdouble *);
824 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX2X3DVPROC)(GLint,
825                                                                 GLsizei,
826                                                                 GLboolean,
827                                                                 const GLdouble *);
828 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX2X4DVPROC)(GLint,
829                                                                 GLsizei,
830                                                                 GLboolean,
831                                                                 const GLdouble *);
832 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX3DVPROC)(GLint,
833                                                               GLsizei,
834                                                               GLboolean,
835                                                               const GLdouble *);
836 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX3X2DVPROC)(GLint,
837                                                                 GLsizei,
838                                                                 GLboolean,
839                                                                 const GLdouble *);
840 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX3X4DVPROC)(GLint,
841                                                                 GLsizei,
842                                                                 GLboolean,
843                                                                 const GLdouble *);
844 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX4DVPROC)(GLint,
845                                                               GLsizei,
846                                                               GLboolean,
847                                                               const GLdouble *);
848 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX4X2DVPROC)(GLint,
849                                                                 GLsizei,
850                                                                 GLboolean,
851                                                                 const GLdouble *);
852 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMMATRIX4X3DVPROC)(GLint,
853                                                                 GLsizei,
854                                                                 GLboolean,
855                                                                 const GLdouble *);
856 typedef void(INTERNAL_GL_APIENTRY *PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum, GLsizei, const GLuint *);
857 
858 // 4.1
859 typedef void(INTERNAL_GL_APIENTRY *PFNGLACTIVESHADERPROGRAMPROC)(GLuint, GLuint);
860 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint);
861 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARDEPTHFPROC)(GLfloat);
862 typedef GLuint(INTERNAL_GL_APIENTRY *PFNGLCREATESHADERPROGRAMVPROC)(GLenum,
863                                                                     GLsizei,
864                                                                     const GLchar *const *);
865 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei, const GLuint *);
866 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEPTHRANGEARRAYVPROC)(GLuint, GLsizei, const GLdouble *);
867 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEPTHRANGEINDEXEDPROC)(GLuint, GLdouble, GLdouble);
868 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEPTHRANGEFPROC)(GLfloat, GLfloat);
869 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei, GLuint *);
870 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETDOUBLEI_VPROC)(GLenum, GLuint, GLdouble *);
871 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETFLOATI_VPROC)(GLenum, GLuint, GLfloat *);
872 typedef void(
873     INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMBINARYPROC)(GLuint, GLsizei, GLsizei *, GLenum *, void *);
874 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint,
875                                                                        GLsizei,
876                                                                        GLsizei *,
877                                                                        GLchar *);
878 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint, GLenum, GLint *);
879 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum,
880                                                                       GLenum,
881                                                                       GLint *,
882                                                                       GLint *);
883 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXATTRIBLDVPROC)(GLuint, GLenum, GLdouble *);
884 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISPROGRAMPIPELINEPROC)(GLuint);
885 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMBINARYPROC)(GLuint, GLenum, const void *, GLsizei);
886 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMPARAMETERIPROC)(GLuint, GLenum, GLint);
887 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM1DPROC)(GLuint, GLint, GLdouble);
888 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM1DVPROC)(GLuint,
889                                                                GLint,
890                                                                GLsizei,
891                                                                const GLdouble *);
892 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM1FPROC)(GLuint, GLint, GLfloat);
893 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM1FVPROC)(GLuint,
894                                                                GLint,
895                                                                GLsizei,
896                                                                const GLfloat *);
897 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM1IPROC)(GLuint, GLint, GLint);
898 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM1IVPROC)(GLuint,
899                                                                GLint,
900                                                                GLsizei,
901                                                                const GLint *);
902 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM1UIPROC)(GLuint, GLint, GLuint);
903 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint,
904                                                                 GLint,
905                                                                 GLsizei,
906                                                                 const GLuint *);
907 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM2DPROC)(GLuint, GLint, GLdouble, GLdouble);
908 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM2DVPROC)(GLuint,
909                                                                GLint,
910                                                                GLsizei,
911                                                                const GLdouble *);
912 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM2FPROC)(GLuint, GLint, GLfloat, GLfloat);
913 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM2FVPROC)(GLuint,
914                                                                GLint,
915                                                                GLsizei,
916                                                                const GLfloat *);
917 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM2IPROC)(GLuint, GLint, GLint, GLint);
918 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM2IVPROC)(GLuint,
919                                                                GLint,
920                                                                GLsizei,
921                                                                const GLint *);
922 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM2UIPROC)(GLuint, GLint, GLuint, GLuint);
923 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint,
924                                                                 GLint,
925                                                                 GLsizei,
926                                                                 const GLuint *);
927 typedef void(
928     INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM3DPROC)(GLuint, GLint, GLdouble, GLdouble, GLdouble);
929 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM3DVPROC)(GLuint,
930                                                                GLint,
931                                                                GLsizei,
932                                                                const GLdouble *);
933 typedef void(
934     INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM3FPROC)(GLuint, GLint, GLfloat, GLfloat, GLfloat);
935 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM3FVPROC)(GLuint,
936                                                                GLint,
937                                                                GLsizei,
938                                                                const GLfloat *);
939 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM3IPROC)(GLuint, GLint, GLint, GLint, GLint);
940 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM3IVPROC)(GLuint,
941                                                                GLint,
942                                                                GLsizei,
943                                                                const GLint *);
944 typedef void(
945     INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM3UIPROC)(GLuint, GLint, GLuint, GLuint, GLuint);
946 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint,
947                                                                 GLint,
948                                                                 GLsizei,
949                                                                 const GLuint *);
950 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM4DPROC)(GLuint,
951                                                               GLint,
952                                                               GLdouble,
953                                                               GLdouble,
954                                                               GLdouble,
955                                                               GLdouble);
956 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM4DVPROC)(GLuint,
957                                                                GLint,
958                                                                GLsizei,
959                                                                const GLdouble *);
960 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM4FPROC)(GLuint,
961                                                               GLint,
962                                                               GLfloat,
963                                                               GLfloat,
964                                                               GLfloat,
965                                                               GLfloat);
966 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM4FVPROC)(GLuint,
967                                                                GLint,
968                                                                GLsizei,
969                                                                const GLfloat *);
970 typedef void(
971     INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM4IPROC)(GLuint, GLint, GLint, GLint, GLint, GLint);
972 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM4IVPROC)(GLuint,
973                                                                GLint,
974                                                                GLsizei,
975                                                                const GLint *);
976 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM4UIPROC)(GLuint,
977                                                                GLint,
978                                                                GLuint,
979                                                                GLuint,
980                                                                GLuint,
981                                                                GLuint);
982 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint,
983                                                                 GLint,
984                                                                 GLsizei,
985                                                                 const GLuint *);
986 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint,
987                                                                      GLint,
988                                                                      GLsizei,
989                                                                      GLboolean,
990                                                                      const GLdouble *);
991 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint,
992                                                                      GLint,
993                                                                      GLsizei,
994                                                                      GLboolean,
995                                                                      const GLfloat *);
996 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint,
997                                                                        GLint,
998                                                                        GLsizei,
999                                                                        GLboolean,
1000                                                                        const GLdouble *);
1001 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint,
1002                                                                        GLint,
1003                                                                        GLsizei,
1004                                                                        GLboolean,
1005                                                                        const GLfloat *);
1006 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint,
1007                                                                        GLint,
1008                                                                        GLsizei,
1009                                                                        GLboolean,
1010                                                                        const GLdouble *);
1011 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint,
1012                                                                        GLint,
1013                                                                        GLsizei,
1014                                                                        GLboolean,
1015                                                                        const GLfloat *);
1016 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint,
1017                                                                      GLint,
1018                                                                      GLsizei,
1019                                                                      GLboolean,
1020                                                                      const GLdouble *);
1021 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint,
1022                                                                      GLint,
1023                                                                      GLsizei,
1024                                                                      GLboolean,
1025                                                                      const GLfloat *);
1026 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint,
1027                                                                        GLint,
1028                                                                        GLsizei,
1029                                                                        GLboolean,
1030                                                                        const GLdouble *);
1031 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint,
1032                                                                        GLint,
1033                                                                        GLsizei,
1034                                                                        GLboolean,
1035                                                                        const GLfloat *);
1036 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint,
1037                                                                        GLint,
1038                                                                        GLsizei,
1039                                                                        GLboolean,
1040                                                                        const GLdouble *);
1041 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint,
1042                                                                        GLint,
1043                                                                        GLsizei,
1044                                                                        GLboolean,
1045                                                                        const GLfloat *);
1046 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint,
1047                                                                      GLint,
1048                                                                      GLsizei,
1049                                                                      GLboolean,
1050                                                                      const GLdouble *);
1051 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint,
1052                                                                      GLint,
1053                                                                      GLsizei,
1054                                                                      GLboolean,
1055                                                                      const GLfloat *);
1056 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint,
1057                                                                        GLint,
1058                                                                        GLsizei,
1059                                                                        GLboolean,
1060                                                                        const GLdouble *);
1061 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint,
1062                                                                        GLint,
1063                                                                        GLsizei,
1064                                                                        GLboolean,
1065                                                                        const GLfloat *);
1066 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint,
1067                                                                        GLint,
1068                                                                        GLsizei,
1069                                                                        GLboolean,
1070                                                                        const GLdouble *);
1071 typedef void(INTERNAL_GL_APIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint,
1072                                                                        GLint,
1073                                                                        GLsizei,
1074                                                                        GLboolean,
1075                                                                        const GLfloat *);
1076 typedef void(INTERNAL_GL_APIENTRY *PFNGLRELEASESHADERCOMPILERPROC)();
1077 typedef void(INTERNAL_GL_APIENTRY *PFNGLSCISSORARRAYVPROC)(GLuint, GLsizei, const GLint *);
1078 typedef void(INTERNAL_GL_APIENTRY *PFNGLSCISSORINDEXEDPROC)(GLuint, GLint, GLint, GLsizei, GLsizei);
1079 typedef void(INTERNAL_GL_APIENTRY *PFNGLSCISSORINDEXEDVPROC)(GLuint, const GLint *);
1080 typedef void(INTERNAL_GL_APIENTRY *PFNGLSHADERBINARYPROC)(GLsizei,
1081                                                           const GLuint *,
1082                                                           GLenum,
1083                                                           const void *,
1084                                                           GLsizei);
1085 typedef void(INTERNAL_GL_APIENTRY *PFNGLUSEPROGRAMSTAGESPROC)(GLuint, GLbitfield, GLuint);
1086 typedef void(INTERNAL_GL_APIENTRY *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint);
1087 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBL1DPROC)(GLuint, GLdouble);
1088 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBL1DVPROC)(GLuint, const GLdouble *);
1089 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBL2DPROC)(GLuint, GLdouble, GLdouble);
1090 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBL2DVPROC)(GLuint, const GLdouble *);
1091 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBL3DPROC)(GLuint, GLdouble, GLdouble, GLdouble);
1092 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBL3DVPROC)(GLuint, const GLdouble *);
1093 typedef void(
1094     INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBL4DPROC)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
1095 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBL4DVPROC)(GLuint, const GLdouble *);
1096 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint,
1097                                                                   GLint,
1098                                                                   GLenum,
1099                                                                   GLsizei,
1100                                                                   const void *);
1101 typedef void(INTERNAL_GL_APIENTRY *PFNGLVIEWPORTARRAYVPROC)(GLuint, GLsizei, const GLfloat *);
1102 typedef void(
1103     INTERNAL_GL_APIENTRY *PFNGLVIEWPORTINDEXEDFPROC)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
1104 typedef void(INTERNAL_GL_APIENTRY *PFNGLVIEWPORTINDEXEDFVPROC)(GLuint, const GLfloat *);
1105 
1106 // 4.2
1107 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDIMAGETEXTUREPROC)(GLuint,
1108                                                               GLuint,
1109                                                               GLint,
1110                                                               GLboolean,
1111                                                               GLint,
1112                                                               GLenum,
1113                                                               GLenum);
1114 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum,
1115                                                                              GLint,
1116                                                                              GLsizei,
1117                                                                              GLsizei,
1118                                                                              GLuint);
1119 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum,
1120                                                                                GLsizei,
1121                                                                                GLenum,
1122                                                                                const void *,
1123                                                                                GLsizei,
1124                                                                                GLuint);
1125 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(
1126     GLenum,
1127     GLsizei,
1128     GLenum,
1129     const void *,
1130     GLsizei,
1131     GLint,
1132     GLuint);
1133 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum,
1134                                                                             GLuint,
1135                                                                             GLsizei);
1136 typedef void(INTERNAL_GL_APIENTRY *PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum,
1137                                                                                   GLuint,
1138                                                                                   GLuint,
1139                                                                                   GLsizei);
1140 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint,
1141                                                                             GLuint,
1142                                                                             GLenum,
1143                                                                             GLint *);
1144 typedef void(
1145     INTERNAL_GL_APIENTRY *PFNGLGETINTERNALFORMATIVPROC)(GLenum, GLenum, GLenum, GLsizei, GLint *);
1146 typedef void(INTERNAL_GL_APIENTRY *PFNGLMEMORYBARRIERPROC)(GLbitfield);
1147 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGE1DPROC)(GLenum, GLsizei, GLenum, GLsizei);
1148 typedef void(
1149     INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGE2DPROC)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
1150 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGE3DPROC)(GLenum,
1151                                                           GLsizei,
1152                                                           GLenum,
1153                                                           GLsizei,
1154                                                           GLsizei,
1155                                                           GLsizei);
1156 
1157 // 4.3
1158 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDVERTEXBUFFERPROC)(GLuint, GLuint, GLintptr, GLsizei);
1159 typedef void(
1160     INTERNAL_GL_APIENTRY *PFNGLCLEARBUFFERDATAPROC)(GLenum, GLenum, GLenum, GLenum, const void *);
1161 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARBUFFERSUBDATAPROC)(GLenum,
1162                                                                 GLenum,
1163                                                                 GLintptr,
1164                                                                 GLsizeiptr,
1165                                                                 GLenum,
1166                                                                 GLenum,
1167                                                                 const void *);
1168 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYIMAGESUBDATAPROC)(GLuint,
1169                                                               GLenum,
1170                                                               GLint,
1171                                                               GLint,
1172                                                               GLint,
1173                                                               GLint,
1174                                                               GLuint,
1175                                                               GLenum,
1176                                                               GLint,
1177                                                               GLint,
1178                                                               GLint,
1179                                                               GLint,
1180                                                               GLsizei,
1181                                                               GLsizei,
1182                                                               GLsizei);
1183 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC, const void *);
1184 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum,
1185                                                                  GLenum,
1186                                                                  GLenum,
1187                                                                  GLsizei,
1188                                                                  const GLuint *,
1189                                                                  GLboolean);
1190 typedef void(INTERNAL_GL_APIENTRY *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum,
1191                                                                 GLenum,
1192                                                                 GLuint,
1193                                                                 GLenum,
1194                                                                 GLsizei,
1195                                                                 const GLchar *);
1196 typedef void(INTERNAL_GL_APIENTRY *PFNGLDISPATCHCOMPUTEPROC)(GLuint, GLuint, GLuint);
1197 typedef void(INTERNAL_GL_APIENTRY *PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr);
1198 typedef void(INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum, GLenum, GLint);
1199 typedef GLuint(INTERNAL_GL_APIENTRY *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint,
1200                                                                   GLsizei,
1201                                                                   GLenum *,
1202                                                                   GLenum *,
1203                                                                   GLuint *,
1204                                                                   GLenum *,
1205                                                                   GLsizei *,
1206                                                                   GLchar *);
1207 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum, GLenum, GLint *);
1208 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETINTERNALFORMATI64VPROC)(GLenum,
1209                                                                    GLenum,
1210                                                                    GLenum,
1211                                                                    GLsizei,
1212                                                                    GLint64 *);
1213 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPOINTERVPROC)(GLenum, void **);
1214 typedef void(
1215     INTERNAL_GL_APIENTRY *PFNGLGETOBJECTLABELPROC)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
1216 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETOBJECTPTRLABELPROC)(const void *,
1217                                                                GLsizei,
1218                                                                GLsizei *,
1219                                                                GLchar *);
1220 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint, GLenum, GLenum, GLint *);
1221 typedef GLuint(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint,
1222                                                                        GLenum,
1223                                                                        const GLchar *);
1224 typedef GLint(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint,
1225                                                                          GLenum,
1226                                                                          const GLchar *);
1227 typedef GLint(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint,
1228                                                                               GLenum,
1229                                                                               const GLchar *);
1230 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint,
1231                                                                     GLenum,
1232                                                                     GLuint,
1233                                                                     GLsizei,
1234                                                                     GLsizei *,
1235                                                                     GLchar *);
1236 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint,
1237                                                                   GLenum,
1238                                                                   GLuint,
1239                                                                   GLsizei,
1240                                                                   const GLenum *,
1241                                                                   GLsizei,
1242                                                                   GLsizei *,
1243                                                                   GLint *);
1244 typedef void(INTERNAL_GL_APIENTRY *PFNGLINVALIDATEBUFFERDATAPROC)(GLuint);
1245 typedef void(INTERNAL_GL_APIENTRY *PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint, GLintptr, GLsizeiptr);
1246 typedef void(INTERNAL_GL_APIENTRY *PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum, GLsizei, const GLenum *);
1247 typedef void(INTERNAL_GL_APIENTRY *PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum,
1248                                                                       GLsizei,
1249                                                                       const GLenum *,
1250                                                                       GLint,
1251                                                                       GLint,
1252                                                                       GLsizei,
1253                                                                       GLsizei);
1254 typedef void(INTERNAL_GL_APIENTRY *PFNGLINVALIDATETEXIMAGEPROC)(GLuint, GLint);
1255 typedef void(INTERNAL_GL_APIENTRY *PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint,
1256                                                                    GLint,
1257                                                                    GLint,
1258                                                                    GLint,
1259                                                                    GLint,
1260                                                                    GLsizei,
1261                                                                    GLsizei,
1262                                                                    GLsizei);
1263 typedef void(INTERNAL_GL_APIENTRY *PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum,
1264                                                                      const void *,
1265                                                                      GLsizei,
1266                                                                      GLsizei);
1267 typedef void(INTERNAL_GL_APIENTRY *PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum,
1268                                                                        GLenum,
1269                                                                        const void *,
1270                                                                        GLsizei,
1271                                                                        GLsizei);
1272 typedef void(INTERNAL_GL_APIENTRY *PFNGLOBJECTLABELPROC)(GLenum, GLuint, GLsizei, const GLchar *);
1273 typedef void(INTERNAL_GL_APIENTRY *PFNGLOBJECTPTRLABELPROC)(const void *, GLsizei, const GLchar *);
1274 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOPDEBUGGROUPPROC)();
1275 typedef void(INTERNAL_GL_APIENTRY *PFNGLPUSHDEBUGGROUPPROC)(GLenum,
1276                                                             GLuint,
1277                                                             GLsizei,
1278                                                             const GLchar *);
1279 typedef void(INTERNAL_GL_APIENTRY *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint, GLuint, GLuint);
1280 typedef void(
1281     INTERNAL_GL_APIENTRY *PFNGLTEXBUFFERRANGEPROC)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
1282 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum,
1283                                                                      GLsizei,
1284                                                                      GLenum,
1285                                                                      GLsizei,
1286                                                                      GLsizei,
1287                                                                      GLboolean);
1288 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum,
1289                                                                      GLsizei,
1290                                                                      GLenum,
1291                                                                      GLsizei,
1292                                                                      GLsizei,
1293                                                                      GLsizei,
1294                                                                      GLboolean);
1295 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREVIEWPROC)(GLuint,
1296                                                          GLenum,
1297                                                          GLuint,
1298                                                          GLenum,
1299                                                          GLuint,
1300                                                          GLuint,
1301                                                          GLuint,
1302                                                          GLuint);
1303 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBBINDINGPROC)(GLuint, GLuint);
1304 typedef void(
1305     INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBFORMATPROC)(GLuint, GLint, GLenum, GLboolean, GLuint);
1306 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBIFORMATPROC)(GLuint, GLint, GLenum, GLuint);
1307 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXATTRIBLFORMATPROC)(GLuint, GLint, GLenum, GLuint);
1308 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXBINDINGDIVISORPROC)(GLuint, GLuint);
1309 
1310 // NV_framebuffer_mixed_samples
1311 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOVERAGEMODULATIONNVPROC)(GLenum);
1312 
1313 // 4.4
1314 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDBUFFERSBASEPROC)(GLenum,
1315                                                              GLuint,
1316                                                              GLsizei,
1317                                                              const GLuint *);
1318 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDBUFFERSRANGEPROC)(GLenum,
1319                                                               GLuint,
1320                                                               GLsizei,
1321                                                               const GLuint *,
1322                                                               const GLintptr *,
1323                                                               const GLsizeiptr *);
1324 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDIMAGETEXTURESPROC)(GLuint, GLsizei, const GLuint *);
1325 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDSAMPLERSPROC)(GLuint, GLsizei, const GLuint *);
1326 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDTEXTURESPROC)(GLuint, GLsizei, const GLuint *);
1327 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDVERTEXBUFFERSPROC)(GLuint,
1328                                                                GLsizei,
1329                                                                const GLuint *,
1330                                                                const GLintptr *,
1331                                                                const GLsizei *);
1332 typedef void(INTERNAL_GL_APIENTRY *PFNGLBUFFERSTORAGEPROC)(GLenum,
1333                                                            GLsizeiptr,
1334                                                            const void *,
1335                                                            GLbitfield);
1336 typedef void(
1337     INTERNAL_GL_APIENTRY *PFNGLCLEARTEXIMAGEPROC)(GLuint, GLint, GLenum, GLenum, const void *);
1338 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARTEXSUBIMAGEPROC)(GLuint,
1339                                                               GLint,
1340                                                               GLint,
1341                                                               GLint,
1342                                                               GLint,
1343                                                               GLsizei,
1344                                                               GLsizei,
1345                                                               GLsizei,
1346                                                               GLenum,
1347                                                               GLenum,
1348                                                               const void *);
1349 
1350 // 4.5
1351 typedef void(INTERNAL_GL_APIENTRY *PFNGLBINDTEXTUREUNITPROC)(GLuint, GLuint);
1352 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint,
1353                                                                   GLuint,
1354                                                                   GLint,
1355                                                                   GLint,
1356                                                                   GLint,
1357                                                                   GLint,
1358                                                                   GLint,
1359                                                                   GLint,
1360                                                                   GLint,
1361                                                                   GLint,
1362                                                                   GLbitfield,
1363                                                                   GLenum);
1364 typedef GLenum(INTERNAL_GL_APIENTRY *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint, GLenum);
1365 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint,
1366                                                                   GLenum,
1367                                                                   GLenum,
1368                                                                   GLenum,
1369                                                                   const void *);
1370 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint,
1371                                                                      GLenum,
1372                                                                      GLintptr,
1373                                                                      GLsizeiptr,
1374                                                                      GLenum,
1375                                                                      GLenum,
1376                                                                      const void *);
1377 typedef void(
1378     INTERNAL_GL_APIENTRY *PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint, GLenum, GLint, GLfloat, GLint);
1379 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint,
1380                                                                      GLenum,
1381                                                                      GLint,
1382                                                                      const GLfloat *);
1383 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint,
1384                                                                      GLenum,
1385                                                                      GLint,
1386                                                                      const GLint *);
1387 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint,
1388                                                                       GLenum,
1389                                                                       GLint,
1390                                                                       const GLuint *);
1391 typedef void(INTERNAL_GL_APIENTRY *PFNGLCLIPCONTROLPROC)(GLenum, GLenum);
1392 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint,
1393                                                                          GLint,
1394                                                                          GLint,
1395                                                                          GLsizei,
1396                                                                          GLenum,
1397                                                                          GLsizei,
1398                                                                          const void *);
1399 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint,
1400                                                                          GLint,
1401                                                                          GLint,
1402                                                                          GLint,
1403                                                                          GLsizei,
1404                                                                          GLsizei,
1405                                                                          GLenum,
1406                                                                          GLsizei,
1407                                                                          const void *);
1408 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(GLuint,
1409                                                                          GLint,
1410                                                                          GLint,
1411                                                                          GLint,
1412                                                                          GLint,
1413                                                                          GLsizei,
1414                                                                          GLsizei,
1415                                                                          GLsizei,
1416                                                                          GLenum,
1417                                                                          GLsizei,
1418                                                                          const void *);
1419 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint,
1420                                                                     GLuint,
1421                                                                     GLintptr,
1422                                                                     GLintptr,
1423                                                                     GLsizeiptr);
1424 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint,
1425                                                                    GLint,
1426                                                                    GLint,
1427                                                                    GLint,
1428                                                                    GLint,
1429                                                                    GLsizei);
1430 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint,
1431                                                                    GLint,
1432                                                                    GLint,
1433                                                                    GLint,
1434                                                                    GLint,
1435                                                                    GLint,
1436                                                                    GLsizei,
1437                                                                    GLsizei);
1438 typedef void(INTERNAL_GL_APIENTRY *PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint,
1439                                                                    GLint,
1440                                                                    GLint,
1441                                                                    GLint,
1442                                                                    GLint,
1443                                                                    GLint,
1444                                                                    GLint,
1445                                                                    GLsizei,
1446                                                                    GLsizei);
1447 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATEBUFFERSPROC)(GLsizei, GLuint *);
1448 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei, GLuint *);
1449 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei, GLuint *);
1450 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATEQUERIESPROC)(GLenum, GLsizei, GLuint *);
1451 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATERENDERBUFFERSPROC)(GLsizei, GLuint *);
1452 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATESAMPLERSPROC)(GLsizei, GLuint *);
1453 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATETEXTURESPROC)(GLenum, GLsizei, GLuint *);
1454 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei, GLuint *);
1455 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATEVERTEXARRAYSPROC)(GLsizei, GLuint *);
1456 typedef void(INTERNAL_GL_APIENTRY *PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint, GLuint);
1457 typedef void(INTERNAL_GL_APIENTRY *PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint, GLuint);
1458 typedef void(INTERNAL_GL_APIENTRY *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint,
1459                                                                          GLintptr,
1460                                                                          GLsizeiptr);
1461 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint);
1462 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint,
1463                                                                        GLint,
1464                                                                        GLsizei,
1465                                                                        void *);
1466 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint,
1467                                                                           GLint,
1468                                                                           GLint,
1469                                                                           GLint,
1470                                                                           GLint,
1471                                                                           GLsizei,
1472                                                                           GLsizei,
1473                                                                           GLsizei,
1474                                                                           GLsizei,
1475                                                                           void *);
1476 typedef GLenum(INTERNAL_GL_APIENTRY *PFNGLGETGRAPHICSRESETSTATUSPROC)();
1477 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint, GLenum, GLint64 *);
1478 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint, GLenum, GLint *);
1479 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint, GLenum, void **);
1480 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint,
1481                                                                    GLintptr,
1482                                                                    GLsizeiptr,
1483                                                                    void *);
1484 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint,
1485                                                                                       GLenum,
1486                                                                                       GLenum,
1487                                                                                       GLint *);
1488 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint,
1489                                                                             GLenum,
1490                                                                             GLint *);
1491 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint,
1492                                                                              GLenum,
1493                                                                              GLint *);
1494 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint,
1495                                                                       GLuint,
1496                                                                       GLenum,
1497                                                                       GLintptr);
1498 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint,
1499                                                                     GLuint,
1500                                                                     GLenum,
1501                                                                     GLintptr);
1502 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint,
1503                                                                        GLuint,
1504                                                                        GLenum,
1505                                                                        GLintptr);
1506 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint,
1507                                                                      GLuint,
1508                                                                      GLenum,
1509                                                                      GLintptr);
1510 typedef void(
1511     INTERNAL_GL_APIENTRY *PFNGLGETTEXTUREIMAGEPROC)(GLuint, GLint, GLenum, GLenum, GLsizei, void *);
1512 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint,
1513                                                                         GLint,
1514                                                                         GLenum,
1515                                                                         GLfloat *);
1516 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint,
1517                                                                         GLint,
1518                                                                         GLenum,
1519                                                                         GLint *);
1520 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint, GLenum, GLint *);
1521 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint, GLenum, GLuint *);
1522 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint, GLenum, GLfloat *);
1523 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint, GLenum, GLint *);
1524 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTEXTURESUBIMAGEPROC)(GLuint,
1525                                                                 GLint,
1526                                                                 GLint,
1527                                                                 GLint,
1528                                                                 GLint,
1529                                                                 GLsizei,
1530                                                                 GLsizei,
1531                                                                 GLsizei,
1532                                                                 GLenum,
1533                                                                 GLenum,
1534                                                                 GLsizei,
1535                                                                 void *);
1536 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint,
1537                                                                        GLenum,
1538                                                                        GLuint,
1539                                                                        GLint64 *);
1540 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint,
1541                                                                      GLenum,
1542                                                                      GLuint,
1543                                                                      GLint *);
1544 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint, GLenum, GLint *);
1545 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint,
1546                                                                        GLuint,
1547                                                                        GLenum,
1548                                                                        GLint64 *);
1549 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint,
1550                                                                      GLuint,
1551                                                                      GLenum,
1552                                                                      GLint *);
1553 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETVERTEXARRAYIVPROC)(GLuint, GLenum, GLint *);
1554 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum, GLint, GLsizei, void *);
1555 typedef void(
1556     INTERNAL_GL_APIENTRY *PFNGLGETNTEXIMAGEPROC)(GLenum, GLint, GLenum, GLenum, GLsizei, void *);
1557 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNUNIFORMDVPROC)(GLuint, GLint, GLsizei, GLdouble *);
1558 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNUNIFORMFVPROC)(GLuint, GLint, GLsizei, GLfloat *);
1559 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNUNIFORMIVPROC)(GLuint, GLint, GLsizei, GLint *);
1560 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETNUNIFORMUIVPROC)(GLuint, GLint, GLsizei, GLuint *);
1561 typedef void(INTERNAL_GL_APIENTRY *PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint,
1562                                                                             GLsizei,
1563                                                                             const GLenum *);
1564 typedef void(INTERNAL_GL_APIENTRY *PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint,
1565                                                                                GLsizei,
1566                                                                                const GLenum *,
1567                                                                                GLint,
1568                                                                                GLint,
1569                                                                                GLsizei,
1570                                                                                GLsizei);
1571 typedef void *(INTERNAL_GL_APIENTRY *PFNGLMAPNAMEDBUFFERPROC)(GLuint, GLenum);
1572 typedef void *(INTERNAL_GL_APIENTRY *PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint,
1573                                                                    GLintptr,
1574                                                                    GLsizeiptr,
1575                                                                    GLbitfield);
1576 typedef void(INTERNAL_GL_APIENTRY *PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield);
1577 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDBUFFERDATAPROC)(GLuint,
1578                                                              GLsizeiptr,
1579                                                              const void *,
1580                                                              GLenum);
1581 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint,
1582                                                                 GLsizeiptr,
1583                                                                 const void *,
1584                                                                 GLbitfield);
1585 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint,
1586                                                                 GLintptr,
1587                                                                 GLsizeiptr,
1588                                                                 const void *);
1589 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint, GLenum);
1590 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint,
1591                                                                          GLsizei,
1592                                                                          const GLenum *);
1593 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint, GLenum, GLint);
1594 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint, GLenum);
1595 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint,
1596                                                                           GLenum,
1597                                                                           GLenum,
1598                                                                           GLuint);
1599 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint, GLenum, GLuint, GLint);
1600 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint,
1601                                                                           GLenum,
1602                                                                           GLuint,
1603                                                                           GLint,
1604                                                                           GLint);
1605 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint,
1606                                                                       GLenum,
1607                                                                       GLsizei,
1608                                                                       GLsizei);
1609 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLuint,
1610                                                                                  GLsizei,
1611                                                                                  GLenum,
1612                                                                                  GLsizei,
1613                                                                                  GLsizei);
1614 typedef void(INTERNAL_GL_APIENTRY *PFNGLREADNPIXELSPROC)(GLint,
1615                                                          GLint,
1616                                                          GLsizei,
1617                                                          GLsizei,
1618                                                          GLenum,
1619                                                          GLenum,
1620                                                          GLsizei,
1621                                                          void *);
1622 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREBARRIERPROC)();
1623 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREBUFFERPROC)(GLuint, GLenum, GLuint);
1624 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREBUFFERRANGEPROC)(GLuint,
1625                                                                 GLenum,
1626                                                                 GLuint,
1627                                                                 GLintptr,
1628                                                                 GLsizeiptr);
1629 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREPARAMETERIIVPROC)(GLuint, GLenum, const GLint *);
1630 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint, GLenum, const GLuint *);
1631 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREPARAMETERFPROC)(GLuint, GLenum, GLfloat);
1632 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREPARAMETERFVPROC)(GLuint, GLenum, const GLfloat *);
1633 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREPARAMETERIPROC)(GLuint, GLenum, GLint);
1634 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTUREPARAMETERIVPROC)(GLuint, GLenum, const GLint *);
1635 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGE1DPROC)(GLuint, GLsizei, GLenum, GLsizei);
1636 typedef void(
1637     INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGE2DPROC)(GLuint, GLsizei, GLenum, GLsizei, GLsizei);
1638 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint,
1639                                                                          GLsizei,
1640                                                                          GLenum,
1641                                                                          GLsizei,
1642                                                                          GLsizei,
1643                                                                          GLboolean);
1644 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGE3DPROC)(GLuint,
1645                                                               GLsizei,
1646                                                               GLenum,
1647                                                               GLsizei,
1648                                                               GLsizei,
1649                                                               GLsizei);
1650 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint,
1651                                                                          GLsizei,
1652                                                                          GLenum,
1653                                                                          GLsizei,
1654                                                                          GLsizei,
1655                                                                          GLsizei,
1656                                                                          GLboolean);
1657 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESUBIMAGE1DPROC)(GLuint,
1658                                                                GLint,
1659                                                                GLint,
1660                                                                GLsizei,
1661                                                                GLenum,
1662                                                                GLenum,
1663                                                                const void *);
1664 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESUBIMAGE2DPROC)(GLuint,
1665                                                                GLint,
1666                                                                GLint,
1667                                                                GLint,
1668                                                                GLsizei,
1669                                                                GLsizei,
1670                                                                GLenum,
1671                                                                GLenum,
1672                                                                const void *);
1673 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESUBIMAGE3DPROC)(GLuint,
1674                                                                GLint,
1675                                                                GLint,
1676                                                                GLint,
1677                                                                GLint,
1678                                                                GLsizei,
1679                                                                GLsizei,
1680                                                                GLsizei,
1681                                                                GLenum,
1682                                                                GLenum,
1683                                                                const void *);
1684 typedef void(INTERNAL_GL_APIENTRY *PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint, GLuint, GLuint);
1685 typedef void(INTERNAL_GL_APIENTRY *PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint,
1686                                                                           GLuint,
1687                                                                           GLuint,
1688                                                                           GLintptr,
1689                                                                           GLsizeiptr);
1690 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLUNMAPNAMEDBUFFERPROC)(GLuint);
1691 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint, GLuint, GLuint);
1692 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint,
1693                                                                      GLuint,
1694                                                                      GLint,
1695                                                                      GLenum,
1696                                                                      GLboolean,
1697                                                                      GLuint);
1698 typedef void(
1699     INTERNAL_GL_APIENTRY *PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint, GLuint, GLint, GLenum, GLuint);
1700 typedef void(
1701     INTERNAL_GL_APIENTRY *PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint, GLuint, GLint, GLenum, GLuint);
1702 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint, GLuint, GLuint);
1703 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint, GLuint);
1704 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint,
1705                                                                      GLuint,
1706                                                                      GLuint,
1707                                                                      GLintptr,
1708                                                                      GLsizei);
1709 typedef void(INTERNAL_GL_APIENTRY *PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint,
1710                                                                       GLuint,
1711                                                                       GLsizei,
1712                                                                       const GLuint *,
1713                                                                       const GLintptr *,
1714                                                                       const GLsizei *);
1715 
1716 // GL_EXT_discard_framebuffer
1717 typedef void(INTERNAL_GL_APIENTRY *PFNGLDISCARDFRAMEBUFFEREXTPROC)(GLenum target,
1718                                                                    GLsizei numAttachments,
1719                                                                    const GLenum *attachments);
1720 
1721 // GL_OES_EGL_image
1722 typedef void *GLeglImageOES;
1723 typedef void(INTERNAL_GL_APIENTRY *PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)(GLenum target,
1724                                                                         GLeglImageOES image);
1725 typedef void(INTERNAL_GL_APIENTRY *PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)(
1726     GLenum target,
1727     GLeglImageOES image);
1728 
1729 // ES 3.2
1730 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLENDBARRIERPROC)(void);
1731 typedef void(INTERNAL_GL_APIENTRY *PFNGLPRIMITIVEBOUNDINGBOXPROC)(GLfloat minX,
1732                                                                   GLfloat minY,
1733                                                                   GLfloat minZ,
1734                                                                   GLfloat minW,
1735                                                                   GLfloat maxX,
1736                                                                   GLfloat maxY,
1737                                                                   GLfloat maxZ,
1738                                                                   GLfloat maxW);
1739 
1740 // GL_NV_internalformat_sample_query
1741 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)(GLenum target,
1742                                                                          GLenum internalformat,
1743                                                                          GLsizei samples,
1744                                                                          GLenum pname,
1745                                                                          GLsizei bufSize,
1746                                                                          GLint *params);
1747 
1748 // GL_OVR_multiview2
1749 typedef void(INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)(GLenum target,
1750                                                                             GLenum attachment,
1751                                                                             GLuint texture,
1752                                                                             GLint level,
1753                                                                             GLint baseViewIndex,
1754                                                                             GLsizei numViews);
1755 // EXT_debug_marker
1756 typedef void(INTERNAL_GL_APIENTRY *PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length,
1757                                                                   const GLchar *marker);
1758 typedef void(INTERNAL_GL_APIENTRY *PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length,
1759                                                                 const GLchar *marker);
1760 typedef void(INTERNAL_GL_APIENTRY *PFNGLPOPGROUPMARKEREXTPROC)(void);
1761 
1762 // KHR_parallel_shader_compile
1763 typedef void(INTERNAL_GL_APIENTRY *PFNGLMAXSHADERCOMPILERTHREADSKHRPROC)(GLuint count);
1764 
1765 // ARB_parallel_shader_compile
1766 typedef void(INTERNAL_GL_APIENTRY *PFNGLMAXSHADERCOMPILERTHREADSARBPROC)(GLuint count);
1767 
1768 // GL_EXT_memory_object
1769 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETUNSIGNEDBYTEVEXTPROC)(GLenum pname, GLubyte *data);
1770 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETUNSIGNEDBYTEI_VEXTPROC)(GLenum target,
1771                                                                    GLuint index,
1772                                                                    GLubyte *data);
1773 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETEMEMORYOBJECTSEXTPROC)(GLsizei n,
1774                                                                     const GLuint *memoryObjects);
1775 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISMEMORYOBJECTEXTPROC)(GLuint memoryObject);
1776 typedef void(INTERNAL_GL_APIENTRY *PFNGLCREATEMEMORYOBJECTSEXTPROC)(GLsizei n,
1777                                                                     GLuint *memoryObjects);
1778 typedef void(INTERNAL_GL_APIENTRY *PFNGLMEMORYOBJECTPARAMETERIVEXTPROC)(GLuint memoryObject,
1779                                                                         GLenum pname,
1780                                                                         const GLint *params);
1781 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC)(GLuint memoryObject,
1782                                                                            GLenum pname,
1783                                                                            GLint *params);
1784 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGEMEM2DEXTPROC)(GLenum target,
1785                                                                 GLsizei levels,
1786                                                                 GLenum internalFormat,
1787                                                                 GLsizei width,
1788                                                                 GLsizei height,
1789                                                                 GLuint memory,
1790                                                                 GLuint64 offset);
1791 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC)(
1792     GLenum target,
1793     GLsizei samples,
1794     GLenum internalFormat,
1795     GLsizei width,
1796     GLsizei height,
1797     GLboolean fixedSampleLocations,
1798     GLuint memory,
1799     GLuint64 offset);
1800 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGEMEM3DEXTPROC)(GLenum target,
1801                                                                 GLsizei levels,
1802                                                                 GLenum internalFormat,
1803                                                                 GLsizei width,
1804                                                                 GLsizei height,
1805                                                                 GLsizei depth,
1806                                                                 GLuint memory,
1807                                                                 GLuint64 offset);
1808 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC)(
1809     GLenum target,
1810     GLsizei samples,
1811     GLenum internalFormat,
1812     GLsizei width,
1813     GLsizei height,
1814     GLsizei depth,
1815     GLboolean fixedSampleLocations,
1816     GLuint memory,
1817     GLuint64 offset);
1818 typedef void(INTERNAL_GL_APIENTRY *PFNGLBUFFERSTORAGEMEMEXTPROC)(GLenum target,
1819                                                                  GLsizeiptr size,
1820                                                                  GLuint memory,
1821                                                                  GLuint64 offset);
1822 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGEMEM2DEXTPROC)(GLuint texture,
1823                                                                     GLsizei levels,
1824                                                                     GLenum internalFormat,
1825                                                                     GLsizei width,
1826                                                                     GLsizei height,
1827                                                                     GLuint memory,
1828                                                                     GLuint64 offset);
1829 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC)(
1830     GLuint texture,
1831     GLsizei samples,
1832     GLenum internalFormat,
1833     GLsizei width,
1834     GLsizei height,
1835     GLboolean fixedSampleLocations,
1836     GLuint memory,
1837     GLuint64 offset);
1838 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGEMEM3DEXTPROC)(GLuint texture,
1839                                                                     GLsizei levels,
1840                                                                     GLenum internalFormat,
1841                                                                     GLsizei width,
1842                                                                     GLsizei height,
1843                                                                     GLsizei depth,
1844                                                                     GLuint memory,
1845                                                                     GLuint64 offset);
1846 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC)(
1847     GLuint texture,
1848     GLsizei samples,
1849     GLenum internalFormat,
1850     GLsizei width,
1851     GLsizei height,
1852     GLsizei depth,
1853     GLboolean fixedSampleLocations,
1854     GLuint memory,
1855     GLuint64 offset);
1856 typedef void(INTERNAL_GL_APIENTRY *PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC)(GLuint buffer,
1857                                                                       GLsizeiptr size,
1858                                                                       GLuint memory,
1859                                                                       GLuint64 offset);
1860 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXSTORAGEMEM1DEXTPROC)(GLenum target,
1861                                                                 GLsizei levels,
1862                                                                 GLenum internalFormat,
1863                                                                 GLsizei width,
1864                                                                 GLuint memory,
1865                                                                 GLuint64 offset);
1866 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXTURESTORAGEMEM1DEXTPROC)(GLuint texture,
1867                                                                     GLsizei levels,
1868                                                                     GLenum internalFormat,
1869                                                                     GLsizei width,
1870                                                                     GLuint memory,
1871                                                                     GLuint64 offset);
1872 
1873 // GL_EXT_semaphore
1874 typedef void(INTERNAL_GL_APIENTRY *PFNGLGENSEMAPHORESEXTPROC)(GLsizei n, GLuint *semaphores);
1875 typedef void(INTERNAL_GL_APIENTRY *PFNGLDELETESEMAPHORESEXTPROC)(GLsizei n,
1876                                                                  const GLuint *semaphores);
1877 typedef GLboolean(INTERNAL_GL_APIENTRY *PFNGLISSEMAPHOREEXTPROC)(GLuint semaphore);
1878 typedef void(INTERNAL_GL_APIENTRY *PFNGLSEMAPHOREPARAMETERUI64VEXTPROC)(GLuint semaphore,
1879                                                                         GLenum pname,
1880                                                                         const GLuint64 *params);
1881 typedef void(INTERNAL_GL_APIENTRY *PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC)(GLuint semaphore,
1882                                                                            GLenum pname,
1883                                                                            GLuint64 *params);
1884 typedef void(INTERNAL_GL_APIENTRY *PFNGLWAITSEMAPHOREEXTPROC)(GLuint semaphore,
1885                                                               GLuint numBufferBarriers,
1886                                                               const GLuint *buffers,
1887                                                               GLuint numTextureBarriers,
1888                                                               const GLuint *textures,
1889                                                               const GLenum *srcLayouts);
1890 typedef void(INTERNAL_GL_APIENTRY *PFNGLSIGNALSEMAPHOREEXTPROC)(GLuint semaphore,
1891                                                                 GLuint numBufferBarriers,
1892                                                                 const GLuint *buffers,
1893                                                                 GLuint numTextureBarriers,
1894                                                                 const GLuint *textures,
1895                                                                 const GLenum *dstLayouts);
1896 
1897 // GL_EXT_memory_object_fd
1898 typedef void(INTERNAL_GL_APIENTRY *PFNGLIMPORTMEMORYFDEXTPROC)(GLuint memory,
1899                                                                GLuint64 size,
1900                                                                GLenum handleType,
1901                                                                GLint fd);
1902 
1903 // GL_EXT_semaphore_fd
1904 typedef void(INTERNAL_GL_APIENTRY *PFNGLIMPORTSEMAPHOREFDEXTPROC)(GLuint semaphore,
1905                                                                   GLenum handleType,
1906                                                                   GLint fd);
1907 
1908 // GL_EXT_memory_object_win32
1909 typedef void(INTERNAL_GL_APIENTRY *PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC)(GLuint memory,
1910                                                                         GLuint64 size,
1911                                                                         GLenum handleType,
1912                                                                         void *handle);
1913 typedef void(INTERNAL_GL_APIENTRY *PFNGLIMPORTMEMORYWIN32NAMEEXTPROC)(GLuint memory,
1914                                                                       GLuint64 size,
1915                                                                       GLenum handleType,
1916                                                                       const void *name);
1917 
1918 // GL_EXT_semaphore_win32
1919 typedef void(INTERNAL_GL_APIENTRY *PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC)(GLuint semaphore,
1920                                                                            GLenum handleType,
1921                                                                            void *handle);
1922 typedef void(INTERNAL_GL_APIENTRY *PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC)(GLuint semaphore,
1923                                                                          GLenum handleType,
1924                                                                          const void *name);
1925 
1926 // GL_OES_texture_buffer
1927 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXBUFFEROESPROC)(GLenum, GLenum, GLuint);
1928 typedef void(
1929     INTERNAL_GL_APIENTRY *PFNGLTEXBUFFERRANGEOESPROC)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
1930 
1931 // GL_EXT_texture_buffer
1932 typedef void(INTERNAL_GL_APIENTRY *PFNGLTEXBUFFEREXTPROC)(GLenum, GLenum, GLuint);
1933 typedef void(
1934     INTERNAL_GL_APIENTRY *PFNGLTEXBUFFERRANGEEXTPROC)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
1935 
1936 // GL_EXT_framebuffer_blit
1937 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0,
1938                                                                 GLint srcY0,
1939                                                                 GLint srcX1,
1940                                                                 GLint srcY1,
1941                                                                 GLint dstX0,
1942                                                                 GLint dstY0,
1943                                                                 GLint dstX1,
1944                                                                 GLint dstY1,
1945                                                                 GLbitfield mask,
1946                                                                 GLenum filter);
1947 
1948 // GL_NV_framebuffer_blit
1949 typedef void(INTERNAL_GL_APIENTRY *PFNGLBLITFRAMEBUFFERNVPROC)(GLint srcX0,
1950                                                                GLint srcY0,
1951                                                                GLint srcX1,
1952                                                                GLint srcY1,
1953                                                                GLint dstX0,
1954                                                                GLint dstY0,
1955                                                                GLint dstX1,
1956                                                                GLint dstY1,
1957                                                                GLbitfield mask,
1958                                                                GLenum filter);
1959 
1960 // GL_EXT_multisampled_render_to_texture
1961 typedef void(INTERNAL_GL_APIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(
1962     GLenum target,
1963     GLsizei samples,
1964     GLenum internalformat,
1965     GLsizei width,
1966     GLsizei height);
1967 typedef void(INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)(GLenum target,
1968                                                                                 GLenum attachment,
1969                                                                                 GLenum textarget,
1970                                                                                 GLuint texture,
1971                                                                                 GLint level,
1972                                                                                 GLsizei samples);
1973 
1974 // GL_IMG_multisampled_render_to_texture
1975 typedef void(INTERNAL_GL_APIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC)(
1976     GLenum target,
1977     GLsizei samples,
1978     GLenum internalformat,
1979     GLsizei width,
1980     GLsizei height);
1981 typedef void(INTERNAL_GL_APIENTRY *PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC)(GLenum target,
1982                                                                                 GLenum attachment,
1983                                                                                 GLenum textarget,
1984                                                                                 GLuint texture,
1985                                                                                 GLint level,
1986                                                                                 GLsizei samples);
1987 
1988 }  // namespace rx
1989 
1990 #endif  // LIBANGLE_RENDERER_GL_FUNCTIONSGLTYPEDEFS_H_
1991