1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 //
5 // This file is auto-generated from
6 // ui/gl/generate_bindings.py
7 // It's formatted by clang-format using chromium coding style:
8 //    clang-format -i -style=chromium filename
9 // DO NOT EDIT!
10 
11 #ifndef UI_GL_GL_BINDINGS_AUTOGEN_GL_H_
12 #define UI_GL_GL_BINDINGS_AUTOGEN_GL_H_
13 
14 #include <string>
15 
16 namespace gl {
17 
18 class GLContext;
19 
20 typedef void(GL_BINDING_CALL* glActiveShaderProgramProc)(GLuint pipeline,
21                                                          GLuint program);
22 typedef void(GL_BINDING_CALL* glActiveTextureProc)(GLenum texture);
23 typedef void(GL_BINDING_CALL* glAttachShaderProc)(GLuint program,
24                                                   GLuint shader);
25 typedef void(GL_BINDING_CALL* glBeginQueryProc)(GLenum target, GLuint id);
26 typedef void(GL_BINDING_CALL* glBeginTransformFeedbackProc)(
27     GLenum primitiveMode);
28 typedef void(GL_BINDING_CALL* glBindAttribLocationProc)(GLuint program,
29                                                         GLuint index,
30                                                         const char* name);
31 typedef void(GL_BINDING_CALL* glBindBufferProc)(GLenum target, GLuint buffer);
32 typedef void(GL_BINDING_CALL* glBindBufferBaseProc)(GLenum target,
33                                                     GLuint index,
34                                                     GLuint buffer);
35 typedef void(GL_BINDING_CALL* glBindBufferRangeProc)(GLenum target,
36                                                      GLuint index,
37                                                      GLuint buffer,
38                                                      GLintptr offset,
39                                                      GLsizeiptr size);
40 typedef void(GL_BINDING_CALL* glBindFragDataLocationProc)(GLuint program,
41                                                           GLuint colorNumber,
42                                                           const char* name);
43 typedef void(GL_BINDING_CALL* glBindFragDataLocationIndexedProc)(
44     GLuint program,
45     GLuint colorNumber,
46     GLuint index,
47     const char* name);
48 typedef void(GL_BINDING_CALL* glBindFragmentInputLocationCHROMIUMProc)(
49     GLuint program,
50     GLint location,
51     const char* name);
52 typedef void(GL_BINDING_CALL* glBindFramebufferEXTProc)(GLenum target,
53                                                         GLuint framebuffer);
54 typedef void(GL_BINDING_CALL* glBindImageTextureEXTProc)(GLuint index,
55                                                          GLuint texture,
56                                                          GLint level,
57                                                          GLboolean layered,
58                                                          GLint layer,
59                                                          GLenum access,
60                                                          GLint format);
61 typedef void(GL_BINDING_CALL* glBindProgramPipelineProc)(GLuint pipeline);
62 typedef void(GL_BINDING_CALL* glBindRenderbufferEXTProc)(GLenum target,
63                                                          GLuint renderbuffer);
64 typedef void(GL_BINDING_CALL* glBindSamplerProc)(GLuint unit, GLuint sampler);
65 typedef void(GL_BINDING_CALL* glBindTextureProc)(GLenum target, GLuint texture);
66 typedef void(GL_BINDING_CALL* glBindTransformFeedbackProc)(GLenum target,
67                                                            GLuint id);
68 typedef void(GL_BINDING_CALL* glBindUniformLocationCHROMIUMProc)(
69     GLuint program,
70     GLint location,
71     const char* name);
72 typedef void(GL_BINDING_CALL* glBindVertexArrayOESProc)(GLuint array);
73 typedef void(GL_BINDING_CALL* glBindVertexBufferProc)(GLuint bindingindex,
74                                                       GLuint buffer,
75                                                       GLintptr offset,
76                                                       GLsizei stride);
77 typedef void(GL_BINDING_CALL* glBlendBarrierKHRProc)(void);
78 typedef void(GL_BINDING_CALL* glBlendColorProc)(GLclampf red,
79                                                 GLclampf green,
80                                                 GLclampf blue,
81                                                 GLclampf alpha);
82 typedef void(GL_BINDING_CALL* glBlendEquationProc)(GLenum mode);
83 typedef void(GL_BINDING_CALL* glBlendEquationSeparateProc)(GLenum modeRGB,
84                                                            GLenum modeAlpha);
85 typedef void(GL_BINDING_CALL* glBlendFuncProc)(GLenum sfactor, GLenum dfactor);
86 typedef void(GL_BINDING_CALL* glBlendFuncSeparateProc)(GLenum srcRGB,
87                                                        GLenum dstRGB,
88                                                        GLenum srcAlpha,
89                                                        GLenum dstAlpha);
90 typedef void(GL_BINDING_CALL* glBlitFramebufferProc)(GLint srcX0,
91                                                      GLint srcY0,
92                                                      GLint srcX1,
93                                                      GLint srcY1,
94                                                      GLint dstX0,
95                                                      GLint dstY0,
96                                                      GLint dstX1,
97                                                      GLint dstY1,
98                                                      GLbitfield mask,
99                                                      GLenum filter);
100 typedef void(GL_BINDING_CALL* glBufferDataProc)(GLenum target,
101                                                 GLsizeiptr size,
102                                                 const void* data,
103                                                 GLenum usage);
104 typedef void(GL_BINDING_CALL* glBufferSubDataProc)(GLenum target,
105                                                    GLintptr offset,
106                                                    GLsizeiptr size,
107                                                    const void* data);
108 typedef GLenum(GL_BINDING_CALL* glCheckFramebufferStatusEXTProc)(GLenum target);
109 typedef void(GL_BINDING_CALL* glClearProc)(GLbitfield mask);
110 typedef void(GL_BINDING_CALL* glClearBufferfiProc)(GLenum buffer,
111                                                    GLint drawbuffer,
112                                                    const GLfloat depth,
113                                                    GLint stencil);
114 typedef void(GL_BINDING_CALL* glClearBufferfvProc)(GLenum buffer,
115                                                    GLint drawbuffer,
116                                                    const GLfloat* value);
117 typedef void(GL_BINDING_CALL* glClearBufferivProc)(GLenum buffer,
118                                                    GLint drawbuffer,
119                                                    const GLint* value);
120 typedef void(GL_BINDING_CALL* glClearBufferuivProc)(GLenum buffer,
121                                                     GLint drawbuffer,
122                                                     const GLuint* value);
123 typedef void(GL_BINDING_CALL* glClearColorProc)(GLclampf red,
124                                                 GLclampf green,
125                                                 GLclampf blue,
126                                                 GLclampf alpha);
127 typedef void(GL_BINDING_CALL* glClearDepthProc)(GLclampd depth);
128 typedef void(GL_BINDING_CALL* glClearDepthfProc)(GLclampf depth);
129 typedef void(GL_BINDING_CALL* glClearStencilProc)(GLint s);
130 typedef void(GL_BINDING_CALL* glClearTexImageProc)(GLuint texture,
131                                                    GLint level,
132                                                    GLenum format,
133                                                    GLenum type,
134                                                    const GLvoid* data);
135 typedef void(GL_BINDING_CALL* glClearTexSubImageProc)(GLuint texture,
136                                                       GLint level,
137                                                       GLint xoffset,
138                                                       GLint yoffset,
139                                                       GLint zoffset,
140                                                       GLint width,
141                                                       GLint height,
142                                                       GLint depth,
143                                                       GLenum format,
144                                                       GLenum type,
145                                                       const GLvoid* data);
146 typedef GLenum(GL_BINDING_CALL* glClientWaitSyncProc)(GLsync sync,
147                                                       GLbitfield flags,
148                                                       GLuint64 timeout);
149 typedef GLenum(GL_BINDING_CALL* glClientWaitSyncAPPLEProc)(GLsync sync,
150                                                            GLbitfield flags,
151                                                            GLuint64 timeout);
152 typedef void(GL_BINDING_CALL* glColorMaskProc)(GLboolean red,
153                                                GLboolean green,
154                                                GLboolean blue,
155                                                GLboolean alpha);
156 typedef void(GL_BINDING_CALL* glCompileShaderProc)(GLuint shader);
157 typedef void(GL_BINDING_CALL* glCompressedTexImage2DProc)(GLenum target,
158                                                           GLint level,
159                                                           GLenum internalformat,
160                                                           GLsizei width,
161                                                           GLsizei height,
162                                                           GLint border,
163                                                           GLsizei imageSize,
164                                                           const void* data);
165 typedef void(GL_BINDING_CALL* glCompressedTexImage2DRobustANGLEProc)(
166     GLenum target,
167     GLint level,
168     GLenum internalformat,
169     GLsizei width,
170     GLsizei height,
171     GLint border,
172     GLsizei imageSize,
173     GLsizei dataSize,
174     const void* data);
175 typedef void(GL_BINDING_CALL* glCompressedTexImage3DProc)(GLenum target,
176                                                           GLint level,
177                                                           GLenum internalformat,
178                                                           GLsizei width,
179                                                           GLsizei height,
180                                                           GLsizei depth,
181                                                           GLint border,
182                                                           GLsizei imageSize,
183                                                           const void* data);
184 typedef void(GL_BINDING_CALL* glCompressedTexImage3DRobustANGLEProc)(
185     GLenum target,
186     GLint level,
187     GLenum internalformat,
188     GLsizei width,
189     GLsizei height,
190     GLsizei depth,
191     GLint border,
192     GLsizei imageSize,
193     GLsizei dataSize,
194     const void* data);
195 typedef void(GL_BINDING_CALL* glCompressedTexSubImage2DProc)(GLenum target,
196                                                              GLint level,
197                                                              GLint xoffset,
198                                                              GLint yoffset,
199                                                              GLsizei width,
200                                                              GLsizei height,
201                                                              GLenum format,
202                                                              GLsizei imageSize,
203                                                              const void* data);
204 typedef void(GL_BINDING_CALL* glCompressedTexSubImage2DRobustANGLEProc)(
205     GLenum target,
206     GLint level,
207     GLint xoffset,
208     GLint yoffset,
209     GLsizei width,
210     GLsizei height,
211     GLenum format,
212     GLsizei imageSize,
213     GLsizei dataSize,
214     const void* data);
215 typedef void(GL_BINDING_CALL* glCompressedTexSubImage3DProc)(GLenum target,
216                                                              GLint level,
217                                                              GLint xoffset,
218                                                              GLint yoffset,
219                                                              GLint zoffset,
220                                                              GLsizei width,
221                                                              GLsizei height,
222                                                              GLsizei depth,
223                                                              GLenum format,
224                                                              GLsizei imageSize,
225                                                              const void* data);
226 typedef void(GL_BINDING_CALL* glCompressedTexSubImage3DRobustANGLEProc)(
227     GLenum target,
228     GLint level,
229     GLint xoffset,
230     GLint yoffset,
231     GLint zoffset,
232     GLsizei width,
233     GLsizei height,
234     GLsizei depth,
235     GLenum format,
236     GLsizei imageSize,
237     GLsizei dataSize,
238     const void* data);
239 typedef void(GL_BINDING_CALL* glCopyBufferSubDataProc)(GLenum readTarget,
240                                                        GLenum writeTarget,
241                                                        GLintptr readOffset,
242                                                        GLintptr writeOffset,
243                                                        GLsizeiptr size);
244 typedef void(GL_BINDING_CALL* glCopySubTextureCHROMIUMProc)(
245     GLuint sourceId,
246     GLint sourceLevel,
247     GLenum destTarget,
248     GLuint destId,
249     GLint destLevel,
250     GLint xoffset,
251     GLint yoffset,
252     GLint x,
253     GLint y,
254     GLsizei width,
255     GLsizei height,
256     GLboolean unpackFlipY,
257     GLboolean unpackPremultiplyAlpha,
258     GLboolean unpackUnmultiplyAlpha);
259 typedef void(GL_BINDING_CALL* glCopyTexImage2DProc)(GLenum target,
260                                                     GLint level,
261                                                     GLenum internalformat,
262                                                     GLint x,
263                                                     GLint y,
264                                                     GLsizei width,
265                                                     GLsizei height,
266                                                     GLint border);
267 typedef void(GL_BINDING_CALL* glCopyTexSubImage2DProc)(GLenum target,
268                                                        GLint level,
269                                                        GLint xoffset,
270                                                        GLint yoffset,
271                                                        GLint x,
272                                                        GLint y,
273                                                        GLsizei width,
274                                                        GLsizei height);
275 typedef void(GL_BINDING_CALL* glCopyTexSubImage3DProc)(GLenum target,
276                                                        GLint level,
277                                                        GLint xoffset,
278                                                        GLint yoffset,
279                                                        GLint zoffset,
280                                                        GLint x,
281                                                        GLint y,
282                                                        GLsizei width,
283                                                        GLsizei height);
284 typedef void(GL_BINDING_CALL* glCopyTextureCHROMIUMProc)(
285     GLuint sourceId,
286     GLint sourceLevel,
287     GLenum destTarget,
288     GLuint destId,
289     GLint destLevel,
290     GLint internalFormat,
291     GLenum destType,
292     GLboolean unpackFlipY,
293     GLboolean unpackPremultiplyAlpha,
294     GLboolean unpackUnmultiplyAlpha);
295 typedef void(GL_BINDING_CALL* glCoverageModulationNVProc)(GLenum components);
296 typedef void(GL_BINDING_CALL* glCoverFillPathInstancedNVProc)(
297     GLsizei numPaths,
298     GLenum pathNameType,
299     const void* paths,
300     GLuint pathBase,
301     GLenum coverMode,
302     GLenum transformType,
303     const GLfloat* transformValues);
304 typedef void(GL_BINDING_CALL* glCoverFillPathNVProc)(GLuint path,
305                                                      GLenum coverMode);
306 typedef void(GL_BINDING_CALL* glCoverStrokePathInstancedNVProc)(
307     GLsizei numPaths,
308     GLenum pathNameType,
309     const void* paths,
310     GLuint pathBase,
311     GLenum coverMode,
312     GLenum transformType,
313     const GLfloat* transformValues);
314 typedef void(GL_BINDING_CALL* glCoverStrokePathNVProc)(GLuint name,
315                                                        GLenum coverMode);
316 typedef void(GL_BINDING_CALL* glCreateMemoryObjectsEXTProc)(
317     GLsizei n,
318     GLuint* memoryObjects);
319 typedef GLuint(GL_BINDING_CALL* glCreateProgramProc)(void);
320 typedef GLuint(GL_BINDING_CALL* glCreateShaderProc)(GLenum type);
321 typedef GLuint(GL_BINDING_CALL* glCreateShaderProgramvProc)(
322     GLenum type,
323     GLsizei count,
324     const char* const* strings);
325 typedef void(GL_BINDING_CALL* glCullFaceProc)(GLenum mode);
326 typedef void(GL_BINDING_CALL* glDebugMessageCallbackProc)(
327     GLDEBUGPROC callback,
328     const void* userParam);
329 typedef void(GL_BINDING_CALL* glDebugMessageControlProc)(GLenum source,
330                                                          GLenum type,
331                                                          GLenum severity,
332                                                          GLsizei count,
333                                                          const GLuint* ids,
334                                                          GLboolean enabled);
335 typedef void(GL_BINDING_CALL* glDebugMessageInsertProc)(GLenum source,
336                                                         GLenum type,
337                                                         GLuint id,
338                                                         GLenum severity,
339                                                         GLsizei length,
340                                                         const char* buf);
341 typedef void(GL_BINDING_CALL* glDeleteBuffersARBProc)(GLsizei n,
342                                                       const GLuint* buffers);
343 typedef void(GL_BINDING_CALL* glDeleteFencesAPPLEProc)(GLsizei n,
344                                                        const GLuint* fences);
345 typedef void(GL_BINDING_CALL* glDeleteFencesNVProc)(GLsizei n,
346                                                     const GLuint* fences);
347 typedef void(GL_BINDING_CALL* glDeleteFramebuffersEXTProc)(
348     GLsizei n,
349     const GLuint* framebuffers);
350 typedef void(GL_BINDING_CALL* glDeleteMemoryObjectsEXTProc)(
351     GLsizei n,
352     const GLuint* memoryObjects);
353 typedef void(GL_BINDING_CALL* glDeletePathsNVProc)(GLuint path, GLsizei range);
354 typedef void(GL_BINDING_CALL* glDeleteProgramProc)(GLuint program);
355 typedef void(GL_BINDING_CALL* glDeleteProgramPipelinesProc)(
356     GLsizei n,
357     const GLuint* pipelines);
358 typedef void(GL_BINDING_CALL* glDeleteQueriesProc)(GLsizei n,
359                                                    const GLuint* ids);
360 typedef void(GL_BINDING_CALL* glDeleteRenderbuffersEXTProc)(
361     GLsizei n,
362     const GLuint* renderbuffers);
363 typedef void(GL_BINDING_CALL* glDeleteSamplersProc)(GLsizei n,
364                                                     const GLuint* samplers);
365 typedef void(GL_BINDING_CALL* glDeleteSemaphoresEXTProc)(
366     GLsizei n,
367     const GLuint* semaphores);
368 typedef void(GL_BINDING_CALL* glDeleteShaderProc)(GLuint shader);
369 typedef void(GL_BINDING_CALL* glDeleteSyncProc)(GLsync sync);
370 typedef void(GL_BINDING_CALL* glDeleteSyncAPPLEProc)(GLsync sync);
371 typedef void(GL_BINDING_CALL* glDeleteTexturesProc)(GLsizei n,
372                                                     const GLuint* textures);
373 typedef void(GL_BINDING_CALL* glDeleteTransformFeedbacksProc)(
374     GLsizei n,
375     const GLuint* ids);
376 typedef void(GL_BINDING_CALL* glDeleteVertexArraysOESProc)(
377     GLsizei n,
378     const GLuint* arrays);
379 typedef void(GL_BINDING_CALL* glDepthFuncProc)(GLenum func);
380 typedef void(GL_BINDING_CALL* glDepthMaskProc)(GLboolean flag);
381 typedef void(GL_BINDING_CALL* glDepthRangeProc)(GLclampd zNear, GLclampd zFar);
382 typedef void(GL_BINDING_CALL* glDepthRangefProc)(GLclampf zNear, GLclampf zFar);
383 typedef void(GL_BINDING_CALL* glDetachShaderProc)(GLuint program,
384                                                   GLuint shader);
385 typedef void(GL_BINDING_CALL* glDisableProc)(GLenum cap);
386 typedef void(GL_BINDING_CALL* glDisableExtensionANGLEProc)(const char* name);
387 typedef void(GL_BINDING_CALL* glDisableVertexAttribArrayProc)(GLuint index);
388 typedef void(GL_BINDING_CALL* glDiscardFramebufferEXTProc)(
389     GLenum target,
390     GLsizei numAttachments,
391     const GLenum* attachments);
392 typedef void(GL_BINDING_CALL* glDispatchComputeProc)(GLuint numGroupsX,
393                                                      GLuint numGroupsY,
394                                                      GLuint numGroupsZ);
395 typedef void(GL_BINDING_CALL* glDispatchComputeIndirectProc)(GLintptr indirect);
396 typedef void(GL_BINDING_CALL* glDrawArraysProc)(GLenum mode,
397                                                 GLint first,
398                                                 GLsizei count);
399 typedef void(GL_BINDING_CALL* glDrawArraysIndirectProc)(GLenum mode,
400                                                         const void* indirect);
401 typedef void(GL_BINDING_CALL* glDrawArraysInstancedANGLEProc)(
402     GLenum mode,
403     GLint first,
404     GLsizei count,
405     GLsizei primcount);
406 typedef void(GL_BINDING_CALL* glDrawArraysInstancedBaseInstanceANGLEProc)(
407     GLenum mode,
408     GLint first,
409     GLsizei count,
410     GLsizei primcount,
411     GLuint baseinstance);
412 typedef void(GL_BINDING_CALL* glDrawBufferProc)(GLenum mode);
413 typedef void(GL_BINDING_CALL* glDrawBuffersARBProc)(GLsizei n,
414                                                     const GLenum* bufs);
415 typedef void(GL_BINDING_CALL* glDrawElementsProc)(GLenum mode,
416                                                   GLsizei count,
417                                                   GLenum type,
418                                                   const void* indices);
419 typedef void(GL_BINDING_CALL* glDrawElementsIndirectProc)(GLenum mode,
420                                                           GLenum type,
421                                                           const void* indirect);
422 typedef void(GL_BINDING_CALL* glDrawElementsInstancedANGLEProc)(
423     GLenum mode,
424     GLsizei count,
425     GLenum type,
426     const void* indices,
427     GLsizei primcount);
428 typedef void(
429     GL_BINDING_CALL* glDrawElementsInstancedBaseVertexBaseInstanceANGLEProc)(
430     GLenum mode,
431     GLsizei count,
432     GLenum type,
433     const void* indices,
434     GLsizei primcount,
435     GLint baseVertex,
436     GLuint baseInstance);
437 typedef void(GL_BINDING_CALL* glDrawRangeElementsProc)(GLenum mode,
438                                                        GLuint start,
439                                                        GLuint end,
440                                                        GLsizei count,
441                                                        GLenum type,
442                                                        const void* indices);
443 typedef void(GL_BINDING_CALL* glEGLImageTargetRenderbufferStorageOESProc)(
444     GLenum target,
445     GLeglImageOES image);
446 typedef void(GL_BINDING_CALL* glEGLImageTargetTexture2DOESProc)(
447     GLenum target,
448     GLeglImageOES image);
449 typedef void(GL_BINDING_CALL* glEnableProc)(GLenum cap);
450 typedef void(GL_BINDING_CALL* glEnableVertexAttribArrayProc)(GLuint index);
451 typedef void(GL_BINDING_CALL* glEndQueryProc)(GLenum target);
452 typedef void(GL_BINDING_CALL* glEndTilingQCOMProc)(GLbitfield preserveMask);
453 typedef void(GL_BINDING_CALL* glEndTransformFeedbackProc)(void);
454 typedef GLsync(GL_BINDING_CALL* glFenceSyncProc)(GLenum condition,
455                                                  GLbitfield flags);
456 typedef GLsync(GL_BINDING_CALL* glFenceSyncAPPLEProc)(GLenum condition,
457                                                       GLbitfield flags);
458 typedef void(GL_BINDING_CALL* glFinishProc)(void);
459 typedef void(GL_BINDING_CALL* glFinishFenceAPPLEProc)(GLuint fence);
460 typedef void(GL_BINDING_CALL* glFinishFenceNVProc)(GLuint fence);
461 typedef void(GL_BINDING_CALL* glFlushProc)(void);
462 typedef void(GL_BINDING_CALL* glFlushMappedBufferRangeProc)(GLenum target,
463                                                             GLintptr offset,
464                                                             GLsizeiptr length);
465 typedef void(GL_BINDING_CALL* glFramebufferParameteriProc)(GLenum target,
466                                                            GLenum pname,
467                                                            GLint param);
468 typedef void(GL_BINDING_CALL* glFramebufferRenderbufferEXTProc)(
469     GLenum target,
470     GLenum attachment,
471     GLenum renderbuffertarget,
472     GLuint renderbuffer);
473 typedef void(GL_BINDING_CALL* glFramebufferTexture2DEXTProc)(GLenum target,
474                                                              GLenum attachment,
475                                                              GLenum textarget,
476                                                              GLuint texture,
477                                                              GLint level);
478 typedef void(GL_BINDING_CALL* glFramebufferTexture2DMultisampleEXTProc)(
479     GLenum target,
480     GLenum attachment,
481     GLenum textarget,
482     GLuint texture,
483     GLint level,
484     GLsizei samples);
485 typedef void(GL_BINDING_CALL* glFramebufferTextureLayerProc)(GLenum target,
486                                                              GLenum attachment,
487                                                              GLuint texture,
488                                                              GLint level,
489                                                              GLint layer);
490 typedef void(GL_BINDING_CALL* glFramebufferTextureMultiviewOVRProc)(
491     GLenum target,
492     GLenum attachment,
493     GLuint texture,
494     GLint level,
495     GLint baseViewIndex,
496     GLsizei numViews);
497 typedef void(GL_BINDING_CALL* glFrontFaceProc)(GLenum mode);
498 typedef void(GL_BINDING_CALL* glGenBuffersARBProc)(GLsizei n, GLuint* buffers);
499 typedef void(GL_BINDING_CALL* glGenerateMipmapEXTProc)(GLenum target);
500 typedef void(GL_BINDING_CALL* glGenFencesAPPLEProc)(GLsizei n, GLuint* fences);
501 typedef void(GL_BINDING_CALL* glGenFencesNVProc)(GLsizei n, GLuint* fences);
502 typedef void(GL_BINDING_CALL* glGenFramebuffersEXTProc)(GLsizei n,
503                                                         GLuint* framebuffers);
504 typedef GLuint(GL_BINDING_CALL* glGenPathsNVProc)(GLsizei range);
505 typedef GLuint(GL_BINDING_CALL* glGenProgramPipelinesProc)(GLsizei n,
506                                                            GLuint* pipelines);
507 typedef void(GL_BINDING_CALL* glGenQueriesProc)(GLsizei n, GLuint* ids);
508 typedef void(GL_BINDING_CALL* glGenRenderbuffersEXTProc)(GLsizei n,
509                                                          GLuint* renderbuffers);
510 typedef void(GL_BINDING_CALL* glGenSamplersProc)(GLsizei n, GLuint* samplers);
511 typedef void(GL_BINDING_CALL* glGenSemaphoresEXTProc)(GLsizei n,
512                                                       GLuint* semaphores);
513 typedef void(GL_BINDING_CALL* glGenTexturesProc)(GLsizei n, GLuint* textures);
514 typedef void(GL_BINDING_CALL* glGenTransformFeedbacksProc)(GLsizei n,
515                                                            GLuint* ids);
516 typedef void(GL_BINDING_CALL* glGenVertexArraysOESProc)(GLsizei n,
517                                                         GLuint* arrays);
518 typedef void(GL_BINDING_CALL* glGetActiveAttribProc)(GLuint program,
519                                                      GLuint index,
520                                                      GLsizei bufsize,
521                                                      GLsizei* length,
522                                                      GLint* size,
523                                                      GLenum* type,
524                                                      char* name);
525 typedef void(GL_BINDING_CALL* glGetActiveUniformProc)(GLuint program,
526                                                       GLuint index,
527                                                       GLsizei bufsize,
528                                                       GLsizei* length,
529                                                       GLint* size,
530                                                       GLenum* type,
531                                                       char* name);
532 typedef void(GL_BINDING_CALL* glGetActiveUniformBlockivProc)(
533     GLuint program,
534     GLuint uniformBlockIndex,
535     GLenum pname,
536     GLint* params);
537 typedef void(GL_BINDING_CALL* glGetActiveUniformBlockivRobustANGLEProc)(
538     GLuint program,
539     GLuint uniformBlockIndex,
540     GLenum pname,
541     GLsizei bufSize,
542     GLsizei* length,
543     GLint* params);
544 typedef void(GL_BINDING_CALL* glGetActiveUniformBlockNameProc)(
545     GLuint program,
546     GLuint uniformBlockIndex,
547     GLsizei bufSize,
548     GLsizei* length,
549     char* uniformBlockName);
550 typedef void(GL_BINDING_CALL* glGetActiveUniformsivProc)(
551     GLuint program,
552     GLsizei uniformCount,
553     const GLuint* uniformIndices,
554     GLenum pname,
555     GLint* params);
556 typedef void(GL_BINDING_CALL* glGetAttachedShadersProc)(GLuint program,
557                                                         GLsizei maxcount,
558                                                         GLsizei* count,
559                                                         GLuint* shaders);
560 typedef GLint(GL_BINDING_CALL* glGetAttribLocationProc)(GLuint program,
561                                                         const char* name);
562 typedef void(GL_BINDING_CALL* glGetBooleani_vProc)(GLenum target,
563                                                    GLuint index,
564                                                    GLboolean* data);
565 typedef void(GL_BINDING_CALL* glGetBooleani_vRobustANGLEProc)(GLenum target,
566                                                               GLuint index,
567                                                               GLsizei bufSize,
568                                                               GLsizei* length,
569                                                               GLboolean* data);
570 typedef void(GL_BINDING_CALL* glGetBooleanvProc)(GLenum pname,
571                                                  GLboolean* params);
572 typedef void(GL_BINDING_CALL* glGetBooleanvRobustANGLEProc)(GLenum pname,
573                                                             GLsizei bufSize,
574                                                             GLsizei* length,
575                                                             GLboolean* data);
576 typedef void(GL_BINDING_CALL* glGetBufferParameteri64vRobustANGLEProc)(
577     GLenum target,
578     GLenum pname,
579     GLsizei bufSize,
580     GLsizei* length,
581     GLint64* params);
582 typedef void(GL_BINDING_CALL* glGetBufferParameterivProc)(GLenum target,
583                                                           GLenum pname,
584                                                           GLint* params);
585 typedef void(GL_BINDING_CALL* glGetBufferParameterivRobustANGLEProc)(
586     GLenum target,
587     GLenum pname,
588     GLsizei bufSize,
589     GLsizei* length,
590     GLint* params);
591 typedef void(GL_BINDING_CALL* glGetBufferPointervRobustANGLEProc)(
592     GLenum target,
593     GLenum pname,
594     GLsizei bufSize,
595     GLsizei* length,
596     void** params);
597 typedef GLuint(GL_BINDING_CALL* glGetDebugMessageLogProc)(GLuint count,
598                                                           GLsizei bufSize,
599                                                           GLenum* sources,
600                                                           GLenum* types,
601                                                           GLuint* ids,
602                                                           GLenum* severities,
603                                                           GLsizei* lengths,
604                                                           char* messageLog);
605 typedef GLenum(GL_BINDING_CALL* glGetErrorProc)(void);
606 typedef void(GL_BINDING_CALL* glGetFenceivNVProc)(GLuint fence,
607                                                   GLenum pname,
608                                                   GLint* params);
609 typedef void(GL_BINDING_CALL* glGetFloatvProc)(GLenum pname, GLfloat* params);
610 typedef void(GL_BINDING_CALL* glGetFloatvRobustANGLEProc)(GLenum pname,
611                                                           GLsizei bufSize,
612                                                           GLsizei* length,
613                                                           GLfloat* data);
614 typedef GLint(GL_BINDING_CALL* glGetFragDataIndexProc)(GLuint program,
615                                                        const char* name);
616 typedef GLint(GL_BINDING_CALL* glGetFragDataLocationProc)(GLuint program,
617                                                           const char* name);
618 typedef void(GL_BINDING_CALL* glGetFramebufferAttachmentParameterivEXTProc)(
619     GLenum target,
620     GLenum attachment,
621     GLenum pname,
622     GLint* params);
623 typedef void(
624     GL_BINDING_CALL* glGetFramebufferAttachmentParameterivRobustANGLEProc)(
625     GLenum target,
626     GLenum attachment,
627     GLenum pname,
628     GLsizei bufSize,
629     GLsizei* length,
630     GLint* params);
631 typedef void(GL_BINDING_CALL* glGetFramebufferParameterivProc)(GLenum target,
632                                                                GLenum pname,
633                                                                GLint* params);
634 typedef void(GL_BINDING_CALL* glGetFramebufferParameterivRobustANGLEProc)(
635     GLenum target,
636     GLenum pname,
637     GLsizei bufSize,
638     GLsizei* length,
639     GLint* params);
640 typedef GLenum(GL_BINDING_CALL* glGetGraphicsResetStatusARBProc)(void);
641 typedef void(GL_BINDING_CALL* glGetInteger64i_vProc)(GLenum target,
642                                                      GLuint index,
643                                                      GLint64* data);
644 typedef void(GL_BINDING_CALL* glGetInteger64i_vRobustANGLEProc)(GLenum target,
645                                                                 GLuint index,
646                                                                 GLsizei bufSize,
647                                                                 GLsizei* length,
648                                                                 GLint64* data);
649 typedef void(GL_BINDING_CALL* glGetInteger64vProc)(GLenum pname,
650                                                    GLint64* params);
651 typedef void(GL_BINDING_CALL* glGetInteger64vRobustANGLEProc)(GLenum pname,
652                                                               GLsizei bufSize,
653                                                               GLsizei* length,
654                                                               GLint64* data);
655 typedef void(GL_BINDING_CALL* glGetIntegeri_vProc)(GLenum target,
656                                                    GLuint index,
657                                                    GLint* data);
658 typedef void(GL_BINDING_CALL* glGetIntegeri_vRobustANGLEProc)(GLenum target,
659                                                               GLuint index,
660                                                               GLsizei bufSize,
661                                                               GLsizei* length,
662                                                               GLint* data);
663 typedef void(GL_BINDING_CALL* glGetIntegervProc)(GLenum pname, GLint* params);
664 typedef void(GL_BINDING_CALL* glGetIntegervRobustANGLEProc)(GLenum pname,
665                                                             GLsizei bufSize,
666                                                             GLsizei* length,
667                                                             GLint* data);
668 typedef void(GL_BINDING_CALL* glGetInternalformativProc)(GLenum target,
669                                                          GLenum internalformat,
670                                                          GLenum pname,
671                                                          GLsizei bufSize,
672                                                          GLint* params);
673 typedef void(GL_BINDING_CALL* glGetInternalformativRobustANGLEProc)(
674     GLenum target,
675     GLenum internalformat,
676     GLenum pname,
677     GLsizei bufSize,
678     GLsizei* length,
679     GLint* params);
680 typedef void(GL_BINDING_CALL* glGetInternalformatSampleivNVProc)(
681     GLenum target,
682     GLenum internalformat,
683     GLsizei samples,
684     GLenum pname,
685     GLsizei bufSize,
686     GLint* params);
687 typedef void(GL_BINDING_CALL* glGetMultisamplefvProc)(GLenum pname,
688                                                       GLuint index,
689                                                       GLfloat* val);
690 typedef void(GL_BINDING_CALL* glGetMultisamplefvRobustANGLEProc)(
691     GLenum pname,
692     GLuint index,
693     GLsizei bufSize,
694     GLsizei* length,
695     GLfloat* val);
696 typedef void(GL_BINDING_CALL* glGetnUniformfvRobustANGLEProc)(GLuint program,
697                                                               GLint location,
698                                                               GLsizei bufSize,
699                                                               GLsizei* length,
700                                                               GLfloat* params);
701 typedef void(GL_BINDING_CALL* glGetnUniformivRobustANGLEProc)(GLuint program,
702                                                               GLint location,
703                                                               GLsizei bufSize,
704                                                               GLsizei* length,
705                                                               GLint* params);
706 typedef void(GL_BINDING_CALL* glGetnUniformuivRobustANGLEProc)(GLuint program,
707                                                                GLint location,
708                                                                GLsizei bufSize,
709                                                                GLsizei* length,
710                                                                GLuint* params);
711 typedef void(GL_BINDING_CALL* glGetObjectLabelProc)(GLenum identifier,
712                                                     GLuint name,
713                                                     GLsizei bufSize,
714                                                     GLsizei* length,
715                                                     char* label);
716 typedef void(GL_BINDING_CALL* glGetObjectPtrLabelProc)(void* ptr,
717                                                        GLsizei bufSize,
718                                                        GLsizei* length,
719                                                        char* label);
720 typedef void(GL_BINDING_CALL* glGetPointervProc)(GLenum pname, void** params);
721 typedef void(GL_BINDING_CALL* glGetPointervRobustANGLERobustANGLEProc)(
722     GLenum pname,
723     GLsizei bufSize,
724     GLsizei* length,
725     void** params);
726 typedef void(GL_BINDING_CALL* glGetProgramBinaryProc)(GLuint program,
727                                                       GLsizei bufSize,
728                                                       GLsizei* length,
729                                                       GLenum* binaryFormat,
730                                                       GLvoid* binary);
731 typedef void(GL_BINDING_CALL* glGetProgramInfoLogProc)(GLuint program,
732                                                        GLsizei bufsize,
733                                                        GLsizei* length,
734                                                        char* infolog);
735 typedef void(GL_BINDING_CALL* glGetProgramInterfaceivProc)(
736     GLuint program,
737     GLenum programInterface,
738     GLenum pname,
739     GLint* params);
740 typedef void(GL_BINDING_CALL* glGetProgramInterfaceivRobustANGLEProc)(
741     GLuint program,
742     GLenum programInterface,
743     GLenum pname,
744     GLsizei bufSize,
745     GLsizei* length,
746     GLint* params);
747 typedef void(GL_BINDING_CALL* glGetProgramivProc)(GLuint program,
748                                                   GLenum pname,
749                                                   GLint* params);
750 typedef void(GL_BINDING_CALL* glGetProgramivRobustANGLEProc)(GLuint program,
751                                                              GLenum pname,
752                                                              GLsizei bufSize,
753                                                              GLsizei* length,
754                                                              GLint* params);
755 typedef void(GL_BINDING_CALL* glGetProgramPipelineInfoLogProc)(GLuint pipeline,
756                                                                GLsizei bufSize,
757                                                                GLsizei* length,
758                                                                GLchar* infoLog);
759 typedef void(GL_BINDING_CALL* glGetProgramPipelineivProc)(GLuint pipeline,
760                                                           GLenum pname,
761                                                           GLint* params);
762 typedef GLuint(GL_BINDING_CALL* glGetProgramResourceIndexProc)(
763     GLuint program,
764     GLenum programInterface,
765     const GLchar* name);
766 typedef void(GL_BINDING_CALL* glGetProgramResourceivProc)(
767     GLuint program,
768     GLenum programInterface,
769     GLuint index,
770     GLsizei propCount,
771     const GLenum* props,
772     GLsizei bufSize,
773     GLsizei* length,
774     GLint* params);
775 typedef GLint(GL_BINDING_CALL* glGetProgramResourceLocationProc)(
776     GLuint program,
777     GLenum programInterface,
778     const char* name);
779 typedef void(GL_BINDING_CALL* glGetProgramResourceNameProc)(
780     GLuint program,
781     GLenum programInterface,
782     GLuint index,
783     GLsizei bufSize,
784     GLsizei* length,
785     GLchar* name);
786 typedef void(GL_BINDING_CALL* glGetQueryivProc)(GLenum target,
787                                                 GLenum pname,
788                                                 GLint* params);
789 typedef void(GL_BINDING_CALL* glGetQueryivRobustANGLEProc)(GLenum target,
790                                                            GLenum pname,
791                                                            GLsizei bufSize,
792                                                            GLsizei* length,
793                                                            GLint* params);
794 typedef void(GL_BINDING_CALL* glGetQueryObjecti64vProc)(GLuint id,
795                                                         GLenum pname,
796                                                         GLint64* params);
797 typedef void(GL_BINDING_CALL* glGetQueryObjecti64vRobustANGLEProc)(
798     GLuint id,
799     GLenum pname,
800     GLsizei bufSize,
801     GLsizei* length,
802     GLint64* params);
803 typedef void(GL_BINDING_CALL* glGetQueryObjectivProc)(GLuint id,
804                                                       GLenum pname,
805                                                       GLint* params);
806 typedef void(GL_BINDING_CALL* glGetQueryObjectivRobustANGLEProc)(
807     GLuint id,
808     GLenum pname,
809     GLsizei bufSize,
810     GLsizei* length,
811     GLint* params);
812 typedef void(GL_BINDING_CALL* glGetQueryObjectui64vProc)(GLuint id,
813                                                          GLenum pname,
814                                                          GLuint64* params);
815 typedef void(GL_BINDING_CALL* glGetQueryObjectui64vRobustANGLEProc)(
816     GLuint id,
817     GLenum pname,
818     GLsizei bufSize,
819     GLsizei* length,
820     GLuint64* params);
821 typedef void(GL_BINDING_CALL* glGetQueryObjectuivProc)(GLuint id,
822                                                        GLenum pname,
823                                                        GLuint* params);
824 typedef void(GL_BINDING_CALL* glGetQueryObjectuivRobustANGLEProc)(
825     GLuint id,
826     GLenum pname,
827     GLsizei bufSize,
828     GLsizei* length,
829     GLuint* params);
830 typedef void(GL_BINDING_CALL* glGetRenderbufferParameterivEXTProc)(
831     GLenum target,
832     GLenum pname,
833     GLint* params);
834 typedef void(GL_BINDING_CALL* glGetRenderbufferParameterivRobustANGLEProc)(
835     GLenum target,
836     GLenum pname,
837     GLsizei bufSize,
838     GLsizei* length,
839     GLint* params);
840 typedef void(GL_BINDING_CALL* glGetSamplerParameterfvProc)(GLuint sampler,
841                                                            GLenum pname,
842                                                            GLfloat* params);
843 typedef void(GL_BINDING_CALL* glGetSamplerParameterfvRobustANGLEProc)(
844     GLuint sampler,
845     GLenum pname,
846     GLsizei bufSize,
847     GLsizei* length,
848     GLfloat* params);
849 typedef void(GL_BINDING_CALL* glGetSamplerParameterIivRobustANGLEProc)(
850     GLuint sampler,
851     GLenum pname,
852     GLsizei bufSize,
853     GLsizei* length,
854     GLint* params);
855 typedef void(GL_BINDING_CALL* glGetSamplerParameterIuivRobustANGLEProc)(
856     GLuint sampler,
857     GLenum pname,
858     GLsizei bufSize,
859     GLsizei* length,
860     GLuint* params);
861 typedef void(GL_BINDING_CALL* glGetSamplerParameterivProc)(GLuint sampler,
862                                                            GLenum pname,
863                                                            GLint* params);
864 typedef void(GL_BINDING_CALL* glGetSamplerParameterivRobustANGLEProc)(
865     GLuint sampler,
866     GLenum pname,
867     GLsizei bufSize,
868     GLsizei* length,
869     GLint* params);
870 typedef void(GL_BINDING_CALL* glGetShaderInfoLogProc)(GLuint shader,
871                                                       GLsizei bufsize,
872                                                       GLsizei* length,
873                                                       char* infolog);
874 typedef void(GL_BINDING_CALL* glGetShaderivProc)(GLuint shader,
875                                                  GLenum pname,
876                                                  GLint* params);
877 typedef void(GL_BINDING_CALL* glGetShaderivRobustANGLEProc)(GLuint shader,
878                                                             GLenum pname,
879                                                             GLsizei bufSize,
880                                                             GLsizei* length,
881                                                             GLint* params);
882 typedef void(GL_BINDING_CALL* glGetShaderPrecisionFormatProc)(
883     GLenum shadertype,
884     GLenum precisiontype,
885     GLint* range,
886     GLint* precision);
887 typedef void(GL_BINDING_CALL* glGetShaderSourceProc)(GLuint shader,
888                                                      GLsizei bufsize,
889                                                      GLsizei* length,
890                                                      char* source);
891 typedef const GLubyte*(GL_BINDING_CALL* glGetStringProc)(GLenum name);
892 typedef const GLubyte*(GL_BINDING_CALL* glGetStringiProc)(GLenum name,
893                                                           GLuint index);
894 typedef void(GL_BINDING_CALL* glGetSyncivProc)(GLsync sync,
895                                                GLenum pname,
896                                                GLsizei bufSize,
897                                                GLsizei* length,
898                                                GLint* values);
899 typedef void(GL_BINDING_CALL* glGetTexLevelParameterfvProc)(GLenum target,
900                                                             GLint level,
901                                                             GLenum pname,
902                                                             GLfloat* params);
903 typedef void(GL_BINDING_CALL* glGetTexLevelParameterfvRobustANGLEProc)(
904     GLenum target,
905     GLint level,
906     GLenum pname,
907     GLsizei bufSize,
908     GLsizei* length,
909     GLfloat* params);
910 typedef void(GL_BINDING_CALL* glGetTexLevelParameterivProc)(GLenum target,
911                                                             GLint level,
912                                                             GLenum pname,
913                                                             GLint* params);
914 typedef void(GL_BINDING_CALL* glGetTexLevelParameterivRobustANGLEProc)(
915     GLenum target,
916     GLint level,
917     GLenum pname,
918     GLsizei bufSize,
919     GLsizei* length,
920     GLint* params);
921 typedef void(GL_BINDING_CALL* glGetTexParameterfvProc)(GLenum target,
922                                                        GLenum pname,
923                                                        GLfloat* params);
924 typedef void(GL_BINDING_CALL* glGetTexParameterfvRobustANGLEProc)(
925     GLenum target,
926     GLenum pname,
927     GLsizei bufSize,
928     GLsizei* length,
929     GLfloat* params);
930 typedef void(GL_BINDING_CALL* glGetTexParameterIivRobustANGLEProc)(
931     GLenum target,
932     GLenum pname,
933     GLsizei bufSize,
934     GLsizei* length,
935     GLint* params);
936 typedef void(GL_BINDING_CALL* glGetTexParameterIuivRobustANGLEProc)(
937     GLenum target,
938     GLenum pname,
939     GLsizei bufSize,
940     GLsizei* length,
941     GLuint* params);
942 typedef void(GL_BINDING_CALL* glGetTexParameterivProc)(GLenum target,
943                                                        GLenum pname,
944                                                        GLint* params);
945 typedef void(GL_BINDING_CALL* glGetTexParameterivRobustANGLEProc)(
946     GLenum target,
947     GLenum pname,
948     GLsizei bufSize,
949     GLsizei* length,
950     GLint* params);
951 typedef void(GL_BINDING_CALL* glGetTransformFeedbackVaryingProc)(
952     GLuint program,
953     GLuint index,
954     GLsizei bufSize,
955     GLsizei* length,
956     GLsizei* size,
957     GLenum* type,
958     char* name);
959 typedef void(GL_BINDING_CALL* glGetTranslatedShaderSourceANGLEProc)(
960     GLuint shader,
961     GLsizei bufsize,
962     GLsizei* length,
963     char* source);
964 typedef GLuint(GL_BINDING_CALL* glGetUniformBlockIndexProc)(
965     GLuint program,
966     const char* uniformBlockName);
967 typedef void(GL_BINDING_CALL* glGetUniformfvProc)(GLuint program,
968                                                   GLint location,
969                                                   GLfloat* params);
970 typedef void(GL_BINDING_CALL* glGetUniformfvRobustANGLEProc)(GLuint program,
971                                                              GLint location,
972                                                              GLsizei bufSize,
973                                                              GLsizei* length,
974                                                              GLfloat* params);
975 typedef void(GL_BINDING_CALL* glGetUniformIndicesProc)(
976     GLuint program,
977     GLsizei uniformCount,
978     const char* const* uniformNames,
979     GLuint* uniformIndices);
980 typedef void(GL_BINDING_CALL* glGetUniformivProc)(GLuint program,
981                                                   GLint location,
982                                                   GLint* params);
983 typedef void(GL_BINDING_CALL* glGetUniformivRobustANGLEProc)(GLuint program,
984                                                              GLint location,
985                                                              GLsizei bufSize,
986                                                              GLsizei* length,
987                                                              GLint* params);
988 typedef GLint(GL_BINDING_CALL* glGetUniformLocationProc)(GLuint program,
989                                                          const char* name);
990 typedef void(GL_BINDING_CALL* glGetUniformuivProc)(GLuint program,
991                                                    GLint location,
992                                                    GLuint* params);
993 typedef void(GL_BINDING_CALL* glGetUniformuivRobustANGLEProc)(GLuint program,
994                                                               GLint location,
995                                                               GLsizei bufSize,
996                                                               GLsizei* length,
997                                                               GLuint* params);
998 typedef void(GL_BINDING_CALL* glGetVertexAttribfvProc)(GLuint index,
999                                                        GLenum pname,
1000                                                        GLfloat* params);
1001 typedef void(GL_BINDING_CALL* glGetVertexAttribfvRobustANGLEProc)(
1002     GLuint index,
1003     GLenum pname,
1004     GLsizei bufSize,
1005     GLsizei* length,
1006     GLfloat* params);
1007 typedef void(GL_BINDING_CALL* glGetVertexAttribIivRobustANGLEProc)(
1008     GLuint index,
1009     GLenum pname,
1010     GLsizei bufSize,
1011     GLsizei* length,
1012     GLint* params);
1013 typedef void(GL_BINDING_CALL* glGetVertexAttribIuivRobustANGLEProc)(
1014     GLuint index,
1015     GLenum pname,
1016     GLsizei bufSize,
1017     GLsizei* length,
1018     GLuint* params);
1019 typedef void(GL_BINDING_CALL* glGetVertexAttribivProc)(GLuint index,
1020                                                        GLenum pname,
1021                                                        GLint* params);
1022 typedef void(GL_BINDING_CALL* glGetVertexAttribivRobustANGLEProc)(
1023     GLuint index,
1024     GLenum pname,
1025     GLsizei bufSize,
1026     GLsizei* length,
1027     GLint* params);
1028 typedef void(GL_BINDING_CALL* glGetVertexAttribPointervProc)(GLuint index,
1029                                                              GLenum pname,
1030                                                              void** pointer);
1031 typedef void(GL_BINDING_CALL* glGetVertexAttribPointervRobustANGLEProc)(
1032     GLuint index,
1033     GLenum pname,
1034     GLsizei bufSize,
1035     GLsizei* length,
1036     void** pointer);
1037 typedef void(GL_BINDING_CALL* glHintProc)(GLenum target, GLenum mode);
1038 typedef void(GL_BINDING_CALL* glImportMemoryFdEXTProc)(GLuint memory,
1039                                                        GLuint64 size,
1040                                                        GLenum handleType,
1041                                                        GLint fd);
1042 typedef void(GL_BINDING_CALL* glImportMemoryZirconHandleANGLEProc)(
1043     GLuint memory,
1044     GLuint64 size,
1045     GLenum handleType,
1046     GLuint handle);
1047 typedef void(GL_BINDING_CALL* glImportSemaphoreFdEXTProc)(GLuint semaphore,
1048                                                           GLenum handleType,
1049                                                           GLint fd);
1050 typedef void(GL_BINDING_CALL* glImportSemaphoreZirconHandleANGLEProc)(
1051     GLuint semaphore,
1052     GLenum handleType,
1053     GLuint handle);
1054 typedef void(GL_BINDING_CALL* glInsertEventMarkerEXTProc)(GLsizei length,
1055                                                           const char* marker);
1056 typedef void(GL_BINDING_CALL* glInvalidateFramebufferProc)(
1057     GLenum target,
1058     GLsizei numAttachments,
1059     const GLenum* attachments);
1060 typedef void(GL_BINDING_CALL* glInvalidateSubFramebufferProc)(
1061     GLenum target,
1062     GLsizei numAttachments,
1063     const GLenum* attachments,
1064     GLint x,
1065     GLint y,
1066     GLint width,
1067     GLint height);
1068 typedef void(GL_BINDING_CALL* glInvalidateTextureANGLEProc)(GLenum target);
1069 typedef GLboolean(GL_BINDING_CALL* glIsBufferProc)(GLuint buffer);
1070 typedef GLboolean(GL_BINDING_CALL* glIsEnabledProc)(GLenum cap);
1071 typedef GLboolean(GL_BINDING_CALL* glIsFenceAPPLEProc)(GLuint fence);
1072 typedef GLboolean(GL_BINDING_CALL* glIsFenceNVProc)(GLuint fence);
1073 typedef GLboolean(GL_BINDING_CALL* glIsFramebufferEXTProc)(GLuint framebuffer);
1074 typedef GLboolean(GL_BINDING_CALL* glIsPathNVProc)(GLuint path);
1075 typedef GLboolean(GL_BINDING_CALL* glIsProgramProc)(GLuint program);
1076 typedef GLboolean(GL_BINDING_CALL* glIsProgramPipelineProc)(GLuint pipeline);
1077 typedef GLboolean(GL_BINDING_CALL* glIsQueryProc)(GLuint query);
1078 typedef GLboolean(GL_BINDING_CALL* glIsRenderbufferEXTProc)(
1079     GLuint renderbuffer);
1080 typedef GLboolean(GL_BINDING_CALL* glIsSamplerProc)(GLuint sampler);
1081 typedef GLboolean(GL_BINDING_CALL* glIsShaderProc)(GLuint shader);
1082 typedef GLboolean(GL_BINDING_CALL* glIsSyncProc)(GLsync sync);
1083 typedef GLboolean(GL_BINDING_CALL* glIsSyncAPPLEProc)(GLsync sync);
1084 typedef GLboolean(GL_BINDING_CALL* glIsTextureProc)(GLuint texture);
1085 typedef GLboolean(GL_BINDING_CALL* glIsTransformFeedbackProc)(GLuint id);
1086 typedef GLboolean(GL_BINDING_CALL* glIsVertexArrayOESProc)(GLuint array);
1087 typedef void(GL_BINDING_CALL* glLineWidthProc)(GLfloat width);
1088 typedef void(GL_BINDING_CALL* glLinkProgramProc)(GLuint program);
1089 typedef void*(GL_BINDING_CALL* glMapBufferProc)(GLenum target, GLenum access);
1090 typedef void*(GL_BINDING_CALL* glMapBufferRangeProc)(GLenum target,
1091                                                      GLintptr offset,
1092                                                      GLsizeiptr length,
1093                                                      GLbitfield access);
1094 typedef void(GL_BINDING_CALL* glMatrixLoadfEXTProc)(GLenum matrixMode,
1095                                                     const GLfloat* m);
1096 typedef void(GL_BINDING_CALL* glMatrixLoadIdentityEXTProc)(GLenum matrixMode);
1097 typedef void(GL_BINDING_CALL* glMaxShaderCompilerThreadsKHRProc)(GLuint count);
1098 typedef void(GL_BINDING_CALL* glMemoryBarrierByRegionProc)(GLbitfield barriers);
1099 typedef void(GL_BINDING_CALL* glMemoryBarrierEXTProc)(GLbitfield barriers);
1100 typedef void(GL_BINDING_CALL* glMemoryObjectParameterivEXTProc)(
1101     GLuint memoryObject,
1102     GLenum pname,
1103     const GLint* param);
1104 typedef void(GL_BINDING_CALL* glMinSampleShadingProc)(GLfloat value);
1105 typedef void(GL_BINDING_CALL* glMultiDrawArraysANGLEProc)(GLenum mode,
1106                                                           const GLint* firsts,
1107                                                           const GLsizei* counts,
1108                                                           GLsizei drawcount);
1109 typedef void(GL_BINDING_CALL* glMultiDrawArraysInstancedANGLEProc)(
1110     GLenum mode,
1111     const GLint* firsts,
1112     const GLsizei* counts,
1113     const GLsizei* instanceCounts,
1114     GLsizei drawcount);
1115 typedef void(GL_BINDING_CALL* glMultiDrawArraysInstancedBaseInstanceANGLEProc)(
1116     GLenum mode,
1117     const GLint* firsts,
1118     const GLsizei* counts,
1119     const GLsizei* instanceCounts,
1120     const GLuint* baseInstances,
1121     GLsizei drawcount);
1122 typedef void(GL_BINDING_CALL* glMultiDrawElementsANGLEProc)(
1123     GLenum mode,
1124     const GLsizei* counts,
1125     GLenum type,
1126     const GLvoid* const* indices,
1127     GLsizei drawcount);
1128 typedef void(GL_BINDING_CALL* glMultiDrawElementsInstancedANGLEProc)(
1129     GLenum mode,
1130     const GLsizei* counts,
1131     GLenum type,
1132     const GLvoid* const* indices,
1133     const GLsizei* instanceCounts,
1134     GLsizei drawcount);
1135 typedef void(GL_BINDING_CALL*
1136                  glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEProc)(
1137     GLenum mode,
1138     const GLsizei* counts,
1139     GLenum type,
1140     const GLvoid* const* indices,
1141     const GLsizei* instanceCounts,
1142     const GLint* baseVertices,
1143     const GLuint* baseInstances,
1144     GLsizei drawcount);
1145 typedef void(GL_BINDING_CALL* glObjectLabelProc)(GLenum identifier,
1146                                                  GLuint name,
1147                                                  GLsizei length,
1148                                                  const char* label);
1149 typedef void(GL_BINDING_CALL* glObjectPtrLabelProc)(void* ptr,
1150                                                     GLsizei length,
1151                                                     const char* label);
1152 typedef void(GL_BINDING_CALL* glPathCommandsNVProc)(GLuint path,
1153                                                     GLsizei numCommands,
1154                                                     const GLubyte* commands,
1155                                                     GLsizei numCoords,
1156                                                     GLenum coordType,
1157                                                     const GLvoid* coords);
1158 typedef void(GL_BINDING_CALL* glPathParameterfNVProc)(GLuint path,
1159                                                       GLenum pname,
1160                                                       GLfloat value);
1161 typedef void(GL_BINDING_CALL* glPathParameteriNVProc)(GLuint path,
1162                                                       GLenum pname,
1163                                                       GLint value);
1164 typedef void(GL_BINDING_CALL* glPathStencilFuncNVProc)(GLenum func,
1165                                                        GLint ref,
1166                                                        GLuint mask);
1167 typedef void(GL_BINDING_CALL* glPauseTransformFeedbackProc)(void);
1168 typedef void(GL_BINDING_CALL* glPixelStoreiProc)(GLenum pname, GLint param);
1169 typedef void(GL_BINDING_CALL* glPointParameteriProc)(GLenum pname, GLint param);
1170 typedef void(GL_BINDING_CALL* glPolygonModeProc)(GLenum face, GLenum mode);
1171 typedef void(GL_BINDING_CALL* glPolygonOffsetProc)(GLfloat factor,
1172                                                    GLfloat units);
1173 typedef void(GL_BINDING_CALL* glPopDebugGroupProc)();
1174 typedef void(GL_BINDING_CALL* glPopGroupMarkerEXTProc)(void);
1175 typedef void(GL_BINDING_CALL* glPrimitiveRestartIndexProc)(GLuint index);
1176 typedef void(GL_BINDING_CALL* glProgramBinaryProc)(GLuint program,
1177                                                    GLenum binaryFormat,
1178                                                    const GLvoid* binary,
1179                                                    GLsizei length);
1180 typedef void(GL_BINDING_CALL* glProgramParameteriProc)(GLuint program,
1181                                                        GLenum pname,
1182                                                        GLint value);
1183 typedef void(GL_BINDING_CALL* glProgramPathFragmentInputGenNVProc)(
1184     GLuint program,
1185     GLint location,
1186     GLenum genMode,
1187     GLint components,
1188     const GLfloat* coeffs);
1189 typedef void(GL_BINDING_CALL* glProgramUniform1fProc)(GLuint program,
1190                                                       GLint location,
1191                                                       GLfloat v0);
1192 typedef void(GL_BINDING_CALL* glProgramUniform1fvProc)(GLuint program,
1193                                                        GLint location,
1194                                                        GLsizei count,
1195                                                        const GLfloat* value);
1196 typedef void(GL_BINDING_CALL* glProgramUniform1iProc)(GLuint program,
1197                                                       GLint location,
1198                                                       GLint v0);
1199 typedef void(GL_BINDING_CALL* glProgramUniform1ivProc)(GLuint program,
1200                                                        GLint location,
1201                                                        GLsizei count,
1202                                                        const GLint* value);
1203 typedef void(GL_BINDING_CALL* glProgramUniform1uiProc)(GLuint program,
1204                                                        GLint location,
1205                                                        GLuint v0);
1206 typedef void(GL_BINDING_CALL* glProgramUniform1uivProc)(GLuint program,
1207                                                         GLint location,
1208                                                         GLsizei count,
1209                                                         const GLuint* value);
1210 typedef void(GL_BINDING_CALL* glProgramUniform2fProc)(GLuint program,
1211                                                       GLint location,
1212                                                       GLfloat v0,
1213                                                       GLfloat v1);
1214 typedef void(GL_BINDING_CALL* glProgramUniform2fvProc)(GLuint program,
1215                                                        GLint location,
1216                                                        GLsizei count,
1217                                                        const GLfloat* value);
1218 typedef void(GL_BINDING_CALL* glProgramUniform2iProc)(GLuint program,
1219                                                       GLint location,
1220                                                       GLint v0,
1221                                                       GLint v1);
1222 typedef void(GL_BINDING_CALL* glProgramUniform2ivProc)(GLuint program,
1223                                                        GLint location,
1224                                                        GLsizei count,
1225                                                        const GLint* value);
1226 typedef void(GL_BINDING_CALL* glProgramUniform2uiProc)(GLuint program,
1227                                                        GLint location,
1228                                                        GLuint v0,
1229                                                        GLuint v1);
1230 typedef void(GL_BINDING_CALL* glProgramUniform2uivProc)(GLuint program,
1231                                                         GLint location,
1232                                                         GLsizei count,
1233                                                         const GLuint* value);
1234 typedef void(GL_BINDING_CALL* glProgramUniform3fProc)(GLuint program,
1235                                                       GLint location,
1236                                                       GLfloat v0,
1237                                                       GLfloat v1,
1238                                                       GLfloat v2);
1239 typedef void(GL_BINDING_CALL* glProgramUniform3fvProc)(GLuint program,
1240                                                        GLint location,
1241                                                        GLsizei count,
1242                                                        const GLfloat* value);
1243 typedef void(GL_BINDING_CALL* glProgramUniform3iProc)(GLuint program,
1244                                                       GLint location,
1245                                                       GLint v0,
1246                                                       GLint v1,
1247                                                       GLint v2);
1248 typedef void(GL_BINDING_CALL* glProgramUniform3ivProc)(GLuint program,
1249                                                        GLint location,
1250                                                        GLsizei count,
1251                                                        const GLint* value);
1252 typedef void(GL_BINDING_CALL* glProgramUniform3uiProc)(GLuint program,
1253                                                        GLint location,
1254                                                        GLuint v0,
1255                                                        GLuint v1,
1256                                                        GLuint v2);
1257 typedef void(GL_BINDING_CALL* glProgramUniform3uivProc)(GLuint program,
1258                                                         GLint location,
1259                                                         GLsizei count,
1260                                                         const GLuint* value);
1261 typedef void(GL_BINDING_CALL* glProgramUniform4fProc)(GLuint program,
1262                                                       GLint location,
1263                                                       GLfloat v0,
1264                                                       GLfloat v1,
1265                                                       GLfloat v2,
1266                                                       GLfloat v3);
1267 typedef void(GL_BINDING_CALL* glProgramUniform4fvProc)(GLuint program,
1268                                                        GLint location,
1269                                                        GLsizei count,
1270                                                        const GLfloat* value);
1271 typedef void(GL_BINDING_CALL* glProgramUniform4iProc)(GLuint program,
1272                                                       GLint location,
1273                                                       GLint v0,
1274                                                       GLint v1,
1275                                                       GLint v2,
1276                                                       GLint v3);
1277 typedef void(GL_BINDING_CALL* glProgramUniform4ivProc)(GLuint program,
1278                                                        GLint location,
1279                                                        GLsizei count,
1280                                                        const GLint* value);
1281 typedef void(GL_BINDING_CALL* glProgramUniform4uiProc)(GLuint program,
1282                                                        GLint location,
1283                                                        GLuint v0,
1284                                                        GLuint v1,
1285                                                        GLuint v2,
1286                                                        GLuint v3);
1287 typedef void(GL_BINDING_CALL* glProgramUniform4uivProc)(GLuint program,
1288                                                         GLint location,
1289                                                         GLsizei count,
1290                                                         const GLuint* value);
1291 typedef void(GL_BINDING_CALL* glProgramUniformMatrix2fvProc)(
1292     GLuint program,
1293     GLint location,
1294     GLsizei count,
1295     GLboolean transpose,
1296     const GLfloat* value);
1297 typedef void(GL_BINDING_CALL* glProgramUniformMatrix2x3fvProc)(
1298     GLuint program,
1299     GLint location,
1300     GLsizei count,
1301     GLboolean transpose,
1302     const GLfloat* value);
1303 typedef void(GL_BINDING_CALL* glProgramUniformMatrix2x4fvProc)(
1304     GLuint program,
1305     GLint location,
1306     GLsizei count,
1307     GLboolean transpose,
1308     const GLfloat* value);
1309 typedef void(GL_BINDING_CALL* glProgramUniformMatrix3fvProc)(
1310     GLuint program,
1311     GLint location,
1312     GLsizei count,
1313     GLboolean transpose,
1314     const GLfloat* value);
1315 typedef void(GL_BINDING_CALL* glProgramUniformMatrix3x2fvProc)(
1316     GLuint program,
1317     GLint location,
1318     GLsizei count,
1319     GLboolean transpose,
1320     const GLfloat* value);
1321 typedef void(GL_BINDING_CALL* glProgramUniformMatrix3x4fvProc)(
1322     GLuint program,
1323     GLint location,
1324     GLsizei count,
1325     GLboolean transpose,
1326     const GLfloat* value);
1327 typedef void(GL_BINDING_CALL* glProgramUniformMatrix4fvProc)(
1328     GLuint program,
1329     GLint location,
1330     GLsizei count,
1331     GLboolean transpose,
1332     const GLfloat* value);
1333 typedef void(GL_BINDING_CALL* glProgramUniformMatrix4x2fvProc)(
1334     GLuint program,
1335     GLint location,
1336     GLsizei count,
1337     GLboolean transpose,
1338     const GLfloat* value);
1339 typedef void(GL_BINDING_CALL* glProgramUniformMatrix4x3fvProc)(
1340     GLuint program,
1341     GLint location,
1342     GLsizei count,
1343     GLboolean transpose,
1344     const GLfloat* value);
1345 typedef void(GL_BINDING_CALL* glPushDebugGroupProc)(GLenum source,
1346                                                     GLuint id,
1347                                                     GLsizei length,
1348                                                     const char* message);
1349 typedef void(GL_BINDING_CALL* glPushGroupMarkerEXTProc)(GLsizei length,
1350                                                         const char* marker);
1351 typedef void(GL_BINDING_CALL* glQueryCounterProc)(GLuint id, GLenum target);
1352 typedef void(GL_BINDING_CALL* glReadBufferProc)(GLenum src);
1353 typedef void(GL_BINDING_CALL* glReadnPixelsRobustANGLEProc)(GLint x,
1354                                                             GLint y,
1355                                                             GLsizei width,
1356                                                             GLsizei height,
1357                                                             GLenum format,
1358                                                             GLenum type,
1359                                                             GLsizei bufSize,
1360                                                             GLsizei* length,
1361                                                             GLsizei* columns,
1362                                                             GLsizei* rows,
1363                                                             void* data);
1364 typedef void(GL_BINDING_CALL* glReadPixelsProc)(GLint x,
1365                                                 GLint y,
1366                                                 GLsizei width,
1367                                                 GLsizei height,
1368                                                 GLenum format,
1369                                                 GLenum type,
1370                                                 void* pixels);
1371 typedef void(GL_BINDING_CALL* glReadPixelsRobustANGLEProc)(GLint x,
1372                                                            GLint y,
1373                                                            GLsizei width,
1374                                                            GLsizei height,
1375                                                            GLenum format,
1376                                                            GLenum type,
1377                                                            GLsizei bufSize,
1378                                                            GLsizei* length,
1379                                                            GLsizei* columns,
1380                                                            GLsizei* rows,
1381                                                            void* pixels);
1382 typedef void(GL_BINDING_CALL* glReleaseShaderCompilerProc)(void);
1383 typedef void(GL_BINDING_CALL* glRenderbufferStorageEXTProc)(
1384     GLenum target,
1385     GLenum internalformat,
1386     GLsizei width,
1387     GLsizei height);
1388 typedef void(GL_BINDING_CALL* glRenderbufferStorageMultisampleProc)(
1389     GLenum target,
1390     GLsizei samples,
1391     GLenum internalformat,
1392     GLsizei width,
1393     GLsizei height);
1394 typedef void(GL_BINDING_CALL* glRenderbufferStorageMultisampleAdvancedAMDProc)(
1395     GLenum target,
1396     GLsizei samples,
1397     GLsizei storageSamples,
1398     GLenum internalformat,
1399     GLsizei width,
1400     GLsizei height);
1401 typedef void(GL_BINDING_CALL* glRenderbufferStorageMultisampleEXTProc)(
1402     GLenum target,
1403     GLsizei samples,
1404     GLenum internalformat,
1405     GLsizei width,
1406     GLsizei height);
1407 typedef void(GL_BINDING_CALL* glRequestExtensionANGLEProc)(const char* name);
1408 typedef void(GL_BINDING_CALL* glResumeTransformFeedbackProc)(void);
1409 typedef void(GL_BINDING_CALL* glSampleCoverageProc)(GLclampf value,
1410                                                     GLboolean invert);
1411 typedef void(GL_BINDING_CALL* glSampleMaskiProc)(GLuint maskNumber,
1412                                                  GLbitfield mask);
1413 typedef void(GL_BINDING_CALL* glSamplerParameterfProc)(GLuint sampler,
1414                                                        GLenum pname,
1415                                                        GLfloat param);
1416 typedef void(GL_BINDING_CALL* glSamplerParameterfvProc)(GLuint sampler,
1417                                                         GLenum pname,
1418                                                         const GLfloat* params);
1419 typedef void(GL_BINDING_CALL* glSamplerParameterfvRobustANGLEProc)(
1420     GLuint sampler,
1421     GLenum pname,
1422     GLsizei bufSize,
1423     const GLfloat* param);
1424 typedef void(GL_BINDING_CALL* glSamplerParameteriProc)(GLuint sampler,
1425                                                        GLenum pname,
1426                                                        GLint param);
1427 typedef void(GL_BINDING_CALL* glSamplerParameterIivRobustANGLEProc)(
1428     GLuint sampler,
1429     GLenum pname,
1430     GLsizei bufSize,
1431     const GLint* param);
1432 typedef void(GL_BINDING_CALL* glSamplerParameterIuivRobustANGLEProc)(
1433     GLuint sampler,
1434     GLenum pname,
1435     GLsizei bufSize,
1436     const GLuint* param);
1437 typedef void(GL_BINDING_CALL* glSamplerParameterivProc)(GLuint sampler,
1438                                                         GLenum pname,
1439                                                         const GLint* params);
1440 typedef void(GL_BINDING_CALL* glSamplerParameterivRobustANGLEProc)(
1441     GLuint sampler,
1442     GLenum pname,
1443     GLsizei bufSize,
1444     const GLint* param);
1445 typedef void(GL_BINDING_CALL* glScissorProc)(GLint x,
1446                                              GLint y,
1447                                              GLsizei width,
1448                                              GLsizei height);
1449 typedef void(GL_BINDING_CALL* glSetFenceAPPLEProc)(GLuint fence);
1450 typedef void(GL_BINDING_CALL* glSetFenceNVProc)(GLuint fence, GLenum condition);
1451 typedef void(GL_BINDING_CALL* glShaderBinaryProc)(GLsizei n,
1452                                                   const GLuint* shaders,
1453                                                   GLenum binaryformat,
1454                                                   const void* binary,
1455                                                   GLsizei length);
1456 typedef void(GL_BINDING_CALL* glShaderSourceProc)(GLuint shader,
1457                                                   GLsizei count,
1458                                                   const char* const* str,
1459                                                   const GLint* length);
1460 typedef void(GL_BINDING_CALL* glSignalSemaphoreEXTProc)(
1461     GLuint semaphore,
1462     GLuint numBufferBarriers,
1463     const GLuint* buffers,
1464     GLuint numTextureBarriers,
1465     const GLuint* textures,
1466     const GLenum* dstLayouts);
1467 typedef void(GL_BINDING_CALL* glStartTilingQCOMProc)(GLuint x,
1468                                                      GLuint y,
1469                                                      GLuint width,
1470                                                      GLuint height,
1471                                                      GLbitfield preserveMask);
1472 typedef void(GL_BINDING_CALL* glStencilFillPathInstancedNVProc)(
1473     GLsizei numPaths,
1474     GLenum pathNameType,
1475     const void* paths,
1476     GLuint pathBase,
1477     GLenum fillMode,
1478     GLuint mask,
1479     GLenum transformType,
1480     const GLfloat* transformValues);
1481 typedef void(GL_BINDING_CALL* glStencilFillPathNVProc)(GLuint path,
1482                                                        GLenum fillMode,
1483                                                        GLuint mask);
1484 typedef void(GL_BINDING_CALL* glStencilFuncProc)(GLenum func,
1485                                                  GLint ref,
1486                                                  GLuint mask);
1487 typedef void(GL_BINDING_CALL* glStencilFuncSeparateProc)(GLenum face,
1488                                                          GLenum func,
1489                                                          GLint ref,
1490                                                          GLuint mask);
1491 typedef void(GL_BINDING_CALL* glStencilMaskProc)(GLuint mask);
1492 typedef void(GL_BINDING_CALL* glStencilMaskSeparateProc)(GLenum face,
1493                                                          GLuint mask);
1494 typedef void(GL_BINDING_CALL* glStencilOpProc)(GLenum fail,
1495                                                GLenum zfail,
1496                                                GLenum zpass);
1497 typedef void(GL_BINDING_CALL* glStencilOpSeparateProc)(GLenum face,
1498                                                        GLenum fail,
1499                                                        GLenum zfail,
1500                                                        GLenum zpass);
1501 typedef void(GL_BINDING_CALL* glStencilStrokePathInstancedNVProc)(
1502     GLsizei numPaths,
1503     GLenum pathNameType,
1504     const void* paths,
1505     GLuint pathBase,
1506     GLint ref,
1507     GLuint mask,
1508     GLenum transformType,
1509     const GLfloat* transformValues);
1510 typedef void(GL_BINDING_CALL* glStencilStrokePathNVProc)(GLuint path,
1511                                                          GLint reference,
1512                                                          GLuint mask);
1513 typedef void(GL_BINDING_CALL* glStencilThenCoverFillPathInstancedNVProc)(
1514     GLsizei numPaths,
1515     GLenum pathNameType,
1516     const void* paths,
1517     GLuint pathBase,
1518     GLenum fillMode,
1519     GLuint mask,
1520     GLenum coverMode,
1521     GLenum transformType,
1522     const GLfloat* transformValues);
1523 typedef void(GL_BINDING_CALL* glStencilThenCoverFillPathNVProc)(
1524     GLuint path,
1525     GLenum fillMode,
1526     GLuint mask,
1527     GLenum coverMode);
1528 typedef void(GL_BINDING_CALL* glStencilThenCoverStrokePathInstancedNVProc)(
1529     GLsizei numPaths,
1530     GLenum pathNameType,
1531     const void* paths,
1532     GLuint pathBase,
1533     GLint ref,
1534     GLuint mask,
1535     GLenum coverMode,
1536     GLenum transformType,
1537     const GLfloat* transformValues);
1538 typedef void(GL_BINDING_CALL* glStencilThenCoverStrokePathNVProc)(
1539     GLuint path,
1540     GLint reference,
1541     GLuint mask,
1542     GLenum coverMode);
1543 typedef GLboolean(GL_BINDING_CALL* glTestFenceAPPLEProc)(GLuint fence);
1544 typedef GLboolean(GL_BINDING_CALL* glTestFenceNVProc)(GLuint fence);
1545 typedef void(GL_BINDING_CALL* glTexBufferProc)(GLenum target,
1546                                                GLenum internalformat,
1547                                                GLuint buffer);
1548 typedef void(GL_BINDING_CALL* glTexBufferRangeProc)(GLenum target,
1549                                                     GLenum internalformat,
1550                                                     GLuint buffer,
1551                                                     GLintptr offset,
1552                                                     GLsizeiptr size);
1553 typedef void(GL_BINDING_CALL* glTexImage2DProc)(GLenum target,
1554                                                 GLint level,
1555                                                 GLint internalformat,
1556                                                 GLsizei width,
1557                                                 GLsizei height,
1558                                                 GLint border,
1559                                                 GLenum format,
1560                                                 GLenum type,
1561                                                 const void* pixels);
1562 typedef void(GL_BINDING_CALL* glTexImage2DExternalANGLEProc)(
1563     GLenum target,
1564     GLint level,
1565     GLint internalformat,
1566     GLsizei width,
1567     GLsizei height,
1568     GLint border,
1569     GLenum format,
1570     GLenum type);
1571 typedef void(GL_BINDING_CALL* glTexImage2DRobustANGLEProc)(GLenum target,
1572                                                            GLint level,
1573                                                            GLint internalformat,
1574                                                            GLsizei width,
1575                                                            GLsizei height,
1576                                                            GLint border,
1577                                                            GLenum format,
1578                                                            GLenum type,
1579                                                            GLsizei bufSize,
1580                                                            const void* pixels);
1581 typedef void(GL_BINDING_CALL* glTexImage3DProc)(GLenum target,
1582                                                 GLint level,
1583                                                 GLint internalformat,
1584                                                 GLsizei width,
1585                                                 GLsizei height,
1586                                                 GLsizei depth,
1587                                                 GLint border,
1588                                                 GLenum format,
1589                                                 GLenum type,
1590                                                 const void* pixels);
1591 typedef void(GL_BINDING_CALL* glTexImage3DRobustANGLEProc)(GLenum target,
1592                                                            GLint level,
1593                                                            GLint internalformat,
1594                                                            GLsizei width,
1595                                                            GLsizei height,
1596                                                            GLsizei depth,
1597                                                            GLint border,
1598                                                            GLenum format,
1599                                                            GLenum type,
1600                                                            GLsizei bufSize,
1601                                                            const void* pixels);
1602 typedef void(GL_BINDING_CALL* glTexParameterfProc)(GLenum target,
1603                                                    GLenum pname,
1604                                                    GLfloat param);
1605 typedef void(GL_BINDING_CALL* glTexParameterfvProc)(GLenum target,
1606                                                     GLenum pname,
1607                                                     const GLfloat* params);
1608 typedef void(GL_BINDING_CALL* glTexParameterfvRobustANGLEProc)(
1609     GLenum target,
1610     GLenum pname,
1611     GLsizei bufSize,
1612     const GLfloat* params);
1613 typedef void(GL_BINDING_CALL* glTexParameteriProc)(GLenum target,
1614                                                    GLenum pname,
1615                                                    GLint param);
1616 typedef void(GL_BINDING_CALL* glTexParameterIivRobustANGLEProc)(
1617     GLenum target,
1618     GLenum pname,
1619     GLsizei bufSize,
1620     const GLint* params);
1621 typedef void(GL_BINDING_CALL* glTexParameterIuivRobustANGLEProc)(
1622     GLenum target,
1623     GLenum pname,
1624     GLsizei bufSize,
1625     const GLuint* params);
1626 typedef void(GL_BINDING_CALL* glTexParameterivProc)(GLenum target,
1627                                                     GLenum pname,
1628                                                     const GLint* params);
1629 typedef void(GL_BINDING_CALL* glTexParameterivRobustANGLEProc)(
1630     GLenum target,
1631     GLenum pname,
1632     GLsizei bufSize,
1633     const GLint* params);
1634 typedef void(GL_BINDING_CALL* glTexStorage2DEXTProc)(GLenum target,
1635                                                      GLsizei levels,
1636                                                      GLenum internalformat,
1637                                                      GLsizei width,
1638                                                      GLsizei height);
1639 typedef void(GL_BINDING_CALL* glTexStorage2DMultisampleProc)(
1640     GLenum target,
1641     GLsizei samples,
1642     GLenum internalformat,
1643     GLsizei width,
1644     GLsizei height,
1645     GLboolean fixedsamplelocations);
1646 typedef void(GL_BINDING_CALL* glTexStorage3DProc)(GLenum target,
1647                                                   GLsizei levels,
1648                                                   GLenum internalformat,
1649                                                   GLsizei width,
1650                                                   GLsizei height,
1651                                                   GLsizei depth);
1652 typedef void(GL_BINDING_CALL* glTexStorageMem2DEXTProc)(GLenum target,
1653                                                         GLsizei levels,
1654                                                         GLenum internalFormat,
1655                                                         GLsizei width,
1656                                                         GLsizei height,
1657                                                         GLuint memory,
1658                                                         GLuint64 offset);
1659 typedef void(GL_BINDING_CALL* glTexSubImage2DProc)(GLenum target,
1660                                                    GLint level,
1661                                                    GLint xoffset,
1662                                                    GLint yoffset,
1663                                                    GLsizei width,
1664                                                    GLsizei height,
1665                                                    GLenum format,
1666                                                    GLenum type,
1667                                                    const void* pixels);
1668 typedef void(GL_BINDING_CALL* glTexSubImage2DRobustANGLEProc)(
1669     GLenum target,
1670     GLint level,
1671     GLint xoffset,
1672     GLint yoffset,
1673     GLsizei width,
1674     GLsizei height,
1675     GLenum format,
1676     GLenum type,
1677     GLsizei bufSize,
1678     const void* pixels);
1679 typedef void(GL_BINDING_CALL* glTexSubImage3DProc)(GLenum target,
1680                                                    GLint level,
1681                                                    GLint xoffset,
1682                                                    GLint yoffset,
1683                                                    GLint zoffset,
1684                                                    GLsizei width,
1685                                                    GLsizei height,
1686                                                    GLsizei depth,
1687                                                    GLenum format,
1688                                                    GLenum type,
1689                                                    const void* pixels);
1690 typedef void(GL_BINDING_CALL* glTexSubImage3DRobustANGLEProc)(
1691     GLenum target,
1692     GLint level,
1693     GLint xoffset,
1694     GLint yoffset,
1695     GLint zoffset,
1696     GLsizei width,
1697     GLsizei height,
1698     GLsizei depth,
1699     GLenum format,
1700     GLenum type,
1701     GLsizei bufSize,
1702     const void* pixels);
1703 typedef void(GL_BINDING_CALL* glTransformFeedbackVaryingsProc)(
1704     GLuint program,
1705     GLsizei count,
1706     const char* const* varyings,
1707     GLenum bufferMode);
1708 typedef void(GL_BINDING_CALL* glUniform1fProc)(GLint location, GLfloat x);
1709 typedef void(GL_BINDING_CALL* glUniform1fvProc)(GLint location,
1710                                                 GLsizei count,
1711                                                 const GLfloat* v);
1712 typedef void(GL_BINDING_CALL* glUniform1iProc)(GLint location, GLint x);
1713 typedef void(GL_BINDING_CALL* glUniform1ivProc)(GLint location,
1714                                                 GLsizei count,
1715                                                 const GLint* v);
1716 typedef void(GL_BINDING_CALL* glUniform1uiProc)(GLint location, GLuint v0);
1717 typedef void(GL_BINDING_CALL* glUniform1uivProc)(GLint location,
1718                                                  GLsizei count,
1719                                                  const GLuint* v);
1720 typedef void(GL_BINDING_CALL* glUniform2fProc)(GLint location,
1721                                                GLfloat x,
1722                                                GLfloat y);
1723 typedef void(GL_BINDING_CALL* glUniform2fvProc)(GLint location,
1724                                                 GLsizei count,
1725                                                 const GLfloat* v);
1726 typedef void(GL_BINDING_CALL* glUniform2iProc)(GLint location,
1727                                                GLint x,
1728                                                GLint y);
1729 typedef void(GL_BINDING_CALL* glUniform2ivProc)(GLint location,
1730                                                 GLsizei count,
1731                                                 const GLint* v);
1732 typedef void(GL_BINDING_CALL* glUniform2uiProc)(GLint location,
1733                                                 GLuint v0,
1734                                                 GLuint v1);
1735 typedef void(GL_BINDING_CALL* glUniform2uivProc)(GLint location,
1736                                                  GLsizei count,
1737                                                  const GLuint* v);
1738 typedef void(GL_BINDING_CALL* glUniform3fProc)(GLint location,
1739                                                GLfloat x,
1740                                                GLfloat y,
1741                                                GLfloat z);
1742 typedef void(GL_BINDING_CALL* glUniform3fvProc)(GLint location,
1743                                                 GLsizei count,
1744                                                 const GLfloat* v);
1745 typedef void(GL_BINDING_CALL* glUniform3iProc)(GLint location,
1746                                                GLint x,
1747                                                GLint y,
1748                                                GLint z);
1749 typedef void(GL_BINDING_CALL* glUniform3ivProc)(GLint location,
1750                                                 GLsizei count,
1751                                                 const GLint* v);
1752 typedef void(GL_BINDING_CALL* glUniform3uiProc)(GLint location,
1753                                                 GLuint v0,
1754                                                 GLuint v1,
1755                                                 GLuint v2);
1756 typedef void(GL_BINDING_CALL* glUniform3uivProc)(GLint location,
1757                                                  GLsizei count,
1758                                                  const GLuint* v);
1759 typedef void(GL_BINDING_CALL* glUniform4fProc)(GLint location,
1760                                                GLfloat x,
1761                                                GLfloat y,
1762                                                GLfloat z,
1763                                                GLfloat w);
1764 typedef void(GL_BINDING_CALL* glUniform4fvProc)(GLint location,
1765                                                 GLsizei count,
1766                                                 const GLfloat* v);
1767 typedef void(GL_BINDING_CALL* glUniform4iProc)(GLint location,
1768                                                GLint x,
1769                                                GLint y,
1770                                                GLint z,
1771                                                GLint w);
1772 typedef void(GL_BINDING_CALL* glUniform4ivProc)(GLint location,
1773                                                 GLsizei count,
1774                                                 const GLint* v);
1775 typedef void(GL_BINDING_CALL* glUniform4uiProc)(GLint location,
1776                                                 GLuint v0,
1777                                                 GLuint v1,
1778                                                 GLuint v2,
1779                                                 GLuint v3);
1780 typedef void(GL_BINDING_CALL* glUniform4uivProc)(GLint location,
1781                                                  GLsizei count,
1782                                                  const GLuint* v);
1783 typedef void(GL_BINDING_CALL* glUniformBlockBindingProc)(
1784     GLuint program,
1785     GLuint uniformBlockIndex,
1786     GLuint uniformBlockBinding);
1787 typedef void(GL_BINDING_CALL* glUniformMatrix2fvProc)(GLint location,
1788                                                       GLsizei count,
1789                                                       GLboolean transpose,
1790                                                       const GLfloat* value);
1791 typedef void(GL_BINDING_CALL* glUniformMatrix2x3fvProc)(GLint location,
1792                                                         GLsizei count,
1793                                                         GLboolean transpose,
1794                                                         const GLfloat* value);
1795 typedef void(GL_BINDING_CALL* glUniformMatrix2x4fvProc)(GLint location,
1796                                                         GLsizei count,
1797                                                         GLboolean transpose,
1798                                                         const GLfloat* value);
1799 typedef void(GL_BINDING_CALL* glUniformMatrix3fvProc)(GLint location,
1800                                                       GLsizei count,
1801                                                       GLboolean transpose,
1802                                                       const GLfloat* value);
1803 typedef void(GL_BINDING_CALL* glUniformMatrix3x2fvProc)(GLint location,
1804                                                         GLsizei count,
1805                                                         GLboolean transpose,
1806                                                         const GLfloat* value);
1807 typedef void(GL_BINDING_CALL* glUniformMatrix3x4fvProc)(GLint location,
1808                                                         GLsizei count,
1809                                                         GLboolean transpose,
1810                                                         const GLfloat* value);
1811 typedef void(GL_BINDING_CALL* glUniformMatrix4fvProc)(GLint location,
1812                                                       GLsizei count,
1813                                                       GLboolean transpose,
1814                                                       const GLfloat* value);
1815 typedef void(GL_BINDING_CALL* glUniformMatrix4x2fvProc)(GLint location,
1816                                                         GLsizei count,
1817                                                         GLboolean transpose,
1818                                                         const GLfloat* value);
1819 typedef void(GL_BINDING_CALL* glUniformMatrix4x3fvProc)(GLint location,
1820                                                         GLsizei count,
1821                                                         GLboolean transpose,
1822                                                         const GLfloat* value);
1823 typedef GLboolean(GL_BINDING_CALL* glUnmapBufferProc)(GLenum target);
1824 typedef void(GL_BINDING_CALL* glUseProgramProc)(GLuint program);
1825 typedef void(GL_BINDING_CALL* glUseProgramStagesProc)(GLuint pipeline,
1826                                                       GLbitfield stages,
1827                                                       GLuint program);
1828 typedef void(GL_BINDING_CALL* glValidateProgramProc)(GLuint program);
1829 typedef void(GL_BINDING_CALL* glValidateProgramPipelineProc)(GLuint pipeline);
1830 typedef void(GL_BINDING_CALL* glVertexAttrib1fProc)(GLuint indx, GLfloat x);
1831 typedef void(GL_BINDING_CALL* glVertexAttrib1fvProc)(GLuint indx,
1832                                                      const GLfloat* values);
1833 typedef void(GL_BINDING_CALL* glVertexAttrib2fProc)(GLuint indx,
1834                                                     GLfloat x,
1835                                                     GLfloat y);
1836 typedef void(GL_BINDING_CALL* glVertexAttrib2fvProc)(GLuint indx,
1837                                                      const GLfloat* values);
1838 typedef void(GL_BINDING_CALL* glVertexAttrib3fProc)(GLuint indx,
1839                                                     GLfloat x,
1840                                                     GLfloat y,
1841                                                     GLfloat z);
1842 typedef void(GL_BINDING_CALL* glVertexAttrib3fvProc)(GLuint indx,
1843                                                      const GLfloat* values);
1844 typedef void(GL_BINDING_CALL* glVertexAttrib4fProc)(GLuint indx,
1845                                                     GLfloat x,
1846                                                     GLfloat y,
1847                                                     GLfloat z,
1848                                                     GLfloat w);
1849 typedef void(GL_BINDING_CALL* glVertexAttrib4fvProc)(GLuint indx,
1850                                                      const GLfloat* values);
1851 typedef void(GL_BINDING_CALL* glVertexAttribBindingProc)(GLuint attribindex,
1852                                                          GLuint bindingindex);
1853 typedef void(GL_BINDING_CALL* glVertexAttribDivisorANGLEProc)(GLuint index,
1854                                                               GLuint divisor);
1855 typedef void(GL_BINDING_CALL* glVertexAttribFormatProc)(GLuint attribindex,
1856                                                         GLint size,
1857                                                         GLenum type,
1858                                                         GLboolean normalized,
1859                                                         GLuint relativeoffset);
1860 typedef void(GL_BINDING_CALL* glVertexAttribI4iProc)(GLuint indx,
1861                                                      GLint x,
1862                                                      GLint y,
1863                                                      GLint z,
1864                                                      GLint w);
1865 typedef void(GL_BINDING_CALL* glVertexAttribI4ivProc)(GLuint indx,
1866                                                       const GLint* values);
1867 typedef void(GL_BINDING_CALL* glVertexAttribI4uiProc)(GLuint indx,
1868                                                       GLuint x,
1869                                                       GLuint y,
1870                                                       GLuint z,
1871                                                       GLuint w);
1872 typedef void(GL_BINDING_CALL* glVertexAttribI4uivProc)(GLuint indx,
1873                                                        const GLuint* values);
1874 typedef void(GL_BINDING_CALL* glVertexAttribIFormatProc)(GLuint attribindex,
1875                                                          GLint size,
1876                                                          GLenum type,
1877                                                          GLuint relativeoffset);
1878 typedef void(GL_BINDING_CALL* glVertexAttribIPointerProc)(GLuint indx,
1879                                                           GLint size,
1880                                                           GLenum type,
1881                                                           GLsizei stride,
1882                                                           const void* ptr);
1883 typedef void(GL_BINDING_CALL* glVertexAttribPointerProc)(GLuint indx,
1884                                                          GLint size,
1885                                                          GLenum type,
1886                                                          GLboolean normalized,
1887                                                          GLsizei stride,
1888                                                          const void* ptr);
1889 typedef void(GL_BINDING_CALL* glVertexBindingDivisorProc)(GLuint bindingindex,
1890                                                           GLuint divisor);
1891 typedef void(GL_BINDING_CALL* glViewportProc)(GLint x,
1892                                               GLint y,
1893                                               GLsizei width,
1894                                               GLsizei height);
1895 typedef void(GL_BINDING_CALL* glWaitSemaphoreEXTProc)(GLuint semaphore,
1896                                                       GLuint numBufferBarriers,
1897                                                       const GLuint* buffers,
1898                                                       GLuint numTextureBarriers,
1899                                                       const GLuint* textures,
1900                                                       const GLenum* srcLayouts);
1901 typedef void(GL_BINDING_CALL* glWaitSyncProc)(GLsync sync,
1902                                               GLbitfield flags,
1903                                               GLuint64 timeout);
1904 typedef void(GL_BINDING_CALL* glWaitSyncAPPLEProc)(GLsync sync,
1905                                                    GLbitfield flags,
1906                                                    GLuint64 timeout);
1907 typedef void(GL_BINDING_CALL* glWindowRectanglesEXTProc)(GLenum mode,
1908                                                          GLsizei n,
1909                                                          const GLint* box);
1910 
1911 struct ExtensionsGL {
1912   bool b_GL_AMD_framebuffer_multisample_advanced;
1913   bool b_GL_ANGLE_base_vertex_base_instance;
1914   bool b_GL_ANGLE_framebuffer_blit;
1915   bool b_GL_ANGLE_framebuffer_multisample;
1916   bool b_GL_ANGLE_instanced_arrays;
1917   bool b_GL_ANGLE_memory_object_fuchsia;
1918   bool b_GL_ANGLE_multi_draw;
1919   bool b_GL_ANGLE_request_extension;
1920   bool b_GL_ANGLE_robust_client_memory;
1921   bool b_GL_ANGLE_semaphore_fuchsia;
1922   bool b_GL_ANGLE_texture_external_update;
1923   bool b_GL_ANGLE_translated_shader_source;
1924   bool b_GL_APPLE_fence;
1925   bool b_GL_APPLE_sync;
1926   bool b_GL_APPLE_vertex_array_object;
1927   bool b_GL_ARB_ES2_compatibility;
1928   bool b_GL_ARB_blend_func_extended;
1929   bool b_GL_ARB_clear_texture;
1930   bool b_GL_ARB_draw_buffers;
1931   bool b_GL_ARB_draw_instanced;
1932   bool b_GL_ARB_framebuffer_object;
1933   bool b_GL_ARB_get_program_binary;
1934   bool b_GL_ARB_instanced_arrays;
1935   bool b_GL_ARB_internalformat_query;
1936   bool b_GL_ARB_map_buffer_range;
1937   bool b_GL_ARB_occlusion_query;
1938   bool b_GL_ARB_program_interface_query;
1939   bool b_GL_ARB_robustness;
1940   bool b_GL_ARB_sampler_objects;
1941   bool b_GL_ARB_shader_image_load_store;
1942   bool b_GL_ARB_sync;
1943   bool b_GL_ARB_texture_multisample;
1944   bool b_GL_ARB_texture_storage;
1945   bool b_GL_ARB_timer_query;
1946   bool b_GL_ARB_transform_feedback2;
1947   bool b_GL_ARB_vertex_array_object;
1948   bool b_GL_CHROMIUM_bind_uniform_location;
1949   bool b_GL_CHROMIUM_copy_texture;
1950   bool b_GL_CHROMIUM_framebuffer_mixed_samples;
1951   bool b_GL_CHROMIUM_gles_depth_binding_hack;
1952   bool b_GL_CHROMIUM_glgetstringi_hack;
1953   bool b_GL_CHROMIUM_path_rendering;
1954   bool b_GL_EXT_base_instance;
1955   bool b_GL_EXT_blend_func_extended;
1956   bool b_GL_EXT_clear_texture;
1957   bool b_GL_EXT_debug_marker;
1958   bool b_GL_EXT_direct_state_access;
1959   bool b_GL_EXT_discard_framebuffer;
1960   bool b_GL_EXT_disjoint_timer_query;
1961   bool b_GL_EXT_draw_buffers;
1962   bool b_GL_EXT_framebuffer_blit;
1963   bool b_GL_EXT_framebuffer_multisample;
1964   bool b_GL_EXT_framebuffer_object;
1965   bool b_GL_EXT_gpu_shader4;
1966   bool b_GL_EXT_instanced_arrays;
1967   bool b_GL_EXT_map_buffer_range;
1968   bool b_GL_EXT_memory_object;
1969   bool b_GL_EXT_memory_object_fd;
1970   bool b_GL_EXT_multisampled_render_to_texture;
1971   bool b_GL_EXT_occlusion_query_boolean;
1972   bool b_GL_EXT_robustness;
1973   bool b_GL_EXT_semaphore;
1974   bool b_GL_EXT_semaphore_fd;
1975   bool b_GL_EXT_shader_image_load_store;
1976   bool b_GL_EXT_texture_buffer;
1977   bool b_GL_EXT_texture_buffer_object;
1978   bool b_GL_EXT_texture_storage;
1979   bool b_GL_EXT_timer_query;
1980   bool b_GL_EXT_transform_feedback;
1981   bool b_GL_EXT_unpack_subimage;
1982   bool b_GL_EXT_window_rectangles;
1983   bool b_GL_IMG_multisampled_render_to_texture;
1984   bool b_GL_KHR_blend_equation_advanced;
1985   bool b_GL_KHR_debug;
1986   bool b_GL_KHR_parallel_shader_compile;
1987   bool b_GL_KHR_robustness;
1988   bool b_GL_MESA_framebuffer_flip_y;
1989   bool b_GL_NV_blend_equation_advanced;
1990   bool b_GL_NV_fence;
1991   bool b_GL_NV_framebuffer_mixed_samples;
1992   bool b_GL_NV_internalformat_sample_query;
1993   bool b_GL_NV_path_rendering;
1994   bool b_GL_OES_EGL_image;
1995   bool b_GL_OES_get_program_binary;
1996   bool b_GL_OES_mapbuffer;
1997   bool b_GL_OES_texture_buffer;
1998   bool b_GL_OES_vertex_array_object;
1999   bool b_GL_OVR_multiview;
2000   bool b_GL_OVR_multiview2;
2001   bool b_GL_QCOM_tiled_rendering;
2002 };
2003 
2004 struct ProcsGL {
2005   glActiveShaderProgramProc glActiveShaderProgramFn;
2006   glActiveTextureProc glActiveTextureFn;
2007   glAttachShaderProc glAttachShaderFn;
2008   glBeginQueryProc glBeginQueryFn;
2009   glBeginTransformFeedbackProc glBeginTransformFeedbackFn;
2010   glBindAttribLocationProc glBindAttribLocationFn;
2011   glBindBufferProc glBindBufferFn;
2012   glBindBufferBaseProc glBindBufferBaseFn;
2013   glBindBufferRangeProc glBindBufferRangeFn;
2014   glBindFragDataLocationProc glBindFragDataLocationFn;
2015   glBindFragDataLocationIndexedProc glBindFragDataLocationIndexedFn;
2016   glBindFragmentInputLocationCHROMIUMProc glBindFragmentInputLocationCHROMIUMFn;
2017   glBindFramebufferEXTProc glBindFramebufferEXTFn;
2018   glBindImageTextureEXTProc glBindImageTextureEXTFn;
2019   glBindProgramPipelineProc glBindProgramPipelineFn;
2020   glBindRenderbufferEXTProc glBindRenderbufferEXTFn;
2021   glBindSamplerProc glBindSamplerFn;
2022   glBindTextureProc glBindTextureFn;
2023   glBindTransformFeedbackProc glBindTransformFeedbackFn;
2024   glBindUniformLocationCHROMIUMProc glBindUniformLocationCHROMIUMFn;
2025   glBindVertexArrayOESProc glBindVertexArrayOESFn;
2026   glBindVertexBufferProc glBindVertexBufferFn;
2027   glBlendBarrierKHRProc glBlendBarrierKHRFn;
2028   glBlendColorProc glBlendColorFn;
2029   glBlendEquationProc glBlendEquationFn;
2030   glBlendEquationSeparateProc glBlendEquationSeparateFn;
2031   glBlendFuncProc glBlendFuncFn;
2032   glBlendFuncSeparateProc glBlendFuncSeparateFn;
2033   glBlitFramebufferProc glBlitFramebufferFn;
2034   glBufferDataProc glBufferDataFn;
2035   glBufferSubDataProc glBufferSubDataFn;
2036   glCheckFramebufferStatusEXTProc glCheckFramebufferStatusEXTFn;
2037   glClearProc glClearFn;
2038   glClearBufferfiProc glClearBufferfiFn;
2039   glClearBufferfvProc glClearBufferfvFn;
2040   glClearBufferivProc glClearBufferivFn;
2041   glClearBufferuivProc glClearBufferuivFn;
2042   glClearColorProc glClearColorFn;
2043   glClearDepthProc glClearDepthFn;
2044   glClearDepthfProc glClearDepthfFn;
2045   glClearStencilProc glClearStencilFn;
2046   glClearTexImageProc glClearTexImageFn;
2047   glClearTexSubImageProc glClearTexSubImageFn;
2048   glClientWaitSyncProc glClientWaitSyncFn;
2049   glClientWaitSyncAPPLEProc glClientWaitSyncAPPLEFn;
2050   glColorMaskProc glColorMaskFn;
2051   glCompileShaderProc glCompileShaderFn;
2052   glCompressedTexImage2DProc glCompressedTexImage2DFn;
2053   glCompressedTexImage2DRobustANGLEProc glCompressedTexImage2DRobustANGLEFn;
2054   glCompressedTexImage3DProc glCompressedTexImage3DFn;
2055   glCompressedTexImage3DRobustANGLEProc glCompressedTexImage3DRobustANGLEFn;
2056   glCompressedTexSubImage2DProc glCompressedTexSubImage2DFn;
2057   glCompressedTexSubImage2DRobustANGLEProc
2058       glCompressedTexSubImage2DRobustANGLEFn;
2059   glCompressedTexSubImage3DProc glCompressedTexSubImage3DFn;
2060   glCompressedTexSubImage3DRobustANGLEProc
2061       glCompressedTexSubImage3DRobustANGLEFn;
2062   glCopyBufferSubDataProc glCopyBufferSubDataFn;
2063   glCopySubTextureCHROMIUMProc glCopySubTextureCHROMIUMFn;
2064   glCopyTexImage2DProc glCopyTexImage2DFn;
2065   glCopyTexSubImage2DProc glCopyTexSubImage2DFn;
2066   glCopyTexSubImage3DProc glCopyTexSubImage3DFn;
2067   glCopyTextureCHROMIUMProc glCopyTextureCHROMIUMFn;
2068   glCoverageModulationNVProc glCoverageModulationNVFn;
2069   glCoverFillPathInstancedNVProc glCoverFillPathInstancedNVFn;
2070   glCoverFillPathNVProc glCoverFillPathNVFn;
2071   glCoverStrokePathInstancedNVProc glCoverStrokePathInstancedNVFn;
2072   glCoverStrokePathNVProc glCoverStrokePathNVFn;
2073   glCreateMemoryObjectsEXTProc glCreateMemoryObjectsEXTFn;
2074   glCreateProgramProc glCreateProgramFn;
2075   glCreateShaderProc glCreateShaderFn;
2076   glCreateShaderProgramvProc glCreateShaderProgramvFn;
2077   glCullFaceProc glCullFaceFn;
2078   glDebugMessageCallbackProc glDebugMessageCallbackFn;
2079   glDebugMessageControlProc glDebugMessageControlFn;
2080   glDebugMessageInsertProc glDebugMessageInsertFn;
2081   glDeleteBuffersARBProc glDeleteBuffersARBFn;
2082   glDeleteFencesAPPLEProc glDeleteFencesAPPLEFn;
2083   glDeleteFencesNVProc glDeleteFencesNVFn;
2084   glDeleteFramebuffersEXTProc glDeleteFramebuffersEXTFn;
2085   glDeleteMemoryObjectsEXTProc glDeleteMemoryObjectsEXTFn;
2086   glDeletePathsNVProc glDeletePathsNVFn;
2087   glDeleteProgramProc glDeleteProgramFn;
2088   glDeleteProgramPipelinesProc glDeleteProgramPipelinesFn;
2089   glDeleteQueriesProc glDeleteQueriesFn;
2090   glDeleteRenderbuffersEXTProc glDeleteRenderbuffersEXTFn;
2091   glDeleteSamplersProc glDeleteSamplersFn;
2092   glDeleteSemaphoresEXTProc glDeleteSemaphoresEXTFn;
2093   glDeleteShaderProc glDeleteShaderFn;
2094   glDeleteSyncProc glDeleteSyncFn;
2095   glDeleteSyncAPPLEProc glDeleteSyncAPPLEFn;
2096   glDeleteTexturesProc glDeleteTexturesFn;
2097   glDeleteTransformFeedbacksProc glDeleteTransformFeedbacksFn;
2098   glDeleteVertexArraysOESProc glDeleteVertexArraysOESFn;
2099   glDepthFuncProc glDepthFuncFn;
2100   glDepthMaskProc glDepthMaskFn;
2101   glDepthRangeProc glDepthRangeFn;
2102   glDepthRangefProc glDepthRangefFn;
2103   glDetachShaderProc glDetachShaderFn;
2104   glDisableProc glDisableFn;
2105   glDisableExtensionANGLEProc glDisableExtensionANGLEFn;
2106   glDisableVertexAttribArrayProc glDisableVertexAttribArrayFn;
2107   glDiscardFramebufferEXTProc glDiscardFramebufferEXTFn;
2108   glDispatchComputeProc glDispatchComputeFn;
2109   glDispatchComputeIndirectProc glDispatchComputeIndirectFn;
2110   glDrawArraysProc glDrawArraysFn;
2111   glDrawArraysIndirectProc glDrawArraysIndirectFn;
2112   glDrawArraysInstancedANGLEProc glDrawArraysInstancedANGLEFn;
2113   glDrawArraysInstancedBaseInstanceANGLEProc
2114       glDrawArraysInstancedBaseInstanceANGLEFn;
2115   glDrawBufferProc glDrawBufferFn;
2116   glDrawBuffersARBProc glDrawBuffersARBFn;
2117   glDrawElementsProc glDrawElementsFn;
2118   glDrawElementsIndirectProc glDrawElementsIndirectFn;
2119   glDrawElementsInstancedANGLEProc glDrawElementsInstancedANGLEFn;
2120   glDrawElementsInstancedBaseVertexBaseInstanceANGLEProc
2121       glDrawElementsInstancedBaseVertexBaseInstanceANGLEFn;
2122   glDrawRangeElementsProc glDrawRangeElementsFn;
2123   glEGLImageTargetRenderbufferStorageOESProc
2124       glEGLImageTargetRenderbufferStorageOESFn;
2125   glEGLImageTargetTexture2DOESProc glEGLImageTargetTexture2DOESFn;
2126   glEnableProc glEnableFn;
2127   glEnableVertexAttribArrayProc glEnableVertexAttribArrayFn;
2128   glEndQueryProc glEndQueryFn;
2129   glEndTilingQCOMProc glEndTilingQCOMFn;
2130   glEndTransformFeedbackProc glEndTransformFeedbackFn;
2131   glFenceSyncProc glFenceSyncFn;
2132   glFenceSyncAPPLEProc glFenceSyncAPPLEFn;
2133   glFinishProc glFinishFn;
2134   glFinishFenceAPPLEProc glFinishFenceAPPLEFn;
2135   glFinishFenceNVProc glFinishFenceNVFn;
2136   glFlushProc glFlushFn;
2137   glFlushMappedBufferRangeProc glFlushMappedBufferRangeFn;
2138   glFramebufferParameteriProc glFramebufferParameteriFn;
2139   glFramebufferRenderbufferEXTProc glFramebufferRenderbufferEXTFn;
2140   glFramebufferTexture2DEXTProc glFramebufferTexture2DEXTFn;
2141   glFramebufferTexture2DMultisampleEXTProc
2142       glFramebufferTexture2DMultisampleEXTFn;
2143   glFramebufferTextureLayerProc glFramebufferTextureLayerFn;
2144   glFramebufferTextureMultiviewOVRProc glFramebufferTextureMultiviewOVRFn;
2145   glFrontFaceProc glFrontFaceFn;
2146   glGenBuffersARBProc glGenBuffersARBFn;
2147   glGenerateMipmapEXTProc glGenerateMipmapEXTFn;
2148   glGenFencesAPPLEProc glGenFencesAPPLEFn;
2149   glGenFencesNVProc glGenFencesNVFn;
2150   glGenFramebuffersEXTProc glGenFramebuffersEXTFn;
2151   glGenPathsNVProc glGenPathsNVFn;
2152   glGenProgramPipelinesProc glGenProgramPipelinesFn;
2153   glGenQueriesProc glGenQueriesFn;
2154   glGenRenderbuffersEXTProc glGenRenderbuffersEXTFn;
2155   glGenSamplersProc glGenSamplersFn;
2156   glGenSemaphoresEXTProc glGenSemaphoresEXTFn;
2157   glGenTexturesProc glGenTexturesFn;
2158   glGenTransformFeedbacksProc glGenTransformFeedbacksFn;
2159   glGenVertexArraysOESProc glGenVertexArraysOESFn;
2160   glGetActiveAttribProc glGetActiveAttribFn;
2161   glGetActiveUniformProc glGetActiveUniformFn;
2162   glGetActiveUniformBlockivProc glGetActiveUniformBlockivFn;
2163   glGetActiveUniformBlockivRobustANGLEProc
2164       glGetActiveUniformBlockivRobustANGLEFn;
2165   glGetActiveUniformBlockNameProc glGetActiveUniformBlockNameFn;
2166   glGetActiveUniformsivProc glGetActiveUniformsivFn;
2167   glGetAttachedShadersProc glGetAttachedShadersFn;
2168   glGetAttribLocationProc glGetAttribLocationFn;
2169   glGetBooleani_vProc glGetBooleani_vFn;
2170   glGetBooleani_vRobustANGLEProc glGetBooleani_vRobustANGLEFn;
2171   glGetBooleanvProc glGetBooleanvFn;
2172   glGetBooleanvRobustANGLEProc glGetBooleanvRobustANGLEFn;
2173   glGetBufferParameteri64vRobustANGLEProc glGetBufferParameteri64vRobustANGLEFn;
2174   glGetBufferParameterivProc glGetBufferParameterivFn;
2175   glGetBufferParameterivRobustANGLEProc glGetBufferParameterivRobustANGLEFn;
2176   glGetBufferPointervRobustANGLEProc glGetBufferPointervRobustANGLEFn;
2177   glGetDebugMessageLogProc glGetDebugMessageLogFn;
2178   glGetErrorProc glGetErrorFn;
2179   glGetFenceivNVProc glGetFenceivNVFn;
2180   glGetFloatvProc glGetFloatvFn;
2181   glGetFloatvRobustANGLEProc glGetFloatvRobustANGLEFn;
2182   glGetFragDataIndexProc glGetFragDataIndexFn;
2183   glGetFragDataLocationProc glGetFragDataLocationFn;
2184   glGetFramebufferAttachmentParameterivEXTProc
2185       glGetFramebufferAttachmentParameterivEXTFn;
2186   glGetFramebufferAttachmentParameterivRobustANGLEProc
2187       glGetFramebufferAttachmentParameterivRobustANGLEFn;
2188   glGetFramebufferParameterivProc glGetFramebufferParameterivFn;
2189   glGetFramebufferParameterivRobustANGLEProc
2190       glGetFramebufferParameterivRobustANGLEFn;
2191   glGetGraphicsResetStatusARBProc glGetGraphicsResetStatusARBFn;
2192   glGetInteger64i_vProc glGetInteger64i_vFn;
2193   glGetInteger64i_vRobustANGLEProc glGetInteger64i_vRobustANGLEFn;
2194   glGetInteger64vProc glGetInteger64vFn;
2195   glGetInteger64vRobustANGLEProc glGetInteger64vRobustANGLEFn;
2196   glGetIntegeri_vProc glGetIntegeri_vFn;
2197   glGetIntegeri_vRobustANGLEProc glGetIntegeri_vRobustANGLEFn;
2198   glGetIntegervProc glGetIntegervFn;
2199   glGetIntegervRobustANGLEProc glGetIntegervRobustANGLEFn;
2200   glGetInternalformativProc glGetInternalformativFn;
2201   glGetInternalformativRobustANGLEProc glGetInternalformativRobustANGLEFn;
2202   glGetInternalformatSampleivNVProc glGetInternalformatSampleivNVFn;
2203   glGetMultisamplefvProc glGetMultisamplefvFn;
2204   glGetMultisamplefvRobustANGLEProc glGetMultisamplefvRobustANGLEFn;
2205   glGetnUniformfvRobustANGLEProc glGetnUniformfvRobustANGLEFn;
2206   glGetnUniformivRobustANGLEProc glGetnUniformivRobustANGLEFn;
2207   glGetnUniformuivRobustANGLEProc glGetnUniformuivRobustANGLEFn;
2208   glGetObjectLabelProc glGetObjectLabelFn;
2209   glGetObjectPtrLabelProc glGetObjectPtrLabelFn;
2210   glGetPointervProc glGetPointervFn;
2211   glGetPointervRobustANGLERobustANGLEProc glGetPointervRobustANGLERobustANGLEFn;
2212   glGetProgramBinaryProc glGetProgramBinaryFn;
2213   glGetProgramInfoLogProc glGetProgramInfoLogFn;
2214   glGetProgramInterfaceivProc glGetProgramInterfaceivFn;
2215   glGetProgramInterfaceivRobustANGLEProc glGetProgramInterfaceivRobustANGLEFn;
2216   glGetProgramivProc glGetProgramivFn;
2217   glGetProgramivRobustANGLEProc glGetProgramivRobustANGLEFn;
2218   glGetProgramPipelineInfoLogProc glGetProgramPipelineInfoLogFn;
2219   glGetProgramPipelineivProc glGetProgramPipelineivFn;
2220   glGetProgramResourceIndexProc glGetProgramResourceIndexFn;
2221   glGetProgramResourceivProc glGetProgramResourceivFn;
2222   glGetProgramResourceLocationProc glGetProgramResourceLocationFn;
2223   glGetProgramResourceNameProc glGetProgramResourceNameFn;
2224   glGetQueryivProc glGetQueryivFn;
2225   glGetQueryivRobustANGLEProc glGetQueryivRobustANGLEFn;
2226   glGetQueryObjecti64vProc glGetQueryObjecti64vFn;
2227   glGetQueryObjecti64vRobustANGLEProc glGetQueryObjecti64vRobustANGLEFn;
2228   glGetQueryObjectivProc glGetQueryObjectivFn;
2229   glGetQueryObjectivRobustANGLEProc glGetQueryObjectivRobustANGLEFn;
2230   glGetQueryObjectui64vProc glGetQueryObjectui64vFn;
2231   glGetQueryObjectui64vRobustANGLEProc glGetQueryObjectui64vRobustANGLEFn;
2232   glGetQueryObjectuivProc glGetQueryObjectuivFn;
2233   glGetQueryObjectuivRobustANGLEProc glGetQueryObjectuivRobustANGLEFn;
2234   glGetRenderbufferParameterivEXTProc glGetRenderbufferParameterivEXTFn;
2235   glGetRenderbufferParameterivRobustANGLEProc
2236       glGetRenderbufferParameterivRobustANGLEFn;
2237   glGetSamplerParameterfvProc glGetSamplerParameterfvFn;
2238   glGetSamplerParameterfvRobustANGLEProc glGetSamplerParameterfvRobustANGLEFn;
2239   glGetSamplerParameterIivRobustANGLEProc glGetSamplerParameterIivRobustANGLEFn;
2240   glGetSamplerParameterIuivRobustANGLEProc
2241       glGetSamplerParameterIuivRobustANGLEFn;
2242   glGetSamplerParameterivProc glGetSamplerParameterivFn;
2243   glGetSamplerParameterivRobustANGLEProc glGetSamplerParameterivRobustANGLEFn;
2244   glGetShaderInfoLogProc glGetShaderInfoLogFn;
2245   glGetShaderivProc glGetShaderivFn;
2246   glGetShaderivRobustANGLEProc glGetShaderivRobustANGLEFn;
2247   glGetShaderPrecisionFormatProc glGetShaderPrecisionFormatFn;
2248   glGetShaderSourceProc glGetShaderSourceFn;
2249   glGetStringProc glGetStringFn;
2250   glGetStringiProc glGetStringiFn;
2251   glGetSyncivProc glGetSyncivFn;
2252   glGetTexLevelParameterfvProc glGetTexLevelParameterfvFn;
2253   glGetTexLevelParameterfvRobustANGLEProc glGetTexLevelParameterfvRobustANGLEFn;
2254   glGetTexLevelParameterivProc glGetTexLevelParameterivFn;
2255   glGetTexLevelParameterivRobustANGLEProc glGetTexLevelParameterivRobustANGLEFn;
2256   glGetTexParameterfvProc glGetTexParameterfvFn;
2257   glGetTexParameterfvRobustANGLEProc glGetTexParameterfvRobustANGLEFn;
2258   glGetTexParameterIivRobustANGLEProc glGetTexParameterIivRobustANGLEFn;
2259   glGetTexParameterIuivRobustANGLEProc glGetTexParameterIuivRobustANGLEFn;
2260   glGetTexParameterivProc glGetTexParameterivFn;
2261   glGetTexParameterivRobustANGLEProc glGetTexParameterivRobustANGLEFn;
2262   glGetTransformFeedbackVaryingProc glGetTransformFeedbackVaryingFn;
2263   glGetTranslatedShaderSourceANGLEProc glGetTranslatedShaderSourceANGLEFn;
2264   glGetUniformBlockIndexProc glGetUniformBlockIndexFn;
2265   glGetUniformfvProc glGetUniformfvFn;
2266   glGetUniformfvRobustANGLEProc glGetUniformfvRobustANGLEFn;
2267   glGetUniformIndicesProc glGetUniformIndicesFn;
2268   glGetUniformivProc glGetUniformivFn;
2269   glGetUniformivRobustANGLEProc glGetUniformivRobustANGLEFn;
2270   glGetUniformLocationProc glGetUniformLocationFn;
2271   glGetUniformuivProc glGetUniformuivFn;
2272   glGetUniformuivRobustANGLEProc glGetUniformuivRobustANGLEFn;
2273   glGetVertexAttribfvProc glGetVertexAttribfvFn;
2274   glGetVertexAttribfvRobustANGLEProc glGetVertexAttribfvRobustANGLEFn;
2275   glGetVertexAttribIivRobustANGLEProc glGetVertexAttribIivRobustANGLEFn;
2276   glGetVertexAttribIuivRobustANGLEProc glGetVertexAttribIuivRobustANGLEFn;
2277   glGetVertexAttribivProc glGetVertexAttribivFn;
2278   glGetVertexAttribivRobustANGLEProc glGetVertexAttribivRobustANGLEFn;
2279   glGetVertexAttribPointervProc glGetVertexAttribPointervFn;
2280   glGetVertexAttribPointervRobustANGLEProc
2281       glGetVertexAttribPointervRobustANGLEFn;
2282   glHintProc glHintFn;
2283   glImportMemoryFdEXTProc glImportMemoryFdEXTFn;
2284   glImportMemoryZirconHandleANGLEProc glImportMemoryZirconHandleANGLEFn;
2285   glImportSemaphoreFdEXTProc glImportSemaphoreFdEXTFn;
2286   glImportSemaphoreZirconHandleANGLEProc glImportSemaphoreZirconHandleANGLEFn;
2287   glInsertEventMarkerEXTProc glInsertEventMarkerEXTFn;
2288   glInvalidateFramebufferProc glInvalidateFramebufferFn;
2289   glInvalidateSubFramebufferProc glInvalidateSubFramebufferFn;
2290   glInvalidateTextureANGLEProc glInvalidateTextureANGLEFn;
2291   glIsBufferProc glIsBufferFn;
2292   glIsEnabledProc glIsEnabledFn;
2293   glIsFenceAPPLEProc glIsFenceAPPLEFn;
2294   glIsFenceNVProc glIsFenceNVFn;
2295   glIsFramebufferEXTProc glIsFramebufferEXTFn;
2296   glIsPathNVProc glIsPathNVFn;
2297   glIsProgramProc glIsProgramFn;
2298   glIsProgramPipelineProc glIsProgramPipelineFn;
2299   glIsQueryProc glIsQueryFn;
2300   glIsRenderbufferEXTProc glIsRenderbufferEXTFn;
2301   glIsSamplerProc glIsSamplerFn;
2302   glIsShaderProc glIsShaderFn;
2303   glIsSyncProc glIsSyncFn;
2304   glIsSyncAPPLEProc glIsSyncAPPLEFn;
2305   glIsTextureProc glIsTextureFn;
2306   glIsTransformFeedbackProc glIsTransformFeedbackFn;
2307   glIsVertexArrayOESProc glIsVertexArrayOESFn;
2308   glLineWidthProc glLineWidthFn;
2309   glLinkProgramProc glLinkProgramFn;
2310   glMapBufferProc glMapBufferFn;
2311   glMapBufferRangeProc glMapBufferRangeFn;
2312   glMatrixLoadfEXTProc glMatrixLoadfEXTFn;
2313   glMatrixLoadIdentityEXTProc glMatrixLoadIdentityEXTFn;
2314   glMaxShaderCompilerThreadsKHRProc glMaxShaderCompilerThreadsKHRFn;
2315   glMemoryBarrierByRegionProc glMemoryBarrierByRegionFn;
2316   glMemoryBarrierEXTProc glMemoryBarrierEXTFn;
2317   glMemoryObjectParameterivEXTProc glMemoryObjectParameterivEXTFn;
2318   glMinSampleShadingProc glMinSampleShadingFn;
2319   glMultiDrawArraysANGLEProc glMultiDrawArraysANGLEFn;
2320   glMultiDrawArraysInstancedANGLEProc glMultiDrawArraysInstancedANGLEFn;
2321   glMultiDrawArraysInstancedBaseInstanceANGLEProc
2322       glMultiDrawArraysInstancedBaseInstanceANGLEFn;
2323   glMultiDrawElementsANGLEProc glMultiDrawElementsANGLEFn;
2324   glMultiDrawElementsInstancedANGLEProc glMultiDrawElementsInstancedANGLEFn;
2325   glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEProc
2326       glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEFn;
2327   glObjectLabelProc glObjectLabelFn;
2328   glObjectPtrLabelProc glObjectPtrLabelFn;
2329   glPathCommandsNVProc glPathCommandsNVFn;
2330   glPathParameterfNVProc glPathParameterfNVFn;
2331   glPathParameteriNVProc glPathParameteriNVFn;
2332   glPathStencilFuncNVProc glPathStencilFuncNVFn;
2333   glPauseTransformFeedbackProc glPauseTransformFeedbackFn;
2334   glPixelStoreiProc glPixelStoreiFn;
2335   glPointParameteriProc glPointParameteriFn;
2336   glPolygonModeProc glPolygonModeFn;
2337   glPolygonOffsetProc glPolygonOffsetFn;
2338   glPopDebugGroupProc glPopDebugGroupFn;
2339   glPopGroupMarkerEXTProc glPopGroupMarkerEXTFn;
2340   glPrimitiveRestartIndexProc glPrimitiveRestartIndexFn;
2341   glProgramBinaryProc glProgramBinaryFn;
2342   glProgramParameteriProc glProgramParameteriFn;
2343   glProgramPathFragmentInputGenNVProc glProgramPathFragmentInputGenNVFn;
2344   glProgramUniform1fProc glProgramUniform1fFn;
2345   glProgramUniform1fvProc glProgramUniform1fvFn;
2346   glProgramUniform1iProc glProgramUniform1iFn;
2347   glProgramUniform1ivProc glProgramUniform1ivFn;
2348   glProgramUniform1uiProc glProgramUniform1uiFn;
2349   glProgramUniform1uivProc glProgramUniform1uivFn;
2350   glProgramUniform2fProc glProgramUniform2fFn;
2351   glProgramUniform2fvProc glProgramUniform2fvFn;
2352   glProgramUniform2iProc glProgramUniform2iFn;
2353   glProgramUniform2ivProc glProgramUniform2ivFn;
2354   glProgramUniform2uiProc glProgramUniform2uiFn;
2355   glProgramUniform2uivProc glProgramUniform2uivFn;
2356   glProgramUniform3fProc glProgramUniform3fFn;
2357   glProgramUniform3fvProc glProgramUniform3fvFn;
2358   glProgramUniform3iProc glProgramUniform3iFn;
2359   glProgramUniform3ivProc glProgramUniform3ivFn;
2360   glProgramUniform3uiProc glProgramUniform3uiFn;
2361   glProgramUniform3uivProc glProgramUniform3uivFn;
2362   glProgramUniform4fProc glProgramUniform4fFn;
2363   glProgramUniform4fvProc glProgramUniform4fvFn;
2364   glProgramUniform4iProc glProgramUniform4iFn;
2365   glProgramUniform4ivProc glProgramUniform4ivFn;
2366   glProgramUniform4uiProc glProgramUniform4uiFn;
2367   glProgramUniform4uivProc glProgramUniform4uivFn;
2368   glProgramUniformMatrix2fvProc glProgramUniformMatrix2fvFn;
2369   glProgramUniformMatrix2x3fvProc glProgramUniformMatrix2x3fvFn;
2370   glProgramUniformMatrix2x4fvProc glProgramUniformMatrix2x4fvFn;
2371   glProgramUniformMatrix3fvProc glProgramUniformMatrix3fvFn;
2372   glProgramUniformMatrix3x2fvProc glProgramUniformMatrix3x2fvFn;
2373   glProgramUniformMatrix3x4fvProc glProgramUniformMatrix3x4fvFn;
2374   glProgramUniformMatrix4fvProc glProgramUniformMatrix4fvFn;
2375   glProgramUniformMatrix4x2fvProc glProgramUniformMatrix4x2fvFn;
2376   glProgramUniformMatrix4x3fvProc glProgramUniformMatrix4x3fvFn;
2377   glPushDebugGroupProc glPushDebugGroupFn;
2378   glPushGroupMarkerEXTProc glPushGroupMarkerEXTFn;
2379   glQueryCounterProc glQueryCounterFn;
2380   glReadBufferProc glReadBufferFn;
2381   glReadnPixelsRobustANGLEProc glReadnPixelsRobustANGLEFn;
2382   glReadPixelsProc glReadPixelsFn;
2383   glReadPixelsRobustANGLEProc glReadPixelsRobustANGLEFn;
2384   glReleaseShaderCompilerProc glReleaseShaderCompilerFn;
2385   glRenderbufferStorageEXTProc glRenderbufferStorageEXTFn;
2386   glRenderbufferStorageMultisampleProc glRenderbufferStorageMultisampleFn;
2387   glRenderbufferStorageMultisampleAdvancedAMDProc
2388       glRenderbufferStorageMultisampleAdvancedAMDFn;
2389   glRenderbufferStorageMultisampleEXTProc glRenderbufferStorageMultisampleEXTFn;
2390   glRequestExtensionANGLEProc glRequestExtensionANGLEFn;
2391   glResumeTransformFeedbackProc glResumeTransformFeedbackFn;
2392   glSampleCoverageProc glSampleCoverageFn;
2393   glSampleMaskiProc glSampleMaskiFn;
2394   glSamplerParameterfProc glSamplerParameterfFn;
2395   glSamplerParameterfvProc glSamplerParameterfvFn;
2396   glSamplerParameterfvRobustANGLEProc glSamplerParameterfvRobustANGLEFn;
2397   glSamplerParameteriProc glSamplerParameteriFn;
2398   glSamplerParameterIivRobustANGLEProc glSamplerParameterIivRobustANGLEFn;
2399   glSamplerParameterIuivRobustANGLEProc glSamplerParameterIuivRobustANGLEFn;
2400   glSamplerParameterivProc glSamplerParameterivFn;
2401   glSamplerParameterivRobustANGLEProc glSamplerParameterivRobustANGLEFn;
2402   glScissorProc glScissorFn;
2403   glSetFenceAPPLEProc glSetFenceAPPLEFn;
2404   glSetFenceNVProc glSetFenceNVFn;
2405   glShaderBinaryProc glShaderBinaryFn;
2406   glShaderSourceProc glShaderSourceFn;
2407   glSignalSemaphoreEXTProc glSignalSemaphoreEXTFn;
2408   glStartTilingQCOMProc glStartTilingQCOMFn;
2409   glStencilFillPathInstancedNVProc glStencilFillPathInstancedNVFn;
2410   glStencilFillPathNVProc glStencilFillPathNVFn;
2411   glStencilFuncProc glStencilFuncFn;
2412   glStencilFuncSeparateProc glStencilFuncSeparateFn;
2413   glStencilMaskProc glStencilMaskFn;
2414   glStencilMaskSeparateProc glStencilMaskSeparateFn;
2415   glStencilOpProc glStencilOpFn;
2416   glStencilOpSeparateProc glStencilOpSeparateFn;
2417   glStencilStrokePathInstancedNVProc glStencilStrokePathInstancedNVFn;
2418   glStencilStrokePathNVProc glStencilStrokePathNVFn;
2419   glStencilThenCoverFillPathInstancedNVProc
2420       glStencilThenCoverFillPathInstancedNVFn;
2421   glStencilThenCoverFillPathNVProc glStencilThenCoverFillPathNVFn;
2422   glStencilThenCoverStrokePathInstancedNVProc
2423       glStencilThenCoverStrokePathInstancedNVFn;
2424   glStencilThenCoverStrokePathNVProc glStencilThenCoverStrokePathNVFn;
2425   glTestFenceAPPLEProc glTestFenceAPPLEFn;
2426   glTestFenceNVProc glTestFenceNVFn;
2427   glTexBufferProc glTexBufferFn;
2428   glTexBufferRangeProc glTexBufferRangeFn;
2429   glTexImage2DProc glTexImage2DFn;
2430   glTexImage2DExternalANGLEProc glTexImage2DExternalANGLEFn;
2431   glTexImage2DRobustANGLEProc glTexImage2DRobustANGLEFn;
2432   glTexImage3DProc glTexImage3DFn;
2433   glTexImage3DRobustANGLEProc glTexImage3DRobustANGLEFn;
2434   glTexParameterfProc glTexParameterfFn;
2435   glTexParameterfvProc glTexParameterfvFn;
2436   glTexParameterfvRobustANGLEProc glTexParameterfvRobustANGLEFn;
2437   glTexParameteriProc glTexParameteriFn;
2438   glTexParameterIivRobustANGLEProc glTexParameterIivRobustANGLEFn;
2439   glTexParameterIuivRobustANGLEProc glTexParameterIuivRobustANGLEFn;
2440   glTexParameterivProc glTexParameterivFn;
2441   glTexParameterivRobustANGLEProc glTexParameterivRobustANGLEFn;
2442   glTexStorage2DEXTProc glTexStorage2DEXTFn;
2443   glTexStorage2DMultisampleProc glTexStorage2DMultisampleFn;
2444   glTexStorage3DProc glTexStorage3DFn;
2445   glTexStorageMem2DEXTProc glTexStorageMem2DEXTFn;
2446   glTexSubImage2DProc glTexSubImage2DFn;
2447   glTexSubImage2DRobustANGLEProc glTexSubImage2DRobustANGLEFn;
2448   glTexSubImage3DProc glTexSubImage3DFn;
2449   glTexSubImage3DRobustANGLEProc glTexSubImage3DRobustANGLEFn;
2450   glTransformFeedbackVaryingsProc glTransformFeedbackVaryingsFn;
2451   glUniform1fProc glUniform1fFn;
2452   glUniform1fvProc glUniform1fvFn;
2453   glUniform1iProc glUniform1iFn;
2454   glUniform1ivProc glUniform1ivFn;
2455   glUniform1uiProc glUniform1uiFn;
2456   glUniform1uivProc glUniform1uivFn;
2457   glUniform2fProc glUniform2fFn;
2458   glUniform2fvProc glUniform2fvFn;
2459   glUniform2iProc glUniform2iFn;
2460   glUniform2ivProc glUniform2ivFn;
2461   glUniform2uiProc glUniform2uiFn;
2462   glUniform2uivProc glUniform2uivFn;
2463   glUniform3fProc glUniform3fFn;
2464   glUniform3fvProc glUniform3fvFn;
2465   glUniform3iProc glUniform3iFn;
2466   glUniform3ivProc glUniform3ivFn;
2467   glUniform3uiProc glUniform3uiFn;
2468   glUniform3uivProc glUniform3uivFn;
2469   glUniform4fProc glUniform4fFn;
2470   glUniform4fvProc glUniform4fvFn;
2471   glUniform4iProc glUniform4iFn;
2472   glUniform4ivProc glUniform4ivFn;
2473   glUniform4uiProc glUniform4uiFn;
2474   glUniform4uivProc glUniform4uivFn;
2475   glUniformBlockBindingProc glUniformBlockBindingFn;
2476   glUniformMatrix2fvProc glUniformMatrix2fvFn;
2477   glUniformMatrix2x3fvProc glUniformMatrix2x3fvFn;
2478   glUniformMatrix2x4fvProc glUniformMatrix2x4fvFn;
2479   glUniformMatrix3fvProc glUniformMatrix3fvFn;
2480   glUniformMatrix3x2fvProc glUniformMatrix3x2fvFn;
2481   glUniformMatrix3x4fvProc glUniformMatrix3x4fvFn;
2482   glUniformMatrix4fvProc glUniformMatrix4fvFn;
2483   glUniformMatrix4x2fvProc glUniformMatrix4x2fvFn;
2484   glUniformMatrix4x3fvProc glUniformMatrix4x3fvFn;
2485   glUnmapBufferProc glUnmapBufferFn;
2486   glUseProgramProc glUseProgramFn;
2487   glUseProgramStagesProc glUseProgramStagesFn;
2488   glValidateProgramProc glValidateProgramFn;
2489   glValidateProgramPipelineProc glValidateProgramPipelineFn;
2490   glVertexAttrib1fProc glVertexAttrib1fFn;
2491   glVertexAttrib1fvProc glVertexAttrib1fvFn;
2492   glVertexAttrib2fProc glVertexAttrib2fFn;
2493   glVertexAttrib2fvProc glVertexAttrib2fvFn;
2494   glVertexAttrib3fProc glVertexAttrib3fFn;
2495   glVertexAttrib3fvProc glVertexAttrib3fvFn;
2496   glVertexAttrib4fProc glVertexAttrib4fFn;
2497   glVertexAttrib4fvProc glVertexAttrib4fvFn;
2498   glVertexAttribBindingProc glVertexAttribBindingFn;
2499   glVertexAttribDivisorANGLEProc glVertexAttribDivisorANGLEFn;
2500   glVertexAttribFormatProc glVertexAttribFormatFn;
2501   glVertexAttribI4iProc glVertexAttribI4iFn;
2502   glVertexAttribI4ivProc glVertexAttribI4ivFn;
2503   glVertexAttribI4uiProc glVertexAttribI4uiFn;
2504   glVertexAttribI4uivProc glVertexAttribI4uivFn;
2505   glVertexAttribIFormatProc glVertexAttribIFormatFn;
2506   glVertexAttribIPointerProc glVertexAttribIPointerFn;
2507   glVertexAttribPointerProc glVertexAttribPointerFn;
2508   glVertexBindingDivisorProc glVertexBindingDivisorFn;
2509   glViewportProc glViewportFn;
2510   glWaitSemaphoreEXTProc glWaitSemaphoreEXTFn;
2511   glWaitSyncProc glWaitSyncFn;
2512   glWaitSyncAPPLEProc glWaitSyncAPPLEFn;
2513   glWindowRectanglesEXTProc glWindowRectanglesEXTFn;
2514 };
2515 
2516 class GL_EXPORT GLApi {
2517  public:
2518   GLApi();
2519   virtual ~GLApi();
2520 
SetDisabledExtensions(const std::string & disabled_extensions)2521   virtual void SetDisabledExtensions(const std::string& disabled_extensions) {}
2522 
2523   virtual void glActiveShaderProgramFn(GLuint pipeline, GLuint program) = 0;
2524   virtual void glActiveTextureFn(GLenum texture) = 0;
2525   virtual void glAttachShaderFn(GLuint program, GLuint shader) = 0;
2526   virtual void glBeginQueryFn(GLenum target, GLuint id) = 0;
2527   virtual void glBeginTransformFeedbackFn(GLenum primitiveMode) = 0;
2528   virtual void glBindAttribLocationFn(GLuint program,
2529                                       GLuint index,
2530                                       const char* name) = 0;
2531   virtual void glBindBufferFn(GLenum target, GLuint buffer) = 0;
2532   virtual void glBindBufferBaseFn(GLenum target,
2533                                   GLuint index,
2534                                   GLuint buffer) = 0;
2535   virtual void glBindBufferRangeFn(GLenum target,
2536                                    GLuint index,
2537                                    GLuint buffer,
2538                                    GLintptr offset,
2539                                    GLsizeiptr size) = 0;
2540   virtual void glBindFragDataLocationFn(GLuint program,
2541                                         GLuint colorNumber,
2542                                         const char* name) = 0;
2543   virtual void glBindFragDataLocationIndexedFn(GLuint program,
2544                                                GLuint colorNumber,
2545                                                GLuint index,
2546                                                const char* name) = 0;
2547   virtual void glBindFragmentInputLocationCHROMIUMFn(GLuint program,
2548                                                      GLint location,
2549                                                      const char* name) = 0;
2550   virtual void glBindFramebufferEXTFn(GLenum target, GLuint framebuffer) = 0;
2551   virtual void glBindImageTextureEXTFn(GLuint index,
2552                                        GLuint texture,
2553                                        GLint level,
2554                                        GLboolean layered,
2555                                        GLint layer,
2556                                        GLenum access,
2557                                        GLint format) = 0;
2558   virtual void glBindProgramPipelineFn(GLuint pipeline) = 0;
2559   virtual void glBindRenderbufferEXTFn(GLenum target, GLuint renderbuffer) = 0;
2560   virtual void glBindSamplerFn(GLuint unit, GLuint sampler) = 0;
2561   virtual void glBindTextureFn(GLenum target, GLuint texture) = 0;
2562   virtual void glBindTransformFeedbackFn(GLenum target, GLuint id) = 0;
2563   virtual void glBindUniformLocationCHROMIUMFn(GLuint program,
2564                                                GLint location,
2565                                                const char* name) = 0;
2566   virtual void glBindVertexArrayOESFn(GLuint array) = 0;
2567   virtual void glBindVertexBufferFn(GLuint bindingindex,
2568                                     GLuint buffer,
2569                                     GLintptr offset,
2570                                     GLsizei stride) = 0;
2571   virtual void glBlendBarrierKHRFn(void) = 0;
2572   virtual void glBlendColorFn(GLclampf red,
2573                               GLclampf green,
2574                               GLclampf blue,
2575                               GLclampf alpha) = 0;
2576   virtual void glBlendEquationFn(GLenum mode) = 0;
2577   virtual void glBlendEquationSeparateFn(GLenum modeRGB, GLenum modeAlpha) = 0;
2578   virtual void glBlendFuncFn(GLenum sfactor, GLenum dfactor) = 0;
2579   virtual void glBlendFuncSeparateFn(GLenum srcRGB,
2580                                      GLenum dstRGB,
2581                                      GLenum srcAlpha,
2582                                      GLenum dstAlpha) = 0;
2583   virtual void glBlitFramebufferFn(GLint srcX0,
2584                                    GLint srcY0,
2585                                    GLint srcX1,
2586                                    GLint srcY1,
2587                                    GLint dstX0,
2588                                    GLint dstY0,
2589                                    GLint dstX1,
2590                                    GLint dstY1,
2591                                    GLbitfield mask,
2592                                    GLenum filter) = 0;
2593   virtual void glBufferDataFn(GLenum target,
2594                               GLsizeiptr size,
2595                               const void* data,
2596                               GLenum usage) = 0;
2597   virtual void glBufferSubDataFn(GLenum target,
2598                                  GLintptr offset,
2599                                  GLsizeiptr size,
2600                                  const void* data) = 0;
2601   virtual GLenum glCheckFramebufferStatusEXTFn(GLenum target) = 0;
2602   virtual void glClearFn(GLbitfield mask) = 0;
2603   virtual void glClearBufferfiFn(GLenum buffer,
2604                                  GLint drawbuffer,
2605                                  const GLfloat depth,
2606                                  GLint stencil) = 0;
2607   virtual void glClearBufferfvFn(GLenum buffer,
2608                                  GLint drawbuffer,
2609                                  const GLfloat* value) = 0;
2610   virtual void glClearBufferivFn(GLenum buffer,
2611                                  GLint drawbuffer,
2612                                  const GLint* value) = 0;
2613   virtual void glClearBufferuivFn(GLenum buffer,
2614                                   GLint drawbuffer,
2615                                   const GLuint* value) = 0;
2616   virtual void glClearColorFn(GLclampf red,
2617                               GLclampf green,
2618                               GLclampf blue,
2619                               GLclampf alpha) = 0;
2620   virtual void glClearDepthFn(GLclampd depth) = 0;
2621   virtual void glClearDepthfFn(GLclampf depth) = 0;
2622   virtual void glClearStencilFn(GLint s) = 0;
2623   virtual void glClearTexImageFn(GLuint texture,
2624                                  GLint level,
2625                                  GLenum format,
2626                                  GLenum type,
2627                                  const GLvoid* data) = 0;
2628   virtual void glClearTexSubImageFn(GLuint texture,
2629                                     GLint level,
2630                                     GLint xoffset,
2631                                     GLint yoffset,
2632                                     GLint zoffset,
2633                                     GLint width,
2634                                     GLint height,
2635                                     GLint depth,
2636                                     GLenum format,
2637                                     GLenum type,
2638                                     const GLvoid* data) = 0;
2639   virtual GLenum glClientWaitSyncFn(GLsync sync,
2640                                     GLbitfield flags,
2641                                     GLuint64 timeout) = 0;
2642   virtual GLenum glClientWaitSyncAPPLEFn(GLsync sync,
2643                                          GLbitfield flags,
2644                                          GLuint64 timeout) = 0;
2645   virtual void glColorMaskFn(GLboolean red,
2646                              GLboolean green,
2647                              GLboolean blue,
2648                              GLboolean alpha) = 0;
2649   virtual void glCompileShaderFn(GLuint shader) = 0;
2650   virtual void glCompressedTexImage2DFn(GLenum target,
2651                                         GLint level,
2652                                         GLenum internalformat,
2653                                         GLsizei width,
2654                                         GLsizei height,
2655                                         GLint border,
2656                                         GLsizei imageSize,
2657                                         const void* data) = 0;
2658   virtual void glCompressedTexImage2DRobustANGLEFn(GLenum target,
2659                                                    GLint level,
2660                                                    GLenum internalformat,
2661                                                    GLsizei width,
2662                                                    GLsizei height,
2663                                                    GLint border,
2664                                                    GLsizei imageSize,
2665                                                    GLsizei dataSize,
2666                                                    const void* data) = 0;
2667   virtual void glCompressedTexImage3DFn(GLenum target,
2668                                         GLint level,
2669                                         GLenum internalformat,
2670                                         GLsizei width,
2671                                         GLsizei height,
2672                                         GLsizei depth,
2673                                         GLint border,
2674                                         GLsizei imageSize,
2675                                         const void* data) = 0;
2676   virtual void glCompressedTexImage3DRobustANGLEFn(GLenum target,
2677                                                    GLint level,
2678                                                    GLenum internalformat,
2679                                                    GLsizei width,
2680                                                    GLsizei height,
2681                                                    GLsizei depth,
2682                                                    GLint border,
2683                                                    GLsizei imageSize,
2684                                                    GLsizei dataSize,
2685                                                    const void* data) = 0;
2686   virtual void glCompressedTexSubImage2DFn(GLenum target,
2687                                            GLint level,
2688                                            GLint xoffset,
2689                                            GLint yoffset,
2690                                            GLsizei width,
2691                                            GLsizei height,
2692                                            GLenum format,
2693                                            GLsizei imageSize,
2694                                            const void* data) = 0;
2695   virtual void glCompressedTexSubImage2DRobustANGLEFn(GLenum target,
2696                                                       GLint level,
2697                                                       GLint xoffset,
2698                                                       GLint yoffset,
2699                                                       GLsizei width,
2700                                                       GLsizei height,
2701                                                       GLenum format,
2702                                                       GLsizei imageSize,
2703                                                       GLsizei dataSize,
2704                                                       const void* data) = 0;
2705   virtual void glCompressedTexSubImage3DFn(GLenum target,
2706                                            GLint level,
2707                                            GLint xoffset,
2708                                            GLint yoffset,
2709                                            GLint zoffset,
2710                                            GLsizei width,
2711                                            GLsizei height,
2712                                            GLsizei depth,
2713                                            GLenum format,
2714                                            GLsizei imageSize,
2715                                            const void* data) = 0;
2716   virtual void glCompressedTexSubImage3DRobustANGLEFn(GLenum target,
2717                                                       GLint level,
2718                                                       GLint xoffset,
2719                                                       GLint yoffset,
2720                                                       GLint zoffset,
2721                                                       GLsizei width,
2722                                                       GLsizei height,
2723                                                       GLsizei depth,
2724                                                       GLenum format,
2725                                                       GLsizei imageSize,
2726                                                       GLsizei dataSize,
2727                                                       const void* data) = 0;
2728   virtual void glCopyBufferSubDataFn(GLenum readTarget,
2729                                      GLenum writeTarget,
2730                                      GLintptr readOffset,
2731                                      GLintptr writeOffset,
2732                                      GLsizeiptr size) = 0;
2733   virtual void glCopySubTextureCHROMIUMFn(GLuint sourceId,
2734                                           GLint sourceLevel,
2735                                           GLenum destTarget,
2736                                           GLuint destId,
2737                                           GLint destLevel,
2738                                           GLint xoffset,
2739                                           GLint yoffset,
2740                                           GLint x,
2741                                           GLint y,
2742                                           GLsizei width,
2743                                           GLsizei height,
2744                                           GLboolean unpackFlipY,
2745                                           GLboolean unpackPremultiplyAlpha,
2746                                           GLboolean unpackUnmultiplyAlpha) = 0;
2747   virtual void glCopyTexImage2DFn(GLenum target,
2748                                   GLint level,
2749                                   GLenum internalformat,
2750                                   GLint x,
2751                                   GLint y,
2752                                   GLsizei width,
2753                                   GLsizei height,
2754                                   GLint border) = 0;
2755   virtual void glCopyTexSubImage2DFn(GLenum target,
2756                                      GLint level,
2757                                      GLint xoffset,
2758                                      GLint yoffset,
2759                                      GLint x,
2760                                      GLint y,
2761                                      GLsizei width,
2762                                      GLsizei height) = 0;
2763   virtual void glCopyTexSubImage3DFn(GLenum target,
2764                                      GLint level,
2765                                      GLint xoffset,
2766                                      GLint yoffset,
2767                                      GLint zoffset,
2768                                      GLint x,
2769                                      GLint y,
2770                                      GLsizei width,
2771                                      GLsizei height) = 0;
2772   virtual void glCopyTextureCHROMIUMFn(GLuint sourceId,
2773                                        GLint sourceLevel,
2774                                        GLenum destTarget,
2775                                        GLuint destId,
2776                                        GLint destLevel,
2777                                        GLint internalFormat,
2778                                        GLenum destType,
2779                                        GLboolean unpackFlipY,
2780                                        GLboolean unpackPremultiplyAlpha,
2781                                        GLboolean unpackUnmultiplyAlpha) = 0;
2782   virtual void glCoverageModulationNVFn(GLenum components) = 0;
2783   virtual void glCoverFillPathInstancedNVFn(GLsizei numPaths,
2784                                             GLenum pathNameType,
2785                                             const void* paths,
2786                                             GLuint pathBase,
2787                                             GLenum coverMode,
2788                                             GLenum transformType,
2789                                             const GLfloat* transformValues) = 0;
2790   virtual void glCoverFillPathNVFn(GLuint path, GLenum coverMode) = 0;
2791   virtual void glCoverStrokePathInstancedNVFn(
2792       GLsizei numPaths,
2793       GLenum pathNameType,
2794       const void* paths,
2795       GLuint pathBase,
2796       GLenum coverMode,
2797       GLenum transformType,
2798       const GLfloat* transformValues) = 0;
2799   virtual void glCoverStrokePathNVFn(GLuint name, GLenum coverMode) = 0;
2800   virtual void glCreateMemoryObjectsEXTFn(GLsizei n, GLuint* memoryObjects) = 0;
2801   virtual GLuint glCreateProgramFn(void) = 0;
2802   virtual GLuint glCreateShaderFn(GLenum type) = 0;
2803   virtual GLuint glCreateShaderProgramvFn(GLenum type,
2804                                           GLsizei count,
2805                                           const char* const* strings) = 0;
2806   virtual void glCullFaceFn(GLenum mode) = 0;
2807   virtual void glDebugMessageCallbackFn(GLDEBUGPROC callback,
2808                                         const void* userParam) = 0;
2809   virtual void glDebugMessageControlFn(GLenum source,
2810                                        GLenum type,
2811                                        GLenum severity,
2812                                        GLsizei count,
2813                                        const GLuint* ids,
2814                                        GLboolean enabled) = 0;
2815   virtual void glDebugMessageInsertFn(GLenum source,
2816                                       GLenum type,
2817                                       GLuint id,
2818                                       GLenum severity,
2819                                       GLsizei length,
2820                                       const char* buf) = 0;
2821   virtual void glDeleteBuffersARBFn(GLsizei n, const GLuint* buffers) = 0;
2822   virtual void glDeleteFencesAPPLEFn(GLsizei n, const GLuint* fences) = 0;
2823   virtual void glDeleteFencesNVFn(GLsizei n, const GLuint* fences) = 0;
2824   virtual void glDeleteFramebuffersEXTFn(GLsizei n,
2825                                          const GLuint* framebuffers) = 0;
2826   virtual void glDeleteMemoryObjectsEXTFn(GLsizei n,
2827                                           const GLuint* memoryObjects) = 0;
2828   virtual void glDeletePathsNVFn(GLuint path, GLsizei range) = 0;
2829   virtual void glDeleteProgramFn(GLuint program) = 0;
2830   virtual void glDeleteProgramPipelinesFn(GLsizei n,
2831                                           const GLuint* pipelines) = 0;
2832   virtual void glDeleteQueriesFn(GLsizei n, const GLuint* ids) = 0;
2833   virtual void glDeleteRenderbuffersEXTFn(GLsizei n,
2834                                           const GLuint* renderbuffers) = 0;
2835   virtual void glDeleteSamplersFn(GLsizei n, const GLuint* samplers) = 0;
2836   virtual void glDeleteSemaphoresEXTFn(GLsizei n, const GLuint* semaphores) = 0;
2837   virtual void glDeleteShaderFn(GLuint shader) = 0;
2838   virtual void glDeleteSyncFn(GLsync sync) = 0;
2839   virtual void glDeleteSyncAPPLEFn(GLsync sync) = 0;
2840   virtual void glDeleteTexturesFn(GLsizei n, const GLuint* textures) = 0;
2841   virtual void glDeleteTransformFeedbacksFn(GLsizei n, const GLuint* ids) = 0;
2842   virtual void glDeleteVertexArraysOESFn(GLsizei n, const GLuint* arrays) = 0;
2843   virtual void glDepthFuncFn(GLenum func) = 0;
2844   virtual void glDepthMaskFn(GLboolean flag) = 0;
2845   virtual void glDepthRangeFn(GLclampd zNear, GLclampd zFar) = 0;
2846   virtual void glDepthRangefFn(GLclampf zNear, GLclampf zFar) = 0;
2847   virtual void glDetachShaderFn(GLuint program, GLuint shader) = 0;
2848   virtual void glDisableFn(GLenum cap) = 0;
2849   virtual void glDisableExtensionANGLEFn(const char* name) = 0;
2850   virtual void glDisableVertexAttribArrayFn(GLuint index) = 0;
2851   virtual void glDiscardFramebufferEXTFn(GLenum target,
2852                                          GLsizei numAttachments,
2853                                          const GLenum* attachments) = 0;
2854   virtual void glDispatchComputeFn(GLuint numGroupsX,
2855                                    GLuint numGroupsY,
2856                                    GLuint numGroupsZ) = 0;
2857   virtual void glDispatchComputeIndirectFn(GLintptr indirect) = 0;
2858   virtual void glDrawArraysFn(GLenum mode, GLint first, GLsizei count) = 0;
2859   virtual void glDrawArraysIndirectFn(GLenum mode, const void* indirect) = 0;
2860   virtual void glDrawArraysInstancedANGLEFn(GLenum mode,
2861                                             GLint first,
2862                                             GLsizei count,
2863                                             GLsizei primcount) = 0;
2864   virtual void glDrawArraysInstancedBaseInstanceANGLEFn(
2865       GLenum mode,
2866       GLint first,
2867       GLsizei count,
2868       GLsizei primcount,
2869       GLuint baseinstance) = 0;
2870   virtual void glDrawBufferFn(GLenum mode) = 0;
2871   virtual void glDrawBuffersARBFn(GLsizei n, const GLenum* bufs) = 0;
2872   virtual void glDrawElementsFn(GLenum mode,
2873                                 GLsizei count,
2874                                 GLenum type,
2875                                 const void* indices) = 0;
2876   virtual void glDrawElementsIndirectFn(GLenum mode,
2877                                         GLenum type,
2878                                         const void* indirect) = 0;
2879   virtual void glDrawElementsInstancedANGLEFn(GLenum mode,
2880                                               GLsizei count,
2881                                               GLenum type,
2882                                               const void* indices,
2883                                               GLsizei primcount) = 0;
2884   virtual void glDrawElementsInstancedBaseVertexBaseInstanceANGLEFn(
2885       GLenum mode,
2886       GLsizei count,
2887       GLenum type,
2888       const void* indices,
2889       GLsizei primcount,
2890       GLint baseVertex,
2891       GLuint baseInstance) = 0;
2892   virtual void glDrawRangeElementsFn(GLenum mode,
2893                                      GLuint start,
2894                                      GLuint end,
2895                                      GLsizei count,
2896                                      GLenum type,
2897                                      const void* indices) = 0;
2898   virtual void glEGLImageTargetRenderbufferStorageOESFn(
2899       GLenum target,
2900       GLeglImageOES image) = 0;
2901   virtual void glEGLImageTargetTexture2DOESFn(GLenum target,
2902                                               GLeglImageOES image) = 0;
2903   virtual void glEnableFn(GLenum cap) = 0;
2904   virtual void glEnableVertexAttribArrayFn(GLuint index) = 0;
2905   virtual void glEndQueryFn(GLenum target) = 0;
2906   virtual void glEndTilingQCOMFn(GLbitfield preserveMask) = 0;
2907   virtual void glEndTransformFeedbackFn(void) = 0;
2908   virtual GLsync glFenceSyncFn(GLenum condition, GLbitfield flags) = 0;
2909   virtual GLsync glFenceSyncAPPLEFn(GLenum condition, GLbitfield flags) = 0;
2910   virtual void glFinishFn(void) = 0;
2911   virtual void glFinishFenceAPPLEFn(GLuint fence) = 0;
2912   virtual void glFinishFenceNVFn(GLuint fence) = 0;
2913   virtual void glFlushFn(void) = 0;
2914   virtual void glFlushMappedBufferRangeFn(GLenum target,
2915                                           GLintptr offset,
2916                                           GLsizeiptr length) = 0;
2917   virtual void glFramebufferParameteriFn(GLenum target,
2918                                          GLenum pname,
2919                                          GLint param) = 0;
2920   virtual void glFramebufferRenderbufferEXTFn(GLenum target,
2921                                               GLenum attachment,
2922                                               GLenum renderbuffertarget,
2923                                               GLuint renderbuffer) = 0;
2924   virtual void glFramebufferTexture2DEXTFn(GLenum target,
2925                                            GLenum attachment,
2926                                            GLenum textarget,
2927                                            GLuint texture,
2928                                            GLint level) = 0;
2929   virtual void glFramebufferTexture2DMultisampleEXTFn(GLenum target,
2930                                                       GLenum attachment,
2931                                                       GLenum textarget,
2932                                                       GLuint texture,
2933                                                       GLint level,
2934                                                       GLsizei samples) = 0;
2935   virtual void glFramebufferTextureLayerFn(GLenum target,
2936                                            GLenum attachment,
2937                                            GLuint texture,
2938                                            GLint level,
2939                                            GLint layer) = 0;
2940   virtual void glFramebufferTextureMultiviewOVRFn(GLenum target,
2941                                                   GLenum attachment,
2942                                                   GLuint texture,
2943                                                   GLint level,
2944                                                   GLint baseViewIndex,
2945                                                   GLsizei numViews) = 0;
2946   virtual void glFrontFaceFn(GLenum mode) = 0;
2947   virtual void glGenBuffersARBFn(GLsizei n, GLuint* buffers) = 0;
2948   virtual void glGenerateMipmapEXTFn(GLenum target) = 0;
2949   virtual void glGenFencesAPPLEFn(GLsizei n, GLuint* fences) = 0;
2950   virtual void glGenFencesNVFn(GLsizei n, GLuint* fences) = 0;
2951   virtual void glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) = 0;
2952   virtual GLuint glGenPathsNVFn(GLsizei range) = 0;
2953   virtual GLuint glGenProgramPipelinesFn(GLsizei n, GLuint* pipelines) = 0;
2954   virtual void glGenQueriesFn(GLsizei n, GLuint* ids) = 0;
2955   virtual void glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) = 0;
2956   virtual void glGenSamplersFn(GLsizei n, GLuint* samplers) = 0;
2957   virtual void glGenSemaphoresEXTFn(GLsizei n, GLuint* semaphores) = 0;
2958   virtual void glGenTexturesFn(GLsizei n, GLuint* textures) = 0;
2959   virtual void glGenTransformFeedbacksFn(GLsizei n, GLuint* ids) = 0;
2960   virtual void glGenVertexArraysOESFn(GLsizei n, GLuint* arrays) = 0;
2961   virtual void glGetActiveAttribFn(GLuint program,
2962                                    GLuint index,
2963                                    GLsizei bufsize,
2964                                    GLsizei* length,
2965                                    GLint* size,
2966                                    GLenum* type,
2967                                    char* name) = 0;
2968   virtual void glGetActiveUniformFn(GLuint program,
2969                                     GLuint index,
2970                                     GLsizei bufsize,
2971                                     GLsizei* length,
2972                                     GLint* size,
2973                                     GLenum* type,
2974                                     char* name) = 0;
2975   virtual void glGetActiveUniformBlockivFn(GLuint program,
2976                                            GLuint uniformBlockIndex,
2977                                            GLenum pname,
2978                                            GLint* params) = 0;
2979   virtual void glGetActiveUniformBlockivRobustANGLEFn(GLuint program,
2980                                                       GLuint uniformBlockIndex,
2981                                                       GLenum pname,
2982                                                       GLsizei bufSize,
2983                                                       GLsizei* length,
2984                                                       GLint* params) = 0;
2985   virtual void glGetActiveUniformBlockNameFn(GLuint program,
2986                                              GLuint uniformBlockIndex,
2987                                              GLsizei bufSize,
2988                                              GLsizei* length,
2989                                              char* uniformBlockName) = 0;
2990   virtual void glGetActiveUniformsivFn(GLuint program,
2991                                        GLsizei uniformCount,
2992                                        const GLuint* uniformIndices,
2993                                        GLenum pname,
2994                                        GLint* params) = 0;
2995   virtual void glGetAttachedShadersFn(GLuint program,
2996                                       GLsizei maxcount,
2997                                       GLsizei* count,
2998                                       GLuint* shaders) = 0;
2999   virtual GLint glGetAttribLocationFn(GLuint program, const char* name) = 0;
3000   virtual void glGetBooleani_vFn(GLenum target,
3001                                  GLuint index,
3002                                  GLboolean* data) = 0;
3003   virtual void glGetBooleani_vRobustANGLEFn(GLenum target,
3004                                             GLuint index,
3005                                             GLsizei bufSize,
3006                                             GLsizei* length,
3007                                             GLboolean* data) = 0;
3008   virtual void glGetBooleanvFn(GLenum pname, GLboolean* params) = 0;
3009   virtual void glGetBooleanvRobustANGLEFn(GLenum pname,
3010                                           GLsizei bufSize,
3011                                           GLsizei* length,
3012                                           GLboolean* data) = 0;
3013   virtual void glGetBufferParameteri64vRobustANGLEFn(GLenum target,
3014                                                      GLenum pname,
3015                                                      GLsizei bufSize,
3016                                                      GLsizei* length,
3017                                                      GLint64* params) = 0;
3018   virtual void glGetBufferParameterivFn(GLenum target,
3019                                         GLenum pname,
3020                                         GLint* params) = 0;
3021   virtual void glGetBufferParameterivRobustANGLEFn(GLenum target,
3022                                                    GLenum pname,
3023                                                    GLsizei bufSize,
3024                                                    GLsizei* length,
3025                                                    GLint* params) = 0;
3026   virtual void glGetBufferPointervRobustANGLEFn(GLenum target,
3027                                                 GLenum pname,
3028                                                 GLsizei bufSize,
3029                                                 GLsizei* length,
3030                                                 void** params) = 0;
3031   virtual GLuint glGetDebugMessageLogFn(GLuint count,
3032                                         GLsizei bufSize,
3033                                         GLenum* sources,
3034                                         GLenum* types,
3035                                         GLuint* ids,
3036                                         GLenum* severities,
3037                                         GLsizei* lengths,
3038                                         char* messageLog) = 0;
3039   virtual GLenum glGetErrorFn(void) = 0;
3040   virtual void glGetFenceivNVFn(GLuint fence, GLenum pname, GLint* params) = 0;
3041   virtual void glGetFloatvFn(GLenum pname, GLfloat* params) = 0;
3042   virtual void glGetFloatvRobustANGLEFn(GLenum pname,
3043                                         GLsizei bufSize,
3044                                         GLsizei* length,
3045                                         GLfloat* data) = 0;
3046   virtual GLint glGetFragDataIndexFn(GLuint program, const char* name) = 0;
3047   virtual GLint glGetFragDataLocationFn(GLuint program, const char* name) = 0;
3048   virtual void glGetFramebufferAttachmentParameterivEXTFn(GLenum target,
3049                                                           GLenum attachment,
3050                                                           GLenum pname,
3051                                                           GLint* params) = 0;
3052   virtual void glGetFramebufferAttachmentParameterivRobustANGLEFn(
3053       GLenum target,
3054       GLenum attachment,
3055       GLenum pname,
3056       GLsizei bufSize,
3057       GLsizei* length,
3058       GLint* params) = 0;
3059   virtual void glGetFramebufferParameterivFn(GLenum target,
3060                                              GLenum pname,
3061                                              GLint* params) = 0;
3062   virtual void glGetFramebufferParameterivRobustANGLEFn(GLenum target,
3063                                                         GLenum pname,
3064                                                         GLsizei bufSize,
3065                                                         GLsizei* length,
3066                                                         GLint* params) = 0;
3067   virtual GLenum glGetGraphicsResetStatusARBFn(void) = 0;
3068   virtual void glGetInteger64i_vFn(GLenum target,
3069                                    GLuint index,
3070                                    GLint64* data) = 0;
3071   virtual void glGetInteger64i_vRobustANGLEFn(GLenum target,
3072                                               GLuint index,
3073                                               GLsizei bufSize,
3074                                               GLsizei* length,
3075                                               GLint64* data) = 0;
3076   virtual void glGetInteger64vFn(GLenum pname, GLint64* params) = 0;
3077   virtual void glGetInteger64vRobustANGLEFn(GLenum pname,
3078                                             GLsizei bufSize,
3079                                             GLsizei* length,
3080                                             GLint64* data) = 0;
3081   virtual void glGetIntegeri_vFn(GLenum target, GLuint index, GLint* data) = 0;
3082   virtual void glGetIntegeri_vRobustANGLEFn(GLenum target,
3083                                             GLuint index,
3084                                             GLsizei bufSize,
3085                                             GLsizei* length,
3086                                             GLint* data) = 0;
3087   virtual void glGetIntegervFn(GLenum pname, GLint* params) = 0;
3088   virtual void glGetIntegervRobustANGLEFn(GLenum pname,
3089                                           GLsizei bufSize,
3090                                           GLsizei* length,
3091                                           GLint* data) = 0;
3092   virtual void glGetInternalformativFn(GLenum target,
3093                                        GLenum internalformat,
3094                                        GLenum pname,
3095                                        GLsizei bufSize,
3096                                        GLint* params) = 0;
3097   virtual void glGetInternalformativRobustANGLEFn(GLenum target,
3098                                                   GLenum internalformat,
3099                                                   GLenum pname,
3100                                                   GLsizei bufSize,
3101                                                   GLsizei* length,
3102                                                   GLint* params) = 0;
3103   virtual void glGetInternalformatSampleivNVFn(GLenum target,
3104                                                GLenum internalformat,
3105                                                GLsizei samples,
3106                                                GLenum pname,
3107                                                GLsizei bufSize,
3108                                                GLint* params) = 0;
3109   virtual void glGetMultisamplefvFn(GLenum pname,
3110                                     GLuint index,
3111                                     GLfloat* val) = 0;
3112   virtual void glGetMultisamplefvRobustANGLEFn(GLenum pname,
3113                                                GLuint index,
3114                                                GLsizei bufSize,
3115                                                GLsizei* length,
3116                                                GLfloat* val) = 0;
3117   virtual void glGetnUniformfvRobustANGLEFn(GLuint program,
3118                                             GLint location,
3119                                             GLsizei bufSize,
3120                                             GLsizei* length,
3121                                             GLfloat* params) = 0;
3122   virtual void glGetnUniformivRobustANGLEFn(GLuint program,
3123                                             GLint location,
3124                                             GLsizei bufSize,
3125                                             GLsizei* length,
3126                                             GLint* params) = 0;
3127   virtual void glGetnUniformuivRobustANGLEFn(GLuint program,
3128                                              GLint location,
3129                                              GLsizei bufSize,
3130                                              GLsizei* length,
3131                                              GLuint* params) = 0;
3132   virtual void glGetObjectLabelFn(GLenum identifier,
3133                                   GLuint name,
3134                                   GLsizei bufSize,
3135                                   GLsizei* length,
3136                                   char* label) = 0;
3137   virtual void glGetObjectPtrLabelFn(void* ptr,
3138                                      GLsizei bufSize,
3139                                      GLsizei* length,
3140                                      char* label) = 0;
3141   virtual void glGetPointervFn(GLenum pname, void** params) = 0;
3142   virtual void glGetPointervRobustANGLERobustANGLEFn(GLenum pname,
3143                                                      GLsizei bufSize,
3144                                                      GLsizei* length,
3145                                                      void** params) = 0;
3146   virtual void glGetProgramBinaryFn(GLuint program,
3147                                     GLsizei bufSize,
3148                                     GLsizei* length,
3149                                     GLenum* binaryFormat,
3150                                     GLvoid* binary) = 0;
3151   virtual void glGetProgramInfoLogFn(GLuint program,
3152                                      GLsizei bufsize,
3153                                      GLsizei* length,
3154                                      char* infolog) = 0;
3155   virtual void glGetProgramInterfaceivFn(GLuint program,
3156                                          GLenum programInterface,
3157                                          GLenum pname,
3158                                          GLint* params) = 0;
3159   virtual void glGetProgramInterfaceivRobustANGLEFn(GLuint program,
3160                                                     GLenum programInterface,
3161                                                     GLenum pname,
3162                                                     GLsizei bufSize,
3163                                                     GLsizei* length,
3164                                                     GLint* params) = 0;
3165   virtual void glGetProgramivFn(GLuint program,
3166                                 GLenum pname,
3167                                 GLint* params) = 0;
3168   virtual void glGetProgramivRobustANGLEFn(GLuint program,
3169                                            GLenum pname,
3170                                            GLsizei bufSize,
3171                                            GLsizei* length,
3172                                            GLint* params) = 0;
3173   virtual void glGetProgramPipelineInfoLogFn(GLuint pipeline,
3174                                              GLsizei bufSize,
3175                                              GLsizei* length,
3176                                              GLchar* infoLog) = 0;
3177   virtual void glGetProgramPipelineivFn(GLuint pipeline,
3178                                         GLenum pname,
3179                                         GLint* params) = 0;
3180   virtual GLuint glGetProgramResourceIndexFn(GLuint program,
3181                                              GLenum programInterface,
3182                                              const GLchar* name) = 0;
3183   virtual void glGetProgramResourceivFn(GLuint program,
3184                                         GLenum programInterface,
3185                                         GLuint index,
3186                                         GLsizei propCount,
3187                                         const GLenum* props,
3188                                         GLsizei bufSize,
3189                                         GLsizei* length,
3190                                         GLint* params) = 0;
3191   virtual GLint glGetProgramResourceLocationFn(GLuint program,
3192                                                GLenum programInterface,
3193                                                const char* name) = 0;
3194   virtual void glGetProgramResourceNameFn(GLuint program,
3195                                           GLenum programInterface,
3196                                           GLuint index,
3197                                           GLsizei bufSize,
3198                                           GLsizei* length,
3199                                           GLchar* name) = 0;
3200   virtual void glGetQueryivFn(GLenum target, GLenum pname, GLint* params) = 0;
3201   virtual void glGetQueryivRobustANGLEFn(GLenum target,
3202                                          GLenum pname,
3203                                          GLsizei bufSize,
3204                                          GLsizei* length,
3205                                          GLint* params) = 0;
3206   virtual void glGetQueryObjecti64vFn(GLuint id,
3207                                       GLenum pname,
3208                                       GLint64* params) = 0;
3209   virtual void glGetQueryObjecti64vRobustANGLEFn(GLuint id,
3210                                                  GLenum pname,
3211                                                  GLsizei bufSize,
3212                                                  GLsizei* length,
3213                                                  GLint64* params) = 0;
3214   virtual void glGetQueryObjectivFn(GLuint id, GLenum pname, GLint* params) = 0;
3215   virtual void glGetQueryObjectivRobustANGLEFn(GLuint id,
3216                                                GLenum pname,
3217                                                GLsizei bufSize,
3218                                                GLsizei* length,
3219                                                GLint* params) = 0;
3220   virtual void glGetQueryObjectui64vFn(GLuint id,
3221                                        GLenum pname,
3222                                        GLuint64* params) = 0;
3223   virtual void glGetQueryObjectui64vRobustANGLEFn(GLuint id,
3224                                                   GLenum pname,
3225                                                   GLsizei bufSize,
3226                                                   GLsizei* length,
3227                                                   GLuint64* params) = 0;
3228   virtual void glGetQueryObjectuivFn(GLuint id,
3229                                      GLenum pname,
3230                                      GLuint* params) = 0;
3231   virtual void glGetQueryObjectuivRobustANGLEFn(GLuint id,
3232                                                 GLenum pname,
3233                                                 GLsizei bufSize,
3234                                                 GLsizei* length,
3235                                                 GLuint* params) = 0;
3236   virtual void glGetRenderbufferParameterivEXTFn(GLenum target,
3237                                                  GLenum pname,
3238                                                  GLint* params) = 0;
3239   virtual void glGetRenderbufferParameterivRobustANGLEFn(GLenum target,
3240                                                          GLenum pname,
3241                                                          GLsizei bufSize,
3242                                                          GLsizei* length,
3243                                                          GLint* params) = 0;
3244   virtual void glGetSamplerParameterfvFn(GLuint sampler,
3245                                          GLenum pname,
3246                                          GLfloat* params) = 0;
3247   virtual void glGetSamplerParameterfvRobustANGLEFn(GLuint sampler,
3248                                                     GLenum pname,
3249                                                     GLsizei bufSize,
3250                                                     GLsizei* length,
3251                                                     GLfloat* params) = 0;
3252   virtual void glGetSamplerParameterIivRobustANGLEFn(GLuint sampler,
3253                                                      GLenum pname,
3254                                                      GLsizei bufSize,
3255                                                      GLsizei* length,
3256                                                      GLint* params) = 0;
3257   virtual void glGetSamplerParameterIuivRobustANGLEFn(GLuint sampler,
3258                                                       GLenum pname,
3259                                                       GLsizei bufSize,
3260                                                       GLsizei* length,
3261                                                       GLuint* params) = 0;
3262   virtual void glGetSamplerParameterivFn(GLuint sampler,
3263                                          GLenum pname,
3264                                          GLint* params) = 0;
3265   virtual void glGetSamplerParameterivRobustANGLEFn(GLuint sampler,
3266                                                     GLenum pname,
3267                                                     GLsizei bufSize,
3268                                                     GLsizei* length,
3269                                                     GLint* params) = 0;
3270   virtual void glGetShaderInfoLogFn(GLuint shader,
3271                                     GLsizei bufsize,
3272                                     GLsizei* length,
3273                                     char* infolog) = 0;
3274   virtual void glGetShaderivFn(GLuint shader, GLenum pname, GLint* params) = 0;
3275   virtual void glGetShaderivRobustANGLEFn(GLuint shader,
3276                                           GLenum pname,
3277                                           GLsizei bufSize,
3278                                           GLsizei* length,
3279                                           GLint* params) = 0;
3280   virtual void glGetShaderPrecisionFormatFn(GLenum shadertype,
3281                                             GLenum precisiontype,
3282                                             GLint* range,
3283                                             GLint* precision) = 0;
3284   virtual void glGetShaderSourceFn(GLuint shader,
3285                                    GLsizei bufsize,
3286                                    GLsizei* length,
3287                                    char* source) = 0;
3288   virtual const GLubyte* glGetStringFn(GLenum name) = 0;
3289   virtual const GLubyte* glGetStringiFn(GLenum name, GLuint index) = 0;
3290   virtual void glGetSyncivFn(GLsync sync,
3291                              GLenum pname,
3292                              GLsizei bufSize,
3293                              GLsizei* length,
3294                              GLint* values) = 0;
3295   virtual void glGetTexLevelParameterfvFn(GLenum target,
3296                                           GLint level,
3297                                           GLenum pname,
3298                                           GLfloat* params) = 0;
3299   virtual void glGetTexLevelParameterfvRobustANGLEFn(GLenum target,
3300                                                      GLint level,
3301                                                      GLenum pname,
3302                                                      GLsizei bufSize,
3303                                                      GLsizei* length,
3304                                                      GLfloat* params) = 0;
3305   virtual void glGetTexLevelParameterivFn(GLenum target,
3306                                           GLint level,
3307                                           GLenum pname,
3308                                           GLint* params) = 0;
3309   virtual void glGetTexLevelParameterivRobustANGLEFn(GLenum target,
3310                                                      GLint level,
3311                                                      GLenum pname,
3312                                                      GLsizei bufSize,
3313                                                      GLsizei* length,
3314                                                      GLint* params) = 0;
3315   virtual void glGetTexParameterfvFn(GLenum target,
3316                                      GLenum pname,
3317                                      GLfloat* params) = 0;
3318   virtual void glGetTexParameterfvRobustANGLEFn(GLenum target,
3319                                                 GLenum pname,
3320                                                 GLsizei bufSize,
3321                                                 GLsizei* length,
3322                                                 GLfloat* params) = 0;
3323   virtual void glGetTexParameterIivRobustANGLEFn(GLenum target,
3324                                                  GLenum pname,
3325                                                  GLsizei bufSize,
3326                                                  GLsizei* length,
3327                                                  GLint* params) = 0;
3328   virtual void glGetTexParameterIuivRobustANGLEFn(GLenum target,
3329                                                   GLenum pname,
3330                                                   GLsizei bufSize,
3331                                                   GLsizei* length,
3332                                                   GLuint* params) = 0;
3333   virtual void glGetTexParameterivFn(GLenum target,
3334                                      GLenum pname,
3335                                      GLint* params) = 0;
3336   virtual void glGetTexParameterivRobustANGLEFn(GLenum target,
3337                                                 GLenum pname,
3338                                                 GLsizei bufSize,
3339                                                 GLsizei* length,
3340                                                 GLint* params) = 0;
3341   virtual void glGetTransformFeedbackVaryingFn(GLuint program,
3342                                                GLuint index,
3343                                                GLsizei bufSize,
3344                                                GLsizei* length,
3345                                                GLsizei* size,
3346                                                GLenum* type,
3347                                                char* name) = 0;
3348   virtual void glGetTranslatedShaderSourceANGLEFn(GLuint shader,
3349                                                   GLsizei bufsize,
3350                                                   GLsizei* length,
3351                                                   char* source) = 0;
3352   virtual GLuint glGetUniformBlockIndexFn(GLuint program,
3353                                           const char* uniformBlockName) = 0;
3354   virtual void glGetUniformfvFn(GLuint program,
3355                                 GLint location,
3356                                 GLfloat* params) = 0;
3357   virtual void glGetUniformfvRobustANGLEFn(GLuint program,
3358                                            GLint location,
3359                                            GLsizei bufSize,
3360                                            GLsizei* length,
3361                                            GLfloat* params) = 0;
3362   virtual void glGetUniformIndicesFn(GLuint program,
3363                                      GLsizei uniformCount,
3364                                      const char* const* uniformNames,
3365                                      GLuint* uniformIndices) = 0;
3366   virtual void glGetUniformivFn(GLuint program,
3367                                 GLint location,
3368                                 GLint* params) = 0;
3369   virtual void glGetUniformivRobustANGLEFn(GLuint program,
3370                                            GLint location,
3371                                            GLsizei bufSize,
3372                                            GLsizei* length,
3373                                            GLint* params) = 0;
3374   virtual GLint glGetUniformLocationFn(GLuint program, const char* name) = 0;
3375   virtual void glGetUniformuivFn(GLuint program,
3376                                  GLint location,
3377                                  GLuint* params) = 0;
3378   virtual void glGetUniformuivRobustANGLEFn(GLuint program,
3379                                             GLint location,
3380                                             GLsizei bufSize,
3381                                             GLsizei* length,
3382                                             GLuint* params) = 0;
3383   virtual void glGetVertexAttribfvFn(GLuint index,
3384                                      GLenum pname,
3385                                      GLfloat* params) = 0;
3386   virtual void glGetVertexAttribfvRobustANGLEFn(GLuint index,
3387                                                 GLenum pname,
3388                                                 GLsizei bufSize,
3389                                                 GLsizei* length,
3390                                                 GLfloat* params) = 0;
3391   virtual void glGetVertexAttribIivRobustANGLEFn(GLuint index,
3392                                                  GLenum pname,
3393                                                  GLsizei bufSize,
3394                                                  GLsizei* length,
3395                                                  GLint* params) = 0;
3396   virtual void glGetVertexAttribIuivRobustANGLEFn(GLuint index,
3397                                                   GLenum pname,
3398                                                   GLsizei bufSize,
3399                                                   GLsizei* length,
3400                                                   GLuint* params) = 0;
3401   virtual void glGetVertexAttribivFn(GLuint index,
3402                                      GLenum pname,
3403                                      GLint* params) = 0;
3404   virtual void glGetVertexAttribivRobustANGLEFn(GLuint index,
3405                                                 GLenum pname,
3406                                                 GLsizei bufSize,
3407                                                 GLsizei* length,
3408                                                 GLint* params) = 0;
3409   virtual void glGetVertexAttribPointervFn(GLuint index,
3410                                            GLenum pname,
3411                                            void** pointer) = 0;
3412   virtual void glGetVertexAttribPointervRobustANGLEFn(GLuint index,
3413                                                       GLenum pname,
3414                                                       GLsizei bufSize,
3415                                                       GLsizei* length,
3416                                                       void** pointer) = 0;
3417   virtual void glHintFn(GLenum target, GLenum mode) = 0;
3418   virtual void glImportMemoryFdEXTFn(GLuint memory,
3419                                      GLuint64 size,
3420                                      GLenum handleType,
3421                                      GLint fd) = 0;
3422   virtual void glImportMemoryZirconHandleANGLEFn(GLuint memory,
3423                                                  GLuint64 size,
3424                                                  GLenum handleType,
3425                                                  GLuint handle) = 0;
3426   virtual void glImportSemaphoreFdEXTFn(GLuint semaphore,
3427                                         GLenum handleType,
3428                                         GLint fd) = 0;
3429   virtual void glImportSemaphoreZirconHandleANGLEFn(GLuint semaphore,
3430                                                     GLenum handleType,
3431                                                     GLuint handle) = 0;
3432   virtual void glInsertEventMarkerEXTFn(GLsizei length, const char* marker) = 0;
3433   virtual void glInvalidateFramebufferFn(GLenum target,
3434                                          GLsizei numAttachments,
3435                                          const GLenum* attachments) = 0;
3436   virtual void glInvalidateSubFramebufferFn(GLenum target,
3437                                             GLsizei numAttachments,
3438                                             const GLenum* attachments,
3439                                             GLint x,
3440                                             GLint y,
3441                                             GLint width,
3442                                             GLint height) = 0;
3443   virtual void glInvalidateTextureANGLEFn(GLenum target) = 0;
3444   virtual GLboolean glIsBufferFn(GLuint buffer) = 0;
3445   virtual GLboolean glIsEnabledFn(GLenum cap) = 0;
3446   virtual GLboolean glIsFenceAPPLEFn(GLuint fence) = 0;
3447   virtual GLboolean glIsFenceNVFn(GLuint fence) = 0;
3448   virtual GLboolean glIsFramebufferEXTFn(GLuint framebuffer) = 0;
3449   virtual GLboolean glIsPathNVFn(GLuint path) = 0;
3450   virtual GLboolean glIsProgramFn(GLuint program) = 0;
3451   virtual GLboolean glIsProgramPipelineFn(GLuint pipeline) = 0;
3452   virtual GLboolean glIsQueryFn(GLuint query) = 0;
3453   virtual GLboolean glIsRenderbufferEXTFn(GLuint renderbuffer) = 0;
3454   virtual GLboolean glIsSamplerFn(GLuint sampler) = 0;
3455   virtual GLboolean glIsShaderFn(GLuint shader) = 0;
3456   virtual GLboolean glIsSyncFn(GLsync sync) = 0;
3457   virtual GLboolean glIsSyncAPPLEFn(GLsync sync) = 0;
3458   virtual GLboolean glIsTextureFn(GLuint texture) = 0;
3459   virtual GLboolean glIsTransformFeedbackFn(GLuint id) = 0;
3460   virtual GLboolean glIsVertexArrayOESFn(GLuint array) = 0;
3461   virtual void glLineWidthFn(GLfloat width) = 0;
3462   virtual void glLinkProgramFn(GLuint program) = 0;
3463   virtual void* glMapBufferFn(GLenum target, GLenum access) = 0;
3464   virtual void* glMapBufferRangeFn(GLenum target,
3465                                    GLintptr offset,
3466                                    GLsizeiptr length,
3467                                    GLbitfield access) = 0;
3468   virtual void glMatrixLoadfEXTFn(GLenum matrixMode, const GLfloat* m) = 0;
3469   virtual void glMatrixLoadIdentityEXTFn(GLenum matrixMode) = 0;
3470   virtual void glMaxShaderCompilerThreadsKHRFn(GLuint count) = 0;
3471   virtual void glMemoryBarrierByRegionFn(GLbitfield barriers) = 0;
3472   virtual void glMemoryBarrierEXTFn(GLbitfield barriers) = 0;
3473   virtual void glMemoryObjectParameterivEXTFn(GLuint memoryObject,
3474                                               GLenum pname,
3475                                               const GLint* param) = 0;
3476   virtual void glMinSampleShadingFn(GLfloat value) = 0;
3477   virtual void glMultiDrawArraysANGLEFn(GLenum mode,
3478                                         const GLint* firsts,
3479                                         const GLsizei* counts,
3480                                         GLsizei drawcount) = 0;
3481   virtual void glMultiDrawArraysInstancedANGLEFn(GLenum mode,
3482                                                  const GLint* firsts,
3483                                                  const GLsizei* counts,
3484                                                  const GLsizei* instanceCounts,
3485                                                  GLsizei drawcount) = 0;
3486   virtual void glMultiDrawArraysInstancedBaseInstanceANGLEFn(
3487       GLenum mode,
3488       const GLint* firsts,
3489       const GLsizei* counts,
3490       const GLsizei* instanceCounts,
3491       const GLuint* baseInstances,
3492       GLsizei drawcount) = 0;
3493   virtual void glMultiDrawElementsANGLEFn(GLenum mode,
3494                                           const GLsizei* counts,
3495                                           GLenum type,
3496                                           const GLvoid* const* indices,
3497                                           GLsizei drawcount) = 0;
3498   virtual void glMultiDrawElementsInstancedANGLEFn(
3499       GLenum mode,
3500       const GLsizei* counts,
3501       GLenum type,
3502       const GLvoid* const* indices,
3503       const GLsizei* instanceCounts,
3504       GLsizei drawcount) = 0;
3505   virtual void glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEFn(
3506       GLenum mode,
3507       const GLsizei* counts,
3508       GLenum type,
3509       const GLvoid* const* indices,
3510       const GLsizei* instanceCounts,
3511       const GLint* baseVertices,
3512       const GLuint* baseInstances,
3513       GLsizei drawcount) = 0;
3514   virtual void glObjectLabelFn(GLenum identifier,
3515                                GLuint name,
3516                                GLsizei length,
3517                                const char* label) = 0;
3518   virtual void glObjectPtrLabelFn(void* ptr,
3519                                   GLsizei length,
3520                                   const char* label) = 0;
3521   virtual void glPathCommandsNVFn(GLuint path,
3522                                   GLsizei numCommands,
3523                                   const GLubyte* commands,
3524                                   GLsizei numCoords,
3525                                   GLenum coordType,
3526                                   const GLvoid* coords) = 0;
3527   virtual void glPathParameterfNVFn(GLuint path,
3528                                     GLenum pname,
3529                                     GLfloat value) = 0;
3530   virtual void glPathParameteriNVFn(GLuint path, GLenum pname, GLint value) = 0;
3531   virtual void glPathStencilFuncNVFn(GLenum func, GLint ref, GLuint mask) = 0;
3532   virtual void glPauseTransformFeedbackFn(void) = 0;
3533   virtual void glPixelStoreiFn(GLenum pname, GLint param) = 0;
3534   virtual void glPointParameteriFn(GLenum pname, GLint param) = 0;
3535   virtual void glPolygonModeFn(GLenum face, GLenum mode) = 0;
3536   virtual void glPolygonOffsetFn(GLfloat factor, GLfloat units) = 0;
3537   virtual void glPopDebugGroupFn() = 0;
3538   virtual void glPopGroupMarkerEXTFn(void) = 0;
3539   virtual void glPrimitiveRestartIndexFn(GLuint index) = 0;
3540   virtual void glProgramBinaryFn(GLuint program,
3541                                  GLenum binaryFormat,
3542                                  const GLvoid* binary,
3543                                  GLsizei length) = 0;
3544   virtual void glProgramParameteriFn(GLuint program,
3545                                      GLenum pname,
3546                                      GLint value) = 0;
3547   virtual void glProgramPathFragmentInputGenNVFn(GLuint program,
3548                                                  GLint location,
3549                                                  GLenum genMode,
3550                                                  GLint components,
3551                                                  const GLfloat* coeffs) = 0;
3552   virtual void glProgramUniform1fFn(GLuint program,
3553                                     GLint location,
3554                                     GLfloat v0) = 0;
3555   virtual void glProgramUniform1fvFn(GLuint program,
3556                                      GLint location,
3557                                      GLsizei count,
3558                                      const GLfloat* value) = 0;
3559   virtual void glProgramUniform1iFn(GLuint program,
3560                                     GLint location,
3561                                     GLint v0) = 0;
3562   virtual void glProgramUniform1ivFn(GLuint program,
3563                                      GLint location,
3564                                      GLsizei count,
3565                                      const GLint* value) = 0;
3566   virtual void glProgramUniform1uiFn(GLuint program,
3567                                      GLint location,
3568                                      GLuint v0) = 0;
3569   virtual void glProgramUniform1uivFn(GLuint program,
3570                                       GLint location,
3571                                       GLsizei count,
3572                                       const GLuint* value) = 0;
3573   virtual void glProgramUniform2fFn(GLuint program,
3574                                     GLint location,
3575                                     GLfloat v0,
3576                                     GLfloat v1) = 0;
3577   virtual void glProgramUniform2fvFn(GLuint program,
3578                                      GLint location,
3579                                      GLsizei count,
3580                                      const GLfloat* value) = 0;
3581   virtual void glProgramUniform2iFn(GLuint program,
3582                                     GLint location,
3583                                     GLint v0,
3584                                     GLint v1) = 0;
3585   virtual void glProgramUniform2ivFn(GLuint program,
3586                                      GLint location,
3587                                      GLsizei count,
3588                                      const GLint* value) = 0;
3589   virtual void glProgramUniform2uiFn(GLuint program,
3590                                      GLint location,
3591                                      GLuint v0,
3592                                      GLuint v1) = 0;
3593   virtual void glProgramUniform2uivFn(GLuint program,
3594                                       GLint location,
3595                                       GLsizei count,
3596                                       const GLuint* value) = 0;
3597   virtual void glProgramUniform3fFn(GLuint program,
3598                                     GLint location,
3599                                     GLfloat v0,
3600                                     GLfloat v1,
3601                                     GLfloat v2) = 0;
3602   virtual void glProgramUniform3fvFn(GLuint program,
3603                                      GLint location,
3604                                      GLsizei count,
3605                                      const GLfloat* value) = 0;
3606   virtual void glProgramUniform3iFn(GLuint program,
3607                                     GLint location,
3608                                     GLint v0,
3609                                     GLint v1,
3610                                     GLint v2) = 0;
3611   virtual void glProgramUniform3ivFn(GLuint program,
3612                                      GLint location,
3613                                      GLsizei count,
3614                                      const GLint* value) = 0;
3615   virtual void glProgramUniform3uiFn(GLuint program,
3616                                      GLint location,
3617                                      GLuint v0,
3618                                      GLuint v1,
3619                                      GLuint v2) = 0;
3620   virtual void glProgramUniform3uivFn(GLuint program,
3621                                       GLint location,
3622                                       GLsizei count,
3623                                       const GLuint* value) = 0;
3624   virtual void glProgramUniform4fFn(GLuint program,
3625                                     GLint location,
3626                                     GLfloat v0,
3627                                     GLfloat v1,
3628                                     GLfloat v2,
3629                                     GLfloat v3) = 0;
3630   virtual void glProgramUniform4fvFn(GLuint program,
3631                                      GLint location,
3632                                      GLsizei count,
3633                                      const GLfloat* value) = 0;
3634   virtual void glProgramUniform4iFn(GLuint program,
3635                                     GLint location,
3636                                     GLint v0,
3637                                     GLint v1,
3638                                     GLint v2,
3639                                     GLint v3) = 0;
3640   virtual void glProgramUniform4ivFn(GLuint program,
3641                                      GLint location,
3642                                      GLsizei count,
3643                                      const GLint* value) = 0;
3644   virtual void glProgramUniform4uiFn(GLuint program,
3645                                      GLint location,
3646                                      GLuint v0,
3647                                      GLuint v1,
3648                                      GLuint v2,
3649                                      GLuint v3) = 0;
3650   virtual void glProgramUniform4uivFn(GLuint program,
3651                                       GLint location,
3652                                       GLsizei count,
3653                                       const GLuint* value) = 0;
3654   virtual void glProgramUniformMatrix2fvFn(GLuint program,
3655                                            GLint location,
3656                                            GLsizei count,
3657                                            GLboolean transpose,
3658                                            const GLfloat* value) = 0;
3659   virtual void glProgramUniformMatrix2x3fvFn(GLuint program,
3660                                              GLint location,
3661                                              GLsizei count,
3662                                              GLboolean transpose,
3663                                              const GLfloat* value) = 0;
3664   virtual void glProgramUniformMatrix2x4fvFn(GLuint program,
3665                                              GLint location,
3666                                              GLsizei count,
3667                                              GLboolean transpose,
3668                                              const GLfloat* value) = 0;
3669   virtual void glProgramUniformMatrix3fvFn(GLuint program,
3670                                            GLint location,
3671                                            GLsizei count,
3672                                            GLboolean transpose,
3673                                            const GLfloat* value) = 0;
3674   virtual void glProgramUniformMatrix3x2fvFn(GLuint program,
3675                                              GLint location,
3676                                              GLsizei count,
3677                                              GLboolean transpose,
3678                                              const GLfloat* value) = 0;
3679   virtual void glProgramUniformMatrix3x4fvFn(GLuint program,
3680                                              GLint location,
3681                                              GLsizei count,
3682                                              GLboolean transpose,
3683                                              const GLfloat* value) = 0;
3684   virtual void glProgramUniformMatrix4fvFn(GLuint program,
3685                                            GLint location,
3686                                            GLsizei count,
3687                                            GLboolean transpose,
3688                                            const GLfloat* value) = 0;
3689   virtual void glProgramUniformMatrix4x2fvFn(GLuint program,
3690                                              GLint location,
3691                                              GLsizei count,
3692                                              GLboolean transpose,
3693                                              const GLfloat* value) = 0;
3694   virtual void glProgramUniformMatrix4x3fvFn(GLuint program,
3695                                              GLint location,
3696                                              GLsizei count,
3697                                              GLboolean transpose,
3698                                              const GLfloat* value) = 0;
3699   virtual void glPushDebugGroupFn(GLenum source,
3700                                   GLuint id,
3701                                   GLsizei length,
3702                                   const char* message) = 0;
3703   virtual void glPushGroupMarkerEXTFn(GLsizei length, const char* marker) = 0;
3704   virtual void glQueryCounterFn(GLuint id, GLenum target) = 0;
3705   virtual void glReadBufferFn(GLenum src) = 0;
3706   virtual void glReadnPixelsRobustANGLEFn(GLint x,
3707                                           GLint y,
3708                                           GLsizei width,
3709                                           GLsizei height,
3710                                           GLenum format,
3711                                           GLenum type,
3712                                           GLsizei bufSize,
3713                                           GLsizei* length,
3714                                           GLsizei* columns,
3715                                           GLsizei* rows,
3716                                           void* data) = 0;
3717   virtual void glReadPixelsFn(GLint x,
3718                               GLint y,
3719                               GLsizei width,
3720                               GLsizei height,
3721                               GLenum format,
3722                               GLenum type,
3723                               void* pixels) = 0;
3724   virtual void glReadPixelsRobustANGLEFn(GLint x,
3725                                          GLint y,
3726                                          GLsizei width,
3727                                          GLsizei height,
3728                                          GLenum format,
3729                                          GLenum type,
3730                                          GLsizei bufSize,
3731                                          GLsizei* length,
3732                                          GLsizei* columns,
3733                                          GLsizei* rows,
3734                                          void* pixels) = 0;
3735   virtual void glReleaseShaderCompilerFn(void) = 0;
3736   virtual void glRenderbufferStorageEXTFn(GLenum target,
3737                                           GLenum internalformat,
3738                                           GLsizei width,
3739                                           GLsizei height) = 0;
3740   virtual void glRenderbufferStorageMultisampleFn(GLenum target,
3741                                                   GLsizei samples,
3742                                                   GLenum internalformat,
3743                                                   GLsizei width,
3744                                                   GLsizei height) = 0;
3745   virtual void glRenderbufferStorageMultisampleAdvancedAMDFn(
3746       GLenum target,
3747       GLsizei samples,
3748       GLsizei storageSamples,
3749       GLenum internalformat,
3750       GLsizei width,
3751       GLsizei height) = 0;
3752   virtual void glRenderbufferStorageMultisampleEXTFn(GLenum target,
3753                                                      GLsizei samples,
3754                                                      GLenum internalformat,
3755                                                      GLsizei width,
3756                                                      GLsizei height) = 0;
3757   virtual void glRequestExtensionANGLEFn(const char* name) = 0;
3758   virtual void glResumeTransformFeedbackFn(void) = 0;
3759   virtual void glSampleCoverageFn(GLclampf value, GLboolean invert) = 0;
3760   virtual void glSampleMaskiFn(GLuint maskNumber, GLbitfield mask) = 0;
3761   virtual void glSamplerParameterfFn(GLuint sampler,
3762                                      GLenum pname,
3763                                      GLfloat param) = 0;
3764   virtual void glSamplerParameterfvFn(GLuint sampler,
3765                                       GLenum pname,
3766                                       const GLfloat* params) = 0;
3767   virtual void glSamplerParameterfvRobustANGLEFn(GLuint sampler,
3768                                                  GLenum pname,
3769                                                  GLsizei bufSize,
3770                                                  const GLfloat* param) = 0;
3771   virtual void glSamplerParameteriFn(GLuint sampler,
3772                                      GLenum pname,
3773                                      GLint param) = 0;
3774   virtual void glSamplerParameterIivRobustANGLEFn(GLuint sampler,
3775                                                   GLenum pname,
3776                                                   GLsizei bufSize,
3777                                                   const GLint* param) = 0;
3778   virtual void glSamplerParameterIuivRobustANGLEFn(GLuint sampler,
3779                                                    GLenum pname,
3780                                                    GLsizei bufSize,
3781                                                    const GLuint* param) = 0;
3782   virtual void glSamplerParameterivFn(GLuint sampler,
3783                                       GLenum pname,
3784                                       const GLint* params) = 0;
3785   virtual void glSamplerParameterivRobustANGLEFn(GLuint sampler,
3786                                                  GLenum pname,
3787                                                  GLsizei bufSize,
3788                                                  const GLint* param) = 0;
3789   virtual void glScissorFn(GLint x, GLint y, GLsizei width, GLsizei height) = 0;
3790   virtual void glSetFenceAPPLEFn(GLuint fence) = 0;
3791   virtual void glSetFenceNVFn(GLuint fence, GLenum condition) = 0;
3792   virtual void glShaderBinaryFn(GLsizei n,
3793                                 const GLuint* shaders,
3794                                 GLenum binaryformat,
3795                                 const void* binary,
3796                                 GLsizei length) = 0;
3797   virtual void glShaderSourceFn(GLuint shader,
3798                                 GLsizei count,
3799                                 const char* const* str,
3800                                 const GLint* length) = 0;
3801   virtual void glSignalSemaphoreEXTFn(GLuint semaphore,
3802                                       GLuint numBufferBarriers,
3803                                       const GLuint* buffers,
3804                                       GLuint numTextureBarriers,
3805                                       const GLuint* textures,
3806                                       const GLenum* dstLayouts) = 0;
3807   virtual void glStartTilingQCOMFn(GLuint x,
3808                                    GLuint y,
3809                                    GLuint width,
3810                                    GLuint height,
3811                                    GLbitfield preserveMask) = 0;
3812   virtual void glStencilFillPathInstancedNVFn(
3813       GLsizei numPaths,
3814       GLenum pathNameType,
3815       const void* paths,
3816       GLuint pathBase,
3817       GLenum fillMode,
3818       GLuint mask,
3819       GLenum transformType,
3820       const GLfloat* transformValues) = 0;
3821   virtual void glStencilFillPathNVFn(GLuint path,
3822                                      GLenum fillMode,
3823                                      GLuint mask) = 0;
3824   virtual void glStencilFuncFn(GLenum func, GLint ref, GLuint mask) = 0;
3825   virtual void glStencilFuncSeparateFn(GLenum face,
3826                                        GLenum func,
3827                                        GLint ref,
3828                                        GLuint mask) = 0;
3829   virtual void glStencilMaskFn(GLuint mask) = 0;
3830   virtual void glStencilMaskSeparateFn(GLenum face, GLuint mask) = 0;
3831   virtual void glStencilOpFn(GLenum fail, GLenum zfail, GLenum zpass) = 0;
3832   virtual void glStencilOpSeparateFn(GLenum face,
3833                                      GLenum fail,
3834                                      GLenum zfail,
3835                                      GLenum zpass) = 0;
3836   virtual void glStencilStrokePathInstancedNVFn(
3837       GLsizei numPaths,
3838       GLenum pathNameType,
3839       const void* paths,
3840       GLuint pathBase,
3841       GLint ref,
3842       GLuint mask,
3843       GLenum transformType,
3844       const GLfloat* transformValues) = 0;
3845   virtual void glStencilStrokePathNVFn(GLuint path,
3846                                        GLint reference,
3847                                        GLuint mask) = 0;
3848   virtual void glStencilThenCoverFillPathInstancedNVFn(
3849       GLsizei numPaths,
3850       GLenum pathNameType,
3851       const void* paths,
3852       GLuint pathBase,
3853       GLenum fillMode,
3854       GLuint mask,
3855       GLenum coverMode,
3856       GLenum transformType,
3857       const GLfloat* transformValues) = 0;
3858   virtual void glStencilThenCoverFillPathNVFn(GLuint path,
3859                                               GLenum fillMode,
3860                                               GLuint mask,
3861                                               GLenum coverMode) = 0;
3862   virtual void glStencilThenCoverStrokePathInstancedNVFn(
3863       GLsizei numPaths,
3864       GLenum pathNameType,
3865       const void* paths,
3866       GLuint pathBase,
3867       GLint ref,
3868       GLuint mask,
3869       GLenum coverMode,
3870       GLenum transformType,
3871       const GLfloat* transformValues) = 0;
3872   virtual void glStencilThenCoverStrokePathNVFn(GLuint path,
3873                                                 GLint reference,
3874                                                 GLuint mask,
3875                                                 GLenum coverMode) = 0;
3876   virtual GLboolean glTestFenceAPPLEFn(GLuint fence) = 0;
3877   virtual GLboolean glTestFenceNVFn(GLuint fence) = 0;
3878   virtual void glTexBufferFn(GLenum target,
3879                              GLenum internalformat,
3880                              GLuint buffer) = 0;
3881   virtual void glTexBufferRangeFn(GLenum target,
3882                                   GLenum internalformat,
3883                                   GLuint buffer,
3884                                   GLintptr offset,
3885                                   GLsizeiptr size) = 0;
3886   virtual void glTexImage2DFn(GLenum target,
3887                               GLint level,
3888                               GLint internalformat,
3889                               GLsizei width,
3890                               GLsizei height,
3891                               GLint border,
3892                               GLenum format,
3893                               GLenum type,
3894                               const void* pixels) = 0;
3895   virtual void glTexImage2DExternalANGLEFn(GLenum target,
3896                                            GLint level,
3897                                            GLint internalformat,
3898                                            GLsizei width,
3899                                            GLsizei height,
3900                                            GLint border,
3901                                            GLenum format,
3902                                            GLenum type) = 0;
3903   virtual void glTexImage2DRobustANGLEFn(GLenum target,
3904                                          GLint level,
3905                                          GLint internalformat,
3906                                          GLsizei width,
3907                                          GLsizei height,
3908                                          GLint border,
3909                                          GLenum format,
3910                                          GLenum type,
3911                                          GLsizei bufSize,
3912                                          const void* pixels) = 0;
3913   virtual void glTexImage3DFn(GLenum target,
3914                               GLint level,
3915                               GLint internalformat,
3916                               GLsizei width,
3917                               GLsizei height,
3918                               GLsizei depth,
3919                               GLint border,
3920                               GLenum format,
3921                               GLenum type,
3922                               const void* pixels) = 0;
3923   virtual void glTexImage3DRobustANGLEFn(GLenum target,
3924                                          GLint level,
3925                                          GLint internalformat,
3926                                          GLsizei width,
3927                                          GLsizei height,
3928                                          GLsizei depth,
3929                                          GLint border,
3930                                          GLenum format,
3931                                          GLenum type,
3932                                          GLsizei bufSize,
3933                                          const void* pixels) = 0;
3934   virtual void glTexParameterfFn(GLenum target,
3935                                  GLenum pname,
3936                                  GLfloat param) = 0;
3937   virtual void glTexParameterfvFn(GLenum target,
3938                                   GLenum pname,
3939                                   const GLfloat* params) = 0;
3940   virtual void glTexParameterfvRobustANGLEFn(GLenum target,
3941                                              GLenum pname,
3942                                              GLsizei bufSize,
3943                                              const GLfloat* params) = 0;
3944   virtual void glTexParameteriFn(GLenum target, GLenum pname, GLint param) = 0;
3945   virtual void glTexParameterIivRobustANGLEFn(GLenum target,
3946                                               GLenum pname,
3947                                               GLsizei bufSize,
3948                                               const GLint* params) = 0;
3949   virtual void glTexParameterIuivRobustANGLEFn(GLenum target,
3950                                                GLenum pname,
3951                                                GLsizei bufSize,
3952                                                const GLuint* params) = 0;
3953   virtual void glTexParameterivFn(GLenum target,
3954                                   GLenum pname,
3955                                   const GLint* params) = 0;
3956   virtual void glTexParameterivRobustANGLEFn(GLenum target,
3957                                              GLenum pname,
3958                                              GLsizei bufSize,
3959                                              const GLint* params) = 0;
3960   virtual void glTexStorage2DEXTFn(GLenum target,
3961                                    GLsizei levels,
3962                                    GLenum internalformat,
3963                                    GLsizei width,
3964                                    GLsizei height) = 0;
3965   virtual void glTexStorage2DMultisampleFn(GLenum target,
3966                                            GLsizei samples,
3967                                            GLenum internalformat,
3968                                            GLsizei width,
3969                                            GLsizei height,
3970                                            GLboolean fixedsamplelocations) = 0;
3971   virtual void glTexStorage3DFn(GLenum target,
3972                                 GLsizei levels,
3973                                 GLenum internalformat,
3974                                 GLsizei width,
3975                                 GLsizei height,
3976                                 GLsizei depth) = 0;
3977   virtual void glTexStorageMem2DEXTFn(GLenum target,
3978                                       GLsizei levels,
3979                                       GLenum internalFormat,
3980                                       GLsizei width,
3981                                       GLsizei height,
3982                                       GLuint memory,
3983                                       GLuint64 offset) = 0;
3984   virtual void glTexSubImage2DFn(GLenum target,
3985                                  GLint level,
3986                                  GLint xoffset,
3987                                  GLint yoffset,
3988                                  GLsizei width,
3989                                  GLsizei height,
3990                                  GLenum format,
3991                                  GLenum type,
3992                                  const void* pixels) = 0;
3993   virtual void glTexSubImage2DRobustANGLEFn(GLenum target,
3994                                             GLint level,
3995                                             GLint xoffset,
3996                                             GLint yoffset,
3997                                             GLsizei width,
3998                                             GLsizei height,
3999                                             GLenum format,
4000                                             GLenum type,
4001                                             GLsizei bufSize,
4002                                             const void* pixels) = 0;
4003   virtual void glTexSubImage3DFn(GLenum target,
4004                                  GLint level,
4005                                  GLint xoffset,
4006                                  GLint yoffset,
4007                                  GLint zoffset,
4008                                  GLsizei width,
4009                                  GLsizei height,
4010                                  GLsizei depth,
4011                                  GLenum format,
4012                                  GLenum type,
4013                                  const void* pixels) = 0;
4014   virtual void glTexSubImage3DRobustANGLEFn(GLenum target,
4015                                             GLint level,
4016                                             GLint xoffset,
4017                                             GLint yoffset,
4018                                             GLint zoffset,
4019                                             GLsizei width,
4020                                             GLsizei height,
4021                                             GLsizei depth,
4022                                             GLenum format,
4023                                             GLenum type,
4024                                             GLsizei bufSize,
4025                                             const void* pixels) = 0;
4026   virtual void glTransformFeedbackVaryingsFn(GLuint program,
4027                                              GLsizei count,
4028                                              const char* const* varyings,
4029                                              GLenum bufferMode) = 0;
4030   virtual void glUniform1fFn(GLint location, GLfloat x) = 0;
4031   virtual void glUniform1fvFn(GLint location,
4032                               GLsizei count,
4033                               const GLfloat* v) = 0;
4034   virtual void glUniform1iFn(GLint location, GLint x) = 0;
4035   virtual void glUniform1ivFn(GLint location,
4036                               GLsizei count,
4037                               const GLint* v) = 0;
4038   virtual void glUniform1uiFn(GLint location, GLuint v0) = 0;
4039   virtual void glUniform1uivFn(GLint location,
4040                                GLsizei count,
4041                                const GLuint* v) = 0;
4042   virtual void glUniform2fFn(GLint location, GLfloat x, GLfloat y) = 0;
4043   virtual void glUniform2fvFn(GLint location,
4044                               GLsizei count,
4045                               const GLfloat* v) = 0;
4046   virtual void glUniform2iFn(GLint location, GLint x, GLint y) = 0;
4047   virtual void glUniform2ivFn(GLint location,
4048                               GLsizei count,
4049                               const GLint* v) = 0;
4050   virtual void glUniform2uiFn(GLint location, GLuint v0, GLuint v1) = 0;
4051   virtual void glUniform2uivFn(GLint location,
4052                                GLsizei count,
4053                                const GLuint* v) = 0;
4054   virtual void glUniform3fFn(GLint location,
4055                              GLfloat x,
4056                              GLfloat y,
4057                              GLfloat z) = 0;
4058   virtual void glUniform3fvFn(GLint location,
4059                               GLsizei count,
4060                               const GLfloat* v) = 0;
4061   virtual void glUniform3iFn(GLint location, GLint x, GLint y, GLint z) = 0;
4062   virtual void glUniform3ivFn(GLint location,
4063                               GLsizei count,
4064                               const GLint* v) = 0;
4065   virtual void glUniform3uiFn(GLint location,
4066                               GLuint v0,
4067                               GLuint v1,
4068                               GLuint v2) = 0;
4069   virtual void glUniform3uivFn(GLint location,
4070                                GLsizei count,
4071                                const GLuint* v) = 0;
4072   virtual void glUniform4fFn(GLint location,
4073                              GLfloat x,
4074                              GLfloat y,
4075                              GLfloat z,
4076                              GLfloat w) = 0;
4077   virtual void glUniform4fvFn(GLint location,
4078                               GLsizei count,
4079                               const GLfloat* v) = 0;
4080   virtual void glUniform4iFn(GLint location,
4081                              GLint x,
4082                              GLint y,
4083                              GLint z,
4084                              GLint w) = 0;
4085   virtual void glUniform4ivFn(GLint location,
4086                               GLsizei count,
4087                               const GLint* v) = 0;
4088   virtual void glUniform4uiFn(GLint location,
4089                               GLuint v0,
4090                               GLuint v1,
4091                               GLuint v2,
4092                               GLuint v3) = 0;
4093   virtual void glUniform4uivFn(GLint location,
4094                                GLsizei count,
4095                                const GLuint* v) = 0;
4096   virtual void glUniformBlockBindingFn(GLuint program,
4097                                        GLuint uniformBlockIndex,
4098                                        GLuint uniformBlockBinding) = 0;
4099   virtual void glUniformMatrix2fvFn(GLint location,
4100                                     GLsizei count,
4101                                     GLboolean transpose,
4102                                     const GLfloat* value) = 0;
4103   virtual void glUniformMatrix2x3fvFn(GLint location,
4104                                       GLsizei count,
4105                                       GLboolean transpose,
4106                                       const GLfloat* value) = 0;
4107   virtual void glUniformMatrix2x4fvFn(GLint location,
4108                                       GLsizei count,
4109                                       GLboolean transpose,
4110                                       const GLfloat* value) = 0;
4111   virtual void glUniformMatrix3fvFn(GLint location,
4112                                     GLsizei count,
4113                                     GLboolean transpose,
4114                                     const GLfloat* value) = 0;
4115   virtual void glUniformMatrix3x2fvFn(GLint location,
4116                                       GLsizei count,
4117                                       GLboolean transpose,
4118                                       const GLfloat* value) = 0;
4119   virtual void glUniformMatrix3x4fvFn(GLint location,
4120                                       GLsizei count,
4121                                       GLboolean transpose,
4122                                       const GLfloat* value) = 0;
4123   virtual void glUniformMatrix4fvFn(GLint location,
4124                                     GLsizei count,
4125                                     GLboolean transpose,
4126                                     const GLfloat* value) = 0;
4127   virtual void glUniformMatrix4x2fvFn(GLint location,
4128                                       GLsizei count,
4129                                       GLboolean transpose,
4130                                       const GLfloat* value) = 0;
4131   virtual void glUniformMatrix4x3fvFn(GLint location,
4132                                       GLsizei count,
4133                                       GLboolean transpose,
4134                                       const GLfloat* value) = 0;
4135   virtual GLboolean glUnmapBufferFn(GLenum target) = 0;
4136   virtual void glUseProgramFn(GLuint program) = 0;
4137   virtual void glUseProgramStagesFn(GLuint pipeline,
4138                                     GLbitfield stages,
4139                                     GLuint program) = 0;
4140   virtual void glValidateProgramFn(GLuint program) = 0;
4141   virtual void glValidateProgramPipelineFn(GLuint pipeline) = 0;
4142   virtual void glVertexAttrib1fFn(GLuint indx, GLfloat x) = 0;
4143   virtual void glVertexAttrib1fvFn(GLuint indx, const GLfloat* values) = 0;
4144   virtual void glVertexAttrib2fFn(GLuint indx, GLfloat x, GLfloat y) = 0;
4145   virtual void glVertexAttrib2fvFn(GLuint indx, const GLfloat* values) = 0;
4146   virtual void glVertexAttrib3fFn(GLuint indx,
4147                                   GLfloat x,
4148                                   GLfloat y,
4149                                   GLfloat z) = 0;
4150   virtual void glVertexAttrib3fvFn(GLuint indx, const GLfloat* values) = 0;
4151   virtual void glVertexAttrib4fFn(GLuint indx,
4152                                   GLfloat x,
4153                                   GLfloat y,
4154                                   GLfloat z,
4155                                   GLfloat w) = 0;
4156   virtual void glVertexAttrib4fvFn(GLuint indx, const GLfloat* values) = 0;
4157   virtual void glVertexAttribBindingFn(GLuint attribindex,
4158                                        GLuint bindingindex) = 0;
4159   virtual void glVertexAttribDivisorANGLEFn(GLuint index, GLuint divisor) = 0;
4160   virtual void glVertexAttribFormatFn(GLuint attribindex,
4161                                       GLint size,
4162                                       GLenum type,
4163                                       GLboolean normalized,
4164                                       GLuint relativeoffset) = 0;
4165   virtual void glVertexAttribI4iFn(GLuint indx,
4166                                    GLint x,
4167                                    GLint y,
4168                                    GLint z,
4169                                    GLint w) = 0;
4170   virtual void glVertexAttribI4ivFn(GLuint indx, const GLint* values) = 0;
4171   virtual void glVertexAttribI4uiFn(GLuint indx,
4172                                     GLuint x,
4173                                     GLuint y,
4174                                     GLuint z,
4175                                     GLuint w) = 0;
4176   virtual void glVertexAttribI4uivFn(GLuint indx, const GLuint* values) = 0;
4177   virtual void glVertexAttribIFormatFn(GLuint attribindex,
4178                                        GLint size,
4179                                        GLenum type,
4180                                        GLuint relativeoffset) = 0;
4181   virtual void glVertexAttribIPointerFn(GLuint indx,
4182                                         GLint size,
4183                                         GLenum type,
4184                                         GLsizei stride,
4185                                         const void* ptr) = 0;
4186   virtual void glVertexAttribPointerFn(GLuint indx,
4187                                        GLint size,
4188                                        GLenum type,
4189                                        GLboolean normalized,
4190                                        GLsizei stride,
4191                                        const void* ptr) = 0;
4192   virtual void glVertexBindingDivisorFn(GLuint bindingindex,
4193                                         GLuint divisor) = 0;
4194   virtual void glViewportFn(GLint x,
4195                             GLint y,
4196                             GLsizei width,
4197                             GLsizei height) = 0;
4198   virtual void glWaitSemaphoreEXTFn(GLuint semaphore,
4199                                     GLuint numBufferBarriers,
4200                                     const GLuint* buffers,
4201                                     GLuint numTextureBarriers,
4202                                     const GLuint* textures,
4203                                     const GLenum* srcLayouts) = 0;
4204   virtual void glWaitSyncFn(GLsync sync,
4205                             GLbitfield flags,
4206                             GLuint64 timeout) = 0;
4207   virtual void glWaitSyncAPPLEFn(GLsync sync,
4208                                  GLbitfield flags,
4209                                  GLuint64 timeout) = 0;
4210   virtual void glWindowRectanglesEXTFn(GLenum mode,
4211                                        GLsizei n,
4212                                        const GLint* box) = 0;
4213 };
4214 
4215 }  // namespace gl
4216 
4217 #define glActiveShaderProgram \
4218   ::gl::g_current_gl_context->glActiveShaderProgramFn
4219 #define glActiveTexture ::gl::g_current_gl_context->glActiveTextureFn
4220 #define glAttachShader ::gl::g_current_gl_context->glAttachShaderFn
4221 #define glBeginQuery ::gl::g_current_gl_context->glBeginQueryFn
4222 #define glBeginTransformFeedback \
4223   ::gl::g_current_gl_context->glBeginTransformFeedbackFn
4224 #define glBindAttribLocation ::gl::g_current_gl_context->glBindAttribLocationFn
4225 #define glBindBuffer ::gl::g_current_gl_context->glBindBufferFn
4226 #define glBindBufferBase ::gl::g_current_gl_context->glBindBufferBaseFn
4227 #define glBindBufferRange ::gl::g_current_gl_context->glBindBufferRangeFn
4228 #define glBindFragDataLocation \
4229   ::gl::g_current_gl_context->glBindFragDataLocationFn
4230 #define glBindFragDataLocationIndexed \
4231   ::gl::g_current_gl_context->glBindFragDataLocationIndexedFn
4232 #define glBindFragmentInputLocationCHROMIUM \
4233   ::gl::g_current_gl_context->glBindFragmentInputLocationCHROMIUMFn
4234 #define glBindFramebufferEXT ::gl::g_current_gl_context->glBindFramebufferEXTFn
4235 #define glBindImageTextureEXT \
4236   ::gl::g_current_gl_context->glBindImageTextureEXTFn
4237 #define glBindProgramPipeline \
4238   ::gl::g_current_gl_context->glBindProgramPipelineFn
4239 #define glBindRenderbufferEXT \
4240   ::gl::g_current_gl_context->glBindRenderbufferEXTFn
4241 #define glBindSampler ::gl::g_current_gl_context->glBindSamplerFn
4242 #define glBindTexture ::gl::g_current_gl_context->glBindTextureFn
4243 #define glBindTransformFeedback \
4244   ::gl::g_current_gl_context->glBindTransformFeedbackFn
4245 #define glBindUniformLocationCHROMIUM \
4246   ::gl::g_current_gl_context->glBindUniformLocationCHROMIUMFn
4247 #define glBindVertexArrayOES ::gl::g_current_gl_context->glBindVertexArrayOESFn
4248 #define glBindVertexBuffer ::gl::g_current_gl_context->glBindVertexBufferFn
4249 #define glBlendBarrierKHR ::gl::g_current_gl_context->glBlendBarrierKHRFn
4250 #define glBlendColor ::gl::g_current_gl_context->glBlendColorFn
4251 #define glBlendEquation ::gl::g_current_gl_context->glBlendEquationFn
4252 #define glBlendEquationSeparate \
4253   ::gl::g_current_gl_context->glBlendEquationSeparateFn
4254 #define glBlendFunc ::gl::g_current_gl_context->glBlendFuncFn
4255 #define glBlendFuncSeparate ::gl::g_current_gl_context->glBlendFuncSeparateFn
4256 #define glBlitFramebuffer ::gl::g_current_gl_context->glBlitFramebufferFn
4257 #define glBufferData ::gl::g_current_gl_context->glBufferDataFn
4258 #define glBufferSubData ::gl::g_current_gl_context->glBufferSubDataFn
4259 #define glCheckFramebufferStatusEXT \
4260   ::gl::g_current_gl_context->glCheckFramebufferStatusEXTFn
4261 #define glClear ::gl::g_current_gl_context->glClearFn
4262 #define glClearBufferfi ::gl::g_current_gl_context->glClearBufferfiFn
4263 #define glClearBufferfv ::gl::g_current_gl_context->glClearBufferfvFn
4264 #define glClearBufferiv ::gl::g_current_gl_context->glClearBufferivFn
4265 #define glClearBufferuiv ::gl::g_current_gl_context->glClearBufferuivFn
4266 #define glClearColor ::gl::g_current_gl_context->glClearColorFn
4267 #define glClearDepth ::gl::g_current_gl_context->glClearDepthFn
4268 #define glClearDepthf ::gl::g_current_gl_context->glClearDepthfFn
4269 #define glClearStencil ::gl::g_current_gl_context->glClearStencilFn
4270 #define glClearTexImage ::gl::g_current_gl_context->glClearTexImageFn
4271 #define glClearTexSubImage ::gl::g_current_gl_context->glClearTexSubImageFn
4272 #define glClientWaitSync ::gl::g_current_gl_context->glClientWaitSyncFn
4273 #define glClientWaitSyncAPPLE \
4274   ::gl::g_current_gl_context->glClientWaitSyncAPPLEFn
4275 #define glColorMask ::gl::g_current_gl_context->glColorMaskFn
4276 #define glCompileShader ::gl::g_current_gl_context->glCompileShaderFn
4277 #define glCompressedTexImage2D \
4278   ::gl::g_current_gl_context->glCompressedTexImage2DFn
4279 #define glCompressedTexImage2DRobustANGLE \
4280   ::gl::g_current_gl_context->glCompressedTexImage2DRobustANGLEFn
4281 #define glCompressedTexImage3D \
4282   ::gl::g_current_gl_context->glCompressedTexImage3DFn
4283 #define glCompressedTexImage3DRobustANGLE \
4284   ::gl::g_current_gl_context->glCompressedTexImage3DRobustANGLEFn
4285 #define glCompressedTexSubImage2D \
4286   ::gl::g_current_gl_context->glCompressedTexSubImage2DFn
4287 #define glCompressedTexSubImage2DRobustANGLE \
4288   ::gl::g_current_gl_context->glCompressedTexSubImage2DRobustANGLEFn
4289 #define glCompressedTexSubImage3D \
4290   ::gl::g_current_gl_context->glCompressedTexSubImage3DFn
4291 #define glCompressedTexSubImage3DRobustANGLE \
4292   ::gl::g_current_gl_context->glCompressedTexSubImage3DRobustANGLEFn
4293 #define glCopyBufferSubData ::gl::g_current_gl_context->glCopyBufferSubDataFn
4294 #define glCopySubTextureCHROMIUM \
4295   ::gl::g_current_gl_context->glCopySubTextureCHROMIUMFn
4296 #define glCopyTexImage2D ::gl::g_current_gl_context->glCopyTexImage2DFn
4297 #define glCopyTexSubImage2D ::gl::g_current_gl_context->glCopyTexSubImage2DFn
4298 #define glCopyTexSubImage3D ::gl::g_current_gl_context->glCopyTexSubImage3DFn
4299 #define glCopyTextureCHROMIUM \
4300   ::gl::g_current_gl_context->glCopyTextureCHROMIUMFn
4301 #define glCoverageModulationNV \
4302   ::gl::g_current_gl_context->glCoverageModulationNVFn
4303 #define glCoverFillPathInstancedNV \
4304   ::gl::g_current_gl_context->glCoverFillPathInstancedNVFn
4305 #define glCoverFillPathNV ::gl::g_current_gl_context->glCoverFillPathNVFn
4306 #define glCoverStrokePathInstancedNV \
4307   ::gl::g_current_gl_context->glCoverStrokePathInstancedNVFn
4308 #define glCoverStrokePathNV ::gl::g_current_gl_context->glCoverStrokePathNVFn
4309 #define glCreateMemoryObjectsEXT \
4310   ::gl::g_current_gl_context->glCreateMemoryObjectsEXTFn
4311 #define glCreateProgram ::gl::g_current_gl_context->glCreateProgramFn
4312 #define glCreateShader ::gl::g_current_gl_context->glCreateShaderFn
4313 #define glCreateShaderProgramv \
4314   ::gl::g_current_gl_context->glCreateShaderProgramvFn
4315 #define glCullFace ::gl::g_current_gl_context->glCullFaceFn
4316 #define glDebugMessageCallback \
4317   ::gl::g_current_gl_context->glDebugMessageCallbackFn
4318 #define glDebugMessageControl \
4319   ::gl::g_current_gl_context->glDebugMessageControlFn
4320 #define glDebugMessageInsert ::gl::g_current_gl_context->glDebugMessageInsertFn
4321 #define glDeleteBuffersARB ::gl::g_current_gl_context->glDeleteBuffersARBFn
4322 #define glDeleteFencesAPPLE ::gl::g_current_gl_context->glDeleteFencesAPPLEFn
4323 #define glDeleteFencesNV ::gl::g_current_gl_context->glDeleteFencesNVFn
4324 #define glDeleteFramebuffersEXT \
4325   ::gl::g_current_gl_context->glDeleteFramebuffersEXTFn
4326 #define glDeleteMemoryObjectsEXT \
4327   ::gl::g_current_gl_context->glDeleteMemoryObjectsEXTFn
4328 #define glDeletePathsNV ::gl::g_current_gl_context->glDeletePathsNVFn
4329 #define glDeleteProgram ::gl::g_current_gl_context->glDeleteProgramFn
4330 #define glDeleteProgramPipelines \
4331   ::gl::g_current_gl_context->glDeleteProgramPipelinesFn
4332 #define glDeleteQueries ::gl::g_current_gl_context->glDeleteQueriesFn
4333 #define glDeleteRenderbuffersEXT \
4334   ::gl::g_current_gl_context->glDeleteRenderbuffersEXTFn
4335 #define glDeleteSamplers ::gl::g_current_gl_context->glDeleteSamplersFn
4336 #define glDeleteSemaphoresEXT \
4337   ::gl::g_current_gl_context->glDeleteSemaphoresEXTFn
4338 #define glDeleteShader ::gl::g_current_gl_context->glDeleteShaderFn
4339 #define glDeleteSync ::gl::g_current_gl_context->glDeleteSyncFn
4340 #define glDeleteSyncAPPLE ::gl::g_current_gl_context->glDeleteSyncAPPLEFn
4341 #define glDeleteTextures ::gl::g_current_gl_context->glDeleteTexturesFn
4342 #define glDeleteTransformFeedbacks \
4343   ::gl::g_current_gl_context->glDeleteTransformFeedbacksFn
4344 #define glDeleteVertexArraysOES \
4345   ::gl::g_current_gl_context->glDeleteVertexArraysOESFn
4346 #define glDepthFunc ::gl::g_current_gl_context->glDepthFuncFn
4347 #define glDepthMask ::gl::g_current_gl_context->glDepthMaskFn
4348 #define glDepthRange ::gl::g_current_gl_context->glDepthRangeFn
4349 #define glDepthRangef ::gl::g_current_gl_context->glDepthRangefFn
4350 #define glDetachShader ::gl::g_current_gl_context->glDetachShaderFn
4351 #define glDisable ::gl::g_current_gl_context->glDisableFn
4352 #define glDisableExtensionANGLE \
4353   ::gl::g_current_gl_context->glDisableExtensionANGLEFn
4354 #define glDisableVertexAttribArray \
4355   ::gl::g_current_gl_context->glDisableVertexAttribArrayFn
4356 #define glDiscardFramebufferEXT \
4357   ::gl::g_current_gl_context->glDiscardFramebufferEXTFn
4358 #define glDispatchCompute ::gl::g_current_gl_context->glDispatchComputeFn
4359 #define glDispatchComputeIndirect \
4360   ::gl::g_current_gl_context->glDispatchComputeIndirectFn
4361 #define glDrawArrays ::gl::g_current_gl_context->glDrawArraysFn
4362 #define glDrawArraysIndirect ::gl::g_current_gl_context->glDrawArraysIndirectFn
4363 #define glDrawArraysInstancedANGLE \
4364   ::gl::g_current_gl_context->glDrawArraysInstancedANGLEFn
4365 #define glDrawArraysInstancedBaseInstanceANGLE \
4366   ::gl::g_current_gl_context->glDrawArraysInstancedBaseInstanceANGLEFn
4367 #define glDrawBuffer ::gl::g_current_gl_context->glDrawBufferFn
4368 #define glDrawBuffersARB ::gl::g_current_gl_context->glDrawBuffersARBFn
4369 #define glDrawElements ::gl::g_current_gl_context->glDrawElementsFn
4370 #define glDrawElementsIndirect \
4371   ::gl::g_current_gl_context->glDrawElementsIndirectFn
4372 #define glDrawElementsInstancedANGLE \
4373   ::gl::g_current_gl_context->glDrawElementsInstancedANGLEFn
4374 #define glDrawElementsInstancedBaseVertexBaseInstanceANGLE \
4375   ::gl::g_current_gl_context                               \
4376       ->glDrawElementsInstancedBaseVertexBaseInstanceANGLEFn
4377 #define glDrawRangeElements ::gl::g_current_gl_context->glDrawRangeElementsFn
4378 #define glEGLImageTargetRenderbufferStorageOES \
4379   ::gl::g_current_gl_context->glEGLImageTargetRenderbufferStorageOESFn
4380 #define glEGLImageTargetTexture2DOES \
4381   ::gl::g_current_gl_context->glEGLImageTargetTexture2DOESFn
4382 #define glEnable ::gl::g_current_gl_context->glEnableFn
4383 #define glEnableVertexAttribArray \
4384   ::gl::g_current_gl_context->glEnableVertexAttribArrayFn
4385 #define glEndQuery ::gl::g_current_gl_context->glEndQueryFn
4386 #define glEndTilingQCOM ::gl::g_current_gl_context->glEndTilingQCOMFn
4387 #define glEndTransformFeedback \
4388   ::gl::g_current_gl_context->glEndTransformFeedbackFn
4389 #define glFenceSync ::gl::g_current_gl_context->glFenceSyncFn
4390 #define glFenceSyncAPPLE ::gl::g_current_gl_context->glFenceSyncAPPLEFn
4391 #define glFinish ::gl::g_current_gl_context->glFinishFn
4392 #define glFinishFenceAPPLE ::gl::g_current_gl_context->glFinishFenceAPPLEFn
4393 #define glFinishFenceNV ::gl::g_current_gl_context->glFinishFenceNVFn
4394 #define glFlush ::gl::g_current_gl_context->glFlushFn
4395 #define glFlushMappedBufferRange \
4396   ::gl::g_current_gl_context->glFlushMappedBufferRangeFn
4397 #define glFramebufferParameteri \
4398   ::gl::g_current_gl_context->glFramebufferParameteriFn
4399 #define glFramebufferRenderbufferEXT \
4400   ::gl::g_current_gl_context->glFramebufferRenderbufferEXTFn
4401 #define glFramebufferTexture2DEXT \
4402   ::gl::g_current_gl_context->glFramebufferTexture2DEXTFn
4403 #define glFramebufferTexture2DMultisampleEXT \
4404   ::gl::g_current_gl_context->glFramebufferTexture2DMultisampleEXTFn
4405 #define glFramebufferTextureLayer \
4406   ::gl::g_current_gl_context->glFramebufferTextureLayerFn
4407 #define glFramebufferTextureMultiviewOVR \
4408   ::gl::g_current_gl_context->glFramebufferTextureMultiviewOVRFn
4409 #define glFrontFace ::gl::g_current_gl_context->glFrontFaceFn
4410 #define glGenBuffersARB ::gl::g_current_gl_context->glGenBuffersARBFn
4411 #define glGenerateMipmapEXT ::gl::g_current_gl_context->glGenerateMipmapEXTFn
4412 #define glGenFencesAPPLE ::gl::g_current_gl_context->glGenFencesAPPLEFn
4413 #define glGenFencesNV ::gl::g_current_gl_context->glGenFencesNVFn
4414 #define glGenFramebuffersEXT ::gl::g_current_gl_context->glGenFramebuffersEXTFn
4415 #define glGenPathsNV ::gl::g_current_gl_context->glGenPathsNVFn
4416 #define glGenProgramPipelines \
4417   ::gl::g_current_gl_context->glGenProgramPipelinesFn
4418 #define glGenQueries ::gl::g_current_gl_context->glGenQueriesFn
4419 #define glGenRenderbuffersEXT \
4420   ::gl::g_current_gl_context->glGenRenderbuffersEXTFn
4421 #define glGenSamplers ::gl::g_current_gl_context->glGenSamplersFn
4422 #define glGenSemaphoresEXT ::gl::g_current_gl_context->glGenSemaphoresEXTFn
4423 #define glGenTextures ::gl::g_current_gl_context->glGenTexturesFn
4424 #define glGenTransformFeedbacks \
4425   ::gl::g_current_gl_context->glGenTransformFeedbacksFn
4426 #define glGenVertexArraysOES ::gl::g_current_gl_context->glGenVertexArraysOESFn
4427 #define glGetActiveAttrib ::gl::g_current_gl_context->glGetActiveAttribFn
4428 #define glGetActiveUniform ::gl::g_current_gl_context->glGetActiveUniformFn
4429 #define glGetActiveUniformBlockiv \
4430   ::gl::g_current_gl_context->glGetActiveUniformBlockivFn
4431 #define glGetActiveUniformBlockivRobustANGLE \
4432   ::gl::g_current_gl_context->glGetActiveUniformBlockivRobustANGLEFn
4433 #define glGetActiveUniformBlockName \
4434   ::gl::g_current_gl_context->glGetActiveUniformBlockNameFn
4435 #define glGetActiveUniformsiv \
4436   ::gl::g_current_gl_context->glGetActiveUniformsivFn
4437 #define glGetAttachedShaders ::gl::g_current_gl_context->glGetAttachedShadersFn
4438 #define glGetAttribLocation ::gl::g_current_gl_context->glGetAttribLocationFn
4439 #define glGetBooleani_v ::gl::g_current_gl_context->glGetBooleani_vFn
4440 #define glGetBooleani_vRobustANGLE \
4441   ::gl::g_current_gl_context->glGetBooleani_vRobustANGLEFn
4442 #define glGetBooleanv ::gl::g_current_gl_context->glGetBooleanvFn
4443 #define glGetBooleanvRobustANGLE \
4444   ::gl::g_current_gl_context->glGetBooleanvRobustANGLEFn
4445 #define glGetBufferParameteri64vRobustANGLE \
4446   ::gl::g_current_gl_context->glGetBufferParameteri64vRobustANGLEFn
4447 #define glGetBufferParameteriv \
4448   ::gl::g_current_gl_context->glGetBufferParameterivFn
4449 #define glGetBufferParameterivRobustANGLE \
4450   ::gl::g_current_gl_context->glGetBufferParameterivRobustANGLEFn
4451 #define glGetBufferPointervRobustANGLE \
4452   ::gl::g_current_gl_context->glGetBufferPointervRobustANGLEFn
4453 #define glGetDebugMessageLog ::gl::g_current_gl_context->glGetDebugMessageLogFn
4454 #define glGetError ::gl::g_current_gl_context->glGetErrorFn
4455 #define glGetFenceivNV ::gl::g_current_gl_context->glGetFenceivNVFn
4456 #define glGetFloatv ::gl::g_current_gl_context->glGetFloatvFn
4457 #define glGetFloatvRobustANGLE \
4458   ::gl::g_current_gl_context->glGetFloatvRobustANGLEFn
4459 #define glGetFragDataIndex ::gl::g_current_gl_context->glGetFragDataIndexFn
4460 #define glGetFragDataLocation \
4461   ::gl::g_current_gl_context->glGetFragDataLocationFn
4462 #define glGetFramebufferAttachmentParameterivEXT \
4463   ::gl::g_current_gl_context->glGetFramebufferAttachmentParameterivEXTFn
4464 #define glGetFramebufferAttachmentParameterivRobustANGLE \
4465   ::gl::g_current_gl_context->glGetFramebufferAttachmentParameterivRobustANGLEFn
4466 #define glGetFramebufferParameteriv \
4467   ::gl::g_current_gl_context->glGetFramebufferParameterivFn
4468 #define glGetFramebufferParameterivRobustANGLE \
4469   ::gl::g_current_gl_context->glGetFramebufferParameterivRobustANGLEFn
4470 #define glGetGraphicsResetStatusARB \
4471   ::gl::g_current_gl_context->glGetGraphicsResetStatusARBFn
4472 #define glGetInteger64i_v ::gl::g_current_gl_context->glGetInteger64i_vFn
4473 #define glGetInteger64i_vRobustANGLE \
4474   ::gl::g_current_gl_context->glGetInteger64i_vRobustANGLEFn
4475 #define glGetInteger64v ::gl::g_current_gl_context->glGetInteger64vFn
4476 #define glGetInteger64vRobustANGLE \
4477   ::gl::g_current_gl_context->glGetInteger64vRobustANGLEFn
4478 #define glGetIntegeri_v ::gl::g_current_gl_context->glGetIntegeri_vFn
4479 #define glGetIntegeri_vRobustANGLE \
4480   ::gl::g_current_gl_context->glGetIntegeri_vRobustANGLEFn
4481 #define glGetIntegerv ::gl::g_current_gl_context->glGetIntegervFn
4482 #define glGetIntegervRobustANGLE \
4483   ::gl::g_current_gl_context->glGetIntegervRobustANGLEFn
4484 #define glGetInternalformativ \
4485   ::gl::g_current_gl_context->glGetInternalformativFn
4486 #define glGetInternalformativRobustANGLE \
4487   ::gl::g_current_gl_context->glGetInternalformativRobustANGLEFn
4488 #define glGetInternalformatSampleivNV \
4489   ::gl::g_current_gl_context->glGetInternalformatSampleivNVFn
4490 #define glGetMultisamplefv ::gl::g_current_gl_context->glGetMultisamplefvFn
4491 #define glGetMultisamplefvRobustANGLE \
4492   ::gl::g_current_gl_context->glGetMultisamplefvRobustANGLEFn
4493 #define glGetnUniformfvRobustANGLE \
4494   ::gl::g_current_gl_context->glGetnUniformfvRobustANGLEFn
4495 #define glGetnUniformivRobustANGLE \
4496   ::gl::g_current_gl_context->glGetnUniformivRobustANGLEFn
4497 #define glGetnUniformuivRobustANGLE \
4498   ::gl::g_current_gl_context->glGetnUniformuivRobustANGLEFn
4499 #define glGetObjectLabel ::gl::g_current_gl_context->glGetObjectLabelFn
4500 #define glGetObjectPtrLabel ::gl::g_current_gl_context->glGetObjectPtrLabelFn
4501 #define glGetPointerv ::gl::g_current_gl_context->glGetPointervFn
4502 #define glGetPointervRobustANGLERobustANGLE \
4503   ::gl::g_current_gl_context->glGetPointervRobustANGLERobustANGLEFn
4504 #define glGetProgramBinary ::gl::g_current_gl_context->glGetProgramBinaryFn
4505 #define glGetProgramInfoLog ::gl::g_current_gl_context->glGetProgramInfoLogFn
4506 #define glGetProgramInterfaceiv \
4507   ::gl::g_current_gl_context->glGetProgramInterfaceivFn
4508 #define glGetProgramInterfaceivRobustANGLE \
4509   ::gl::g_current_gl_context->glGetProgramInterfaceivRobustANGLEFn
4510 #define glGetProgramiv ::gl::g_current_gl_context->glGetProgramivFn
4511 #define glGetProgramivRobustANGLE \
4512   ::gl::g_current_gl_context->glGetProgramivRobustANGLEFn
4513 #define glGetProgramPipelineInfoLog \
4514   ::gl::g_current_gl_context->glGetProgramPipelineInfoLogFn
4515 #define glGetProgramPipelineiv \
4516   ::gl::g_current_gl_context->glGetProgramPipelineivFn
4517 #define glGetProgramResourceIndex \
4518   ::gl::g_current_gl_context->glGetProgramResourceIndexFn
4519 #define glGetProgramResourceiv \
4520   ::gl::g_current_gl_context->glGetProgramResourceivFn
4521 #define glGetProgramResourceLocation \
4522   ::gl::g_current_gl_context->glGetProgramResourceLocationFn
4523 #define glGetProgramResourceName \
4524   ::gl::g_current_gl_context->glGetProgramResourceNameFn
4525 #define glGetQueryiv ::gl::g_current_gl_context->glGetQueryivFn
4526 #define glGetQueryivRobustANGLE \
4527   ::gl::g_current_gl_context->glGetQueryivRobustANGLEFn
4528 #define glGetQueryObjecti64v ::gl::g_current_gl_context->glGetQueryObjecti64vFn
4529 #define glGetQueryObjecti64vRobustANGLE \
4530   ::gl::g_current_gl_context->glGetQueryObjecti64vRobustANGLEFn
4531 #define glGetQueryObjectiv ::gl::g_current_gl_context->glGetQueryObjectivFn
4532 #define glGetQueryObjectivRobustANGLE \
4533   ::gl::g_current_gl_context->glGetQueryObjectivRobustANGLEFn
4534 #define glGetQueryObjectui64v \
4535   ::gl::g_current_gl_context->glGetQueryObjectui64vFn
4536 #define glGetQueryObjectui64vRobustANGLE \
4537   ::gl::g_current_gl_context->glGetQueryObjectui64vRobustANGLEFn
4538 #define glGetQueryObjectuiv ::gl::g_current_gl_context->glGetQueryObjectuivFn
4539 #define glGetQueryObjectuivRobustANGLE \
4540   ::gl::g_current_gl_context->glGetQueryObjectuivRobustANGLEFn
4541 #define glGetRenderbufferParameterivEXT \
4542   ::gl::g_current_gl_context->glGetRenderbufferParameterivEXTFn
4543 #define glGetRenderbufferParameterivRobustANGLE \
4544   ::gl::g_current_gl_context->glGetRenderbufferParameterivRobustANGLEFn
4545 #define glGetSamplerParameterfv \
4546   ::gl::g_current_gl_context->glGetSamplerParameterfvFn
4547 #define glGetSamplerParameterfvRobustANGLE \
4548   ::gl::g_current_gl_context->glGetSamplerParameterfvRobustANGLEFn
4549 #define glGetSamplerParameterIivRobustANGLE \
4550   ::gl::g_current_gl_context->glGetSamplerParameterIivRobustANGLEFn
4551 #define glGetSamplerParameterIuivRobustANGLE \
4552   ::gl::g_current_gl_context->glGetSamplerParameterIuivRobustANGLEFn
4553 #define glGetSamplerParameteriv \
4554   ::gl::g_current_gl_context->glGetSamplerParameterivFn
4555 #define glGetSamplerParameterivRobustANGLE \
4556   ::gl::g_current_gl_context->glGetSamplerParameterivRobustANGLEFn
4557 #define glGetShaderInfoLog ::gl::g_current_gl_context->glGetShaderInfoLogFn
4558 #define glGetShaderiv ::gl::g_current_gl_context->glGetShaderivFn
4559 #define glGetShaderivRobustANGLE \
4560   ::gl::g_current_gl_context->glGetShaderivRobustANGLEFn
4561 #define glGetShaderPrecisionFormat \
4562   ::gl::g_current_gl_context->glGetShaderPrecisionFormatFn
4563 #define glGetShaderSource ::gl::g_current_gl_context->glGetShaderSourceFn
4564 #define glGetString ::gl::g_current_gl_context->glGetStringFn
4565 #define glGetStringi ::gl::g_current_gl_context->glGetStringiFn
4566 #define glGetSynciv ::gl::g_current_gl_context->glGetSyncivFn
4567 #define glGetTexLevelParameterfv \
4568   ::gl::g_current_gl_context->glGetTexLevelParameterfvFn
4569 #define glGetTexLevelParameterfvRobustANGLE \
4570   ::gl::g_current_gl_context->glGetTexLevelParameterfvRobustANGLEFn
4571 #define glGetTexLevelParameteriv \
4572   ::gl::g_current_gl_context->glGetTexLevelParameterivFn
4573 #define glGetTexLevelParameterivRobustANGLE \
4574   ::gl::g_current_gl_context->glGetTexLevelParameterivRobustANGLEFn
4575 #define glGetTexParameterfv ::gl::g_current_gl_context->glGetTexParameterfvFn
4576 #define glGetTexParameterfvRobustANGLE \
4577   ::gl::g_current_gl_context->glGetTexParameterfvRobustANGLEFn
4578 #define glGetTexParameterIivRobustANGLE \
4579   ::gl::g_current_gl_context->glGetTexParameterIivRobustANGLEFn
4580 #define glGetTexParameterIuivRobustANGLE \
4581   ::gl::g_current_gl_context->glGetTexParameterIuivRobustANGLEFn
4582 #define glGetTexParameteriv ::gl::g_current_gl_context->glGetTexParameterivFn
4583 #define glGetTexParameterivRobustANGLE \
4584   ::gl::g_current_gl_context->glGetTexParameterivRobustANGLEFn
4585 #define glGetTransformFeedbackVarying \
4586   ::gl::g_current_gl_context->glGetTransformFeedbackVaryingFn
4587 #define glGetTranslatedShaderSourceANGLE \
4588   ::gl::g_current_gl_context->glGetTranslatedShaderSourceANGLEFn
4589 #define glGetUniformBlockIndex \
4590   ::gl::g_current_gl_context->glGetUniformBlockIndexFn
4591 #define glGetUniformfv ::gl::g_current_gl_context->glGetUniformfvFn
4592 #define glGetUniformfvRobustANGLE \
4593   ::gl::g_current_gl_context->glGetUniformfvRobustANGLEFn
4594 #define glGetUniformIndices ::gl::g_current_gl_context->glGetUniformIndicesFn
4595 #define glGetUniformiv ::gl::g_current_gl_context->glGetUniformivFn
4596 #define glGetUniformivRobustANGLE \
4597   ::gl::g_current_gl_context->glGetUniformivRobustANGLEFn
4598 #define glGetUniformLocation ::gl::g_current_gl_context->glGetUniformLocationFn
4599 #define glGetUniformuiv ::gl::g_current_gl_context->glGetUniformuivFn
4600 #define glGetUniformuivRobustANGLE \
4601   ::gl::g_current_gl_context->glGetUniformuivRobustANGLEFn
4602 #define glGetVertexAttribfv ::gl::g_current_gl_context->glGetVertexAttribfvFn
4603 #define glGetVertexAttribfvRobustANGLE \
4604   ::gl::g_current_gl_context->glGetVertexAttribfvRobustANGLEFn
4605 #define glGetVertexAttribIivRobustANGLE \
4606   ::gl::g_current_gl_context->glGetVertexAttribIivRobustANGLEFn
4607 #define glGetVertexAttribIuivRobustANGLE \
4608   ::gl::g_current_gl_context->glGetVertexAttribIuivRobustANGLEFn
4609 #define glGetVertexAttribiv ::gl::g_current_gl_context->glGetVertexAttribivFn
4610 #define glGetVertexAttribivRobustANGLE \
4611   ::gl::g_current_gl_context->glGetVertexAttribivRobustANGLEFn
4612 #define glGetVertexAttribPointerv \
4613   ::gl::g_current_gl_context->glGetVertexAttribPointervFn
4614 #define glGetVertexAttribPointervRobustANGLE \
4615   ::gl::g_current_gl_context->glGetVertexAttribPointervRobustANGLEFn
4616 #define glHint ::gl::g_current_gl_context->glHintFn
4617 #define glImportMemoryFdEXT ::gl::g_current_gl_context->glImportMemoryFdEXTFn
4618 #define glImportMemoryZirconHandleANGLE \
4619   ::gl::g_current_gl_context->glImportMemoryZirconHandleANGLEFn
4620 #define glImportSemaphoreFdEXT \
4621   ::gl::g_current_gl_context->glImportSemaphoreFdEXTFn
4622 #define glImportSemaphoreZirconHandleANGLE \
4623   ::gl::g_current_gl_context->glImportSemaphoreZirconHandleANGLEFn
4624 #define glInsertEventMarkerEXT \
4625   ::gl::g_current_gl_context->glInsertEventMarkerEXTFn
4626 #define glInvalidateFramebuffer \
4627   ::gl::g_current_gl_context->glInvalidateFramebufferFn
4628 #define glInvalidateSubFramebuffer \
4629   ::gl::g_current_gl_context->glInvalidateSubFramebufferFn
4630 #define glInvalidateTextureANGLE \
4631   ::gl::g_current_gl_context->glInvalidateTextureANGLEFn
4632 #define glIsBuffer ::gl::g_current_gl_context->glIsBufferFn
4633 #define glIsEnabled ::gl::g_current_gl_context->glIsEnabledFn
4634 #define glIsFenceAPPLE ::gl::g_current_gl_context->glIsFenceAPPLEFn
4635 #define glIsFenceNV ::gl::g_current_gl_context->glIsFenceNVFn
4636 #define glIsFramebufferEXT ::gl::g_current_gl_context->glIsFramebufferEXTFn
4637 #define glIsPathNV ::gl::g_current_gl_context->glIsPathNVFn
4638 #define glIsProgram ::gl::g_current_gl_context->glIsProgramFn
4639 #define glIsProgramPipeline ::gl::g_current_gl_context->glIsProgramPipelineFn
4640 #define glIsQuery ::gl::g_current_gl_context->glIsQueryFn
4641 #define glIsRenderbufferEXT ::gl::g_current_gl_context->glIsRenderbufferEXTFn
4642 #define glIsSampler ::gl::g_current_gl_context->glIsSamplerFn
4643 #define glIsShader ::gl::g_current_gl_context->glIsShaderFn
4644 #define glIsSync ::gl::g_current_gl_context->glIsSyncFn
4645 #define glIsSyncAPPLE ::gl::g_current_gl_context->glIsSyncAPPLEFn
4646 #define glIsTexture ::gl::g_current_gl_context->glIsTextureFn
4647 #define glIsTransformFeedback \
4648   ::gl::g_current_gl_context->glIsTransformFeedbackFn
4649 #define glIsVertexArrayOES ::gl::g_current_gl_context->glIsVertexArrayOESFn
4650 #define glLineWidth ::gl::g_current_gl_context->glLineWidthFn
4651 #define glLinkProgram ::gl::g_current_gl_context->glLinkProgramFn
4652 #define glMapBuffer ::gl::g_current_gl_context->glMapBufferFn
4653 #define glMapBufferRange ::gl::g_current_gl_context->glMapBufferRangeFn
4654 #define glMatrixLoadfEXT ::gl::g_current_gl_context->glMatrixLoadfEXTFn
4655 #define glMatrixLoadIdentityEXT \
4656   ::gl::g_current_gl_context->glMatrixLoadIdentityEXTFn
4657 #define glMaxShaderCompilerThreadsKHR \
4658   ::gl::g_current_gl_context->glMaxShaderCompilerThreadsKHRFn
4659 #define glMemoryBarrierByRegion \
4660   ::gl::g_current_gl_context->glMemoryBarrierByRegionFn
4661 #define glMemoryBarrierEXT ::gl::g_current_gl_context->glMemoryBarrierEXTFn
4662 #define glMemoryObjectParameterivEXT \
4663   ::gl::g_current_gl_context->glMemoryObjectParameterivEXTFn
4664 #define glMinSampleShading ::gl::g_current_gl_context->glMinSampleShadingFn
4665 #define glMultiDrawArraysANGLE \
4666   ::gl::g_current_gl_context->glMultiDrawArraysANGLEFn
4667 #define glMultiDrawArraysInstancedANGLE \
4668   ::gl::g_current_gl_context->glMultiDrawArraysInstancedANGLEFn
4669 #define glMultiDrawArraysInstancedBaseInstanceANGLE \
4670   ::gl::g_current_gl_context->glMultiDrawArraysInstancedBaseInstanceANGLEFn
4671 #define glMultiDrawElementsANGLE \
4672   ::gl::g_current_gl_context->glMultiDrawElementsANGLEFn
4673 #define glMultiDrawElementsInstancedANGLE \
4674   ::gl::g_current_gl_context->glMultiDrawElementsInstancedANGLEFn
4675 #define glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE \
4676   ::gl::g_current_gl_context                                    \
4677       ->glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEFn
4678 #define glObjectLabel ::gl::g_current_gl_context->glObjectLabelFn
4679 #define glObjectPtrLabel ::gl::g_current_gl_context->glObjectPtrLabelFn
4680 #define glPathCommandsNV ::gl::g_current_gl_context->glPathCommandsNVFn
4681 #define glPathParameterfNV ::gl::g_current_gl_context->glPathParameterfNVFn
4682 #define glPathParameteriNV ::gl::g_current_gl_context->glPathParameteriNVFn
4683 #define glPathStencilFuncNV ::gl::g_current_gl_context->glPathStencilFuncNVFn
4684 #define glPauseTransformFeedback \
4685   ::gl::g_current_gl_context->glPauseTransformFeedbackFn
4686 #define glPixelStorei ::gl::g_current_gl_context->glPixelStoreiFn
4687 #define glPointParameteri ::gl::g_current_gl_context->glPointParameteriFn
4688 #define glPolygonMode ::gl::g_current_gl_context->glPolygonModeFn
4689 #define glPolygonOffset ::gl::g_current_gl_context->glPolygonOffsetFn
4690 #define glPopDebugGroup ::gl::g_current_gl_context->glPopDebugGroupFn
4691 #define glPopGroupMarkerEXT ::gl::g_current_gl_context->glPopGroupMarkerEXTFn
4692 #define glPrimitiveRestartIndex \
4693   ::gl::g_current_gl_context->glPrimitiveRestartIndexFn
4694 #define glProgramBinary ::gl::g_current_gl_context->glProgramBinaryFn
4695 #define glProgramParameteri ::gl::g_current_gl_context->glProgramParameteriFn
4696 #define glProgramPathFragmentInputGenNV \
4697   ::gl::g_current_gl_context->glProgramPathFragmentInputGenNVFn
4698 #define glProgramUniform1f ::gl::g_current_gl_context->glProgramUniform1fFn
4699 #define glProgramUniform1fv ::gl::g_current_gl_context->glProgramUniform1fvFn
4700 #define glProgramUniform1i ::gl::g_current_gl_context->glProgramUniform1iFn
4701 #define glProgramUniform1iv ::gl::g_current_gl_context->glProgramUniform1ivFn
4702 #define glProgramUniform1ui ::gl::g_current_gl_context->glProgramUniform1uiFn
4703 #define glProgramUniform1uiv ::gl::g_current_gl_context->glProgramUniform1uivFn
4704 #define glProgramUniform2f ::gl::g_current_gl_context->glProgramUniform2fFn
4705 #define glProgramUniform2fv ::gl::g_current_gl_context->glProgramUniform2fvFn
4706 #define glProgramUniform2i ::gl::g_current_gl_context->glProgramUniform2iFn
4707 #define glProgramUniform2iv ::gl::g_current_gl_context->glProgramUniform2ivFn
4708 #define glProgramUniform2ui ::gl::g_current_gl_context->glProgramUniform2uiFn
4709 #define glProgramUniform2uiv ::gl::g_current_gl_context->glProgramUniform2uivFn
4710 #define glProgramUniform3f ::gl::g_current_gl_context->glProgramUniform3fFn
4711 #define glProgramUniform3fv ::gl::g_current_gl_context->glProgramUniform3fvFn
4712 #define glProgramUniform3i ::gl::g_current_gl_context->glProgramUniform3iFn
4713 #define glProgramUniform3iv ::gl::g_current_gl_context->glProgramUniform3ivFn
4714 #define glProgramUniform3ui ::gl::g_current_gl_context->glProgramUniform3uiFn
4715 #define glProgramUniform3uiv ::gl::g_current_gl_context->glProgramUniform3uivFn
4716 #define glProgramUniform4f ::gl::g_current_gl_context->glProgramUniform4fFn
4717 #define glProgramUniform4fv ::gl::g_current_gl_context->glProgramUniform4fvFn
4718 #define glProgramUniform4i ::gl::g_current_gl_context->glProgramUniform4iFn
4719 #define glProgramUniform4iv ::gl::g_current_gl_context->glProgramUniform4ivFn
4720 #define glProgramUniform4ui ::gl::g_current_gl_context->glProgramUniform4uiFn
4721 #define glProgramUniform4uiv ::gl::g_current_gl_context->glProgramUniform4uivFn
4722 #define glProgramUniformMatrix2fv \
4723   ::gl::g_current_gl_context->glProgramUniformMatrix2fvFn
4724 #define glProgramUniformMatrix2x3fv \
4725   ::gl::g_current_gl_context->glProgramUniformMatrix2x3fvFn
4726 #define glProgramUniformMatrix2x4fv \
4727   ::gl::g_current_gl_context->glProgramUniformMatrix2x4fvFn
4728 #define glProgramUniformMatrix3fv \
4729   ::gl::g_current_gl_context->glProgramUniformMatrix3fvFn
4730 #define glProgramUniformMatrix3x2fv \
4731   ::gl::g_current_gl_context->glProgramUniformMatrix3x2fvFn
4732 #define glProgramUniformMatrix3x4fv \
4733   ::gl::g_current_gl_context->glProgramUniformMatrix3x4fvFn
4734 #define glProgramUniformMatrix4fv \
4735   ::gl::g_current_gl_context->glProgramUniformMatrix4fvFn
4736 #define glProgramUniformMatrix4x2fv \
4737   ::gl::g_current_gl_context->glProgramUniformMatrix4x2fvFn
4738 #define glProgramUniformMatrix4x3fv \
4739   ::gl::g_current_gl_context->glProgramUniformMatrix4x3fvFn
4740 #define glPushDebugGroup ::gl::g_current_gl_context->glPushDebugGroupFn
4741 #define glPushGroupMarkerEXT ::gl::g_current_gl_context->glPushGroupMarkerEXTFn
4742 #define glQueryCounter ::gl::g_current_gl_context->glQueryCounterFn
4743 #define glReadBuffer ::gl::g_current_gl_context->glReadBufferFn
4744 #define glReadnPixelsRobustANGLE \
4745   ::gl::g_current_gl_context->glReadnPixelsRobustANGLEFn
4746 #define glReadPixels ::gl::g_current_gl_context->glReadPixelsFn
4747 #define glReadPixelsRobustANGLE \
4748   ::gl::g_current_gl_context->glReadPixelsRobustANGLEFn
4749 #define glReleaseShaderCompiler \
4750   ::gl::g_current_gl_context->glReleaseShaderCompilerFn
4751 #define glRenderbufferStorageEXT \
4752   ::gl::g_current_gl_context->glRenderbufferStorageEXTFn
4753 #define glRenderbufferStorageMultisample \
4754   ::gl::g_current_gl_context->glRenderbufferStorageMultisampleFn
4755 #define glRenderbufferStorageMultisampleAdvancedAMD \
4756   ::gl::g_current_gl_context->glRenderbufferStorageMultisampleAdvancedAMDFn
4757 #define glRenderbufferStorageMultisampleEXT \
4758   ::gl::g_current_gl_context->glRenderbufferStorageMultisampleEXTFn
4759 #define glRequestExtensionANGLE \
4760   ::gl::g_current_gl_context->glRequestExtensionANGLEFn
4761 #define glResumeTransformFeedback \
4762   ::gl::g_current_gl_context->glResumeTransformFeedbackFn
4763 #define glSampleCoverage ::gl::g_current_gl_context->glSampleCoverageFn
4764 #define glSampleMaski ::gl::g_current_gl_context->glSampleMaskiFn
4765 #define glSamplerParameterf ::gl::g_current_gl_context->glSamplerParameterfFn
4766 #define glSamplerParameterfv ::gl::g_current_gl_context->glSamplerParameterfvFn
4767 #define glSamplerParameterfvRobustANGLE \
4768   ::gl::g_current_gl_context->glSamplerParameterfvRobustANGLEFn
4769 #define glSamplerParameteri ::gl::g_current_gl_context->glSamplerParameteriFn
4770 #define glSamplerParameterIivRobustANGLE \
4771   ::gl::g_current_gl_context->glSamplerParameterIivRobustANGLEFn
4772 #define glSamplerParameterIuivRobustANGLE \
4773   ::gl::g_current_gl_context->glSamplerParameterIuivRobustANGLEFn
4774 #define glSamplerParameteriv ::gl::g_current_gl_context->glSamplerParameterivFn
4775 #define glSamplerParameterivRobustANGLE \
4776   ::gl::g_current_gl_context->glSamplerParameterivRobustANGLEFn
4777 #define glScissor ::gl::g_current_gl_context->glScissorFn
4778 #define glSetFenceAPPLE ::gl::g_current_gl_context->glSetFenceAPPLEFn
4779 #define glSetFenceNV ::gl::g_current_gl_context->glSetFenceNVFn
4780 #define glShaderBinary ::gl::g_current_gl_context->glShaderBinaryFn
4781 #define glShaderSource ::gl::g_current_gl_context->glShaderSourceFn
4782 #define glSignalSemaphoreEXT ::gl::g_current_gl_context->glSignalSemaphoreEXTFn
4783 #define glStartTilingQCOM ::gl::g_current_gl_context->glStartTilingQCOMFn
4784 #define glStencilFillPathInstancedNV \
4785   ::gl::g_current_gl_context->glStencilFillPathInstancedNVFn
4786 #define glStencilFillPathNV ::gl::g_current_gl_context->glStencilFillPathNVFn
4787 #define glStencilFunc ::gl::g_current_gl_context->glStencilFuncFn
4788 #define glStencilFuncSeparate \
4789   ::gl::g_current_gl_context->glStencilFuncSeparateFn
4790 #define glStencilMask ::gl::g_current_gl_context->glStencilMaskFn
4791 #define glStencilMaskSeparate \
4792   ::gl::g_current_gl_context->glStencilMaskSeparateFn
4793 #define glStencilOp ::gl::g_current_gl_context->glStencilOpFn
4794 #define glStencilOpSeparate ::gl::g_current_gl_context->glStencilOpSeparateFn
4795 #define glStencilStrokePathInstancedNV \
4796   ::gl::g_current_gl_context->glStencilStrokePathInstancedNVFn
4797 #define glStencilStrokePathNV \
4798   ::gl::g_current_gl_context->glStencilStrokePathNVFn
4799 #define glStencilThenCoverFillPathInstancedNV \
4800   ::gl::g_current_gl_context->glStencilThenCoverFillPathInstancedNVFn
4801 #define glStencilThenCoverFillPathNV \
4802   ::gl::g_current_gl_context->glStencilThenCoverFillPathNVFn
4803 #define glStencilThenCoverStrokePathInstancedNV \
4804   ::gl::g_current_gl_context->glStencilThenCoverStrokePathInstancedNVFn
4805 #define glStencilThenCoverStrokePathNV \
4806   ::gl::g_current_gl_context->glStencilThenCoverStrokePathNVFn
4807 #define glTestFenceAPPLE ::gl::g_current_gl_context->glTestFenceAPPLEFn
4808 #define glTestFenceNV ::gl::g_current_gl_context->glTestFenceNVFn
4809 #define glTexBuffer ::gl::g_current_gl_context->glTexBufferFn
4810 #define glTexBufferRange ::gl::g_current_gl_context->glTexBufferRangeFn
4811 #define glTexImage2D ::gl::g_current_gl_context->glTexImage2DFn
4812 #define glTexImage2DExternalANGLE \
4813   ::gl::g_current_gl_context->glTexImage2DExternalANGLEFn
4814 #define glTexImage2DRobustANGLE \
4815   ::gl::g_current_gl_context->glTexImage2DRobustANGLEFn
4816 #define glTexImage3D ::gl::g_current_gl_context->glTexImage3DFn
4817 #define glTexImage3DRobustANGLE \
4818   ::gl::g_current_gl_context->glTexImage3DRobustANGLEFn
4819 #define glTexParameterf ::gl::g_current_gl_context->glTexParameterfFn
4820 #define glTexParameterfv ::gl::g_current_gl_context->glTexParameterfvFn
4821 #define glTexParameterfvRobustANGLE \
4822   ::gl::g_current_gl_context->glTexParameterfvRobustANGLEFn
4823 #define glTexParameteri ::gl::g_current_gl_context->glTexParameteriFn
4824 #define glTexParameterIivRobustANGLE \
4825   ::gl::g_current_gl_context->glTexParameterIivRobustANGLEFn
4826 #define glTexParameterIuivRobustANGLE \
4827   ::gl::g_current_gl_context->glTexParameterIuivRobustANGLEFn
4828 #define glTexParameteriv ::gl::g_current_gl_context->glTexParameterivFn
4829 #define glTexParameterivRobustANGLE \
4830   ::gl::g_current_gl_context->glTexParameterivRobustANGLEFn
4831 #define glTexStorage2DEXT ::gl::g_current_gl_context->glTexStorage2DEXTFn
4832 #define glTexStorage2DMultisample \
4833   ::gl::g_current_gl_context->glTexStorage2DMultisampleFn
4834 #define glTexStorage3D ::gl::g_current_gl_context->glTexStorage3DFn
4835 #define glTexStorageMem2DEXT ::gl::g_current_gl_context->glTexStorageMem2DEXTFn
4836 #define glTexSubImage2D ::gl::g_current_gl_context->glTexSubImage2DFn
4837 #define glTexSubImage2DRobustANGLE \
4838   ::gl::g_current_gl_context->glTexSubImage2DRobustANGLEFn
4839 #define glTexSubImage3D ::gl::g_current_gl_context->glTexSubImage3DFn
4840 #define glTexSubImage3DRobustANGLE \
4841   ::gl::g_current_gl_context->glTexSubImage3DRobustANGLEFn
4842 #define glTransformFeedbackVaryings \
4843   ::gl::g_current_gl_context->glTransformFeedbackVaryingsFn
4844 #define glUniform1f ::gl::g_current_gl_context->glUniform1fFn
4845 #define glUniform1fv ::gl::g_current_gl_context->glUniform1fvFn
4846 #define glUniform1i ::gl::g_current_gl_context->glUniform1iFn
4847 #define glUniform1iv ::gl::g_current_gl_context->glUniform1ivFn
4848 #define glUniform1ui ::gl::g_current_gl_context->glUniform1uiFn
4849 #define glUniform1uiv ::gl::g_current_gl_context->glUniform1uivFn
4850 #define glUniform2f ::gl::g_current_gl_context->glUniform2fFn
4851 #define glUniform2fv ::gl::g_current_gl_context->glUniform2fvFn
4852 #define glUniform2i ::gl::g_current_gl_context->glUniform2iFn
4853 #define glUniform2iv ::gl::g_current_gl_context->glUniform2ivFn
4854 #define glUniform2ui ::gl::g_current_gl_context->glUniform2uiFn
4855 #define glUniform2uiv ::gl::g_current_gl_context->glUniform2uivFn
4856 #define glUniform3f ::gl::g_current_gl_context->glUniform3fFn
4857 #define glUniform3fv ::gl::g_current_gl_context->glUniform3fvFn
4858 #define glUniform3i ::gl::g_current_gl_context->glUniform3iFn
4859 #define glUniform3iv ::gl::g_current_gl_context->glUniform3ivFn
4860 #define glUniform3ui ::gl::g_current_gl_context->glUniform3uiFn
4861 #define glUniform3uiv ::gl::g_current_gl_context->glUniform3uivFn
4862 #define glUniform4f ::gl::g_current_gl_context->glUniform4fFn
4863 #define glUniform4fv ::gl::g_current_gl_context->glUniform4fvFn
4864 #define glUniform4i ::gl::g_current_gl_context->glUniform4iFn
4865 #define glUniform4iv ::gl::g_current_gl_context->glUniform4ivFn
4866 #define glUniform4ui ::gl::g_current_gl_context->glUniform4uiFn
4867 #define glUniform4uiv ::gl::g_current_gl_context->glUniform4uivFn
4868 #define glUniformBlockBinding \
4869   ::gl::g_current_gl_context->glUniformBlockBindingFn
4870 #define glUniformMatrix2fv ::gl::g_current_gl_context->glUniformMatrix2fvFn
4871 #define glUniformMatrix2x3fv ::gl::g_current_gl_context->glUniformMatrix2x3fvFn
4872 #define glUniformMatrix2x4fv ::gl::g_current_gl_context->glUniformMatrix2x4fvFn
4873 #define glUniformMatrix3fv ::gl::g_current_gl_context->glUniformMatrix3fvFn
4874 #define glUniformMatrix3x2fv ::gl::g_current_gl_context->glUniformMatrix3x2fvFn
4875 #define glUniformMatrix3x4fv ::gl::g_current_gl_context->glUniformMatrix3x4fvFn
4876 #define glUniformMatrix4fv ::gl::g_current_gl_context->glUniformMatrix4fvFn
4877 #define glUniformMatrix4x2fv ::gl::g_current_gl_context->glUniformMatrix4x2fvFn
4878 #define glUniformMatrix4x3fv ::gl::g_current_gl_context->glUniformMatrix4x3fvFn
4879 #define glUnmapBuffer ::gl::g_current_gl_context->glUnmapBufferFn
4880 #define glUseProgram ::gl::g_current_gl_context->glUseProgramFn
4881 #define glUseProgramStages ::gl::g_current_gl_context->glUseProgramStagesFn
4882 #define glValidateProgram ::gl::g_current_gl_context->glValidateProgramFn
4883 #define glValidateProgramPipeline \
4884   ::gl::g_current_gl_context->glValidateProgramPipelineFn
4885 #define glVertexAttrib1f ::gl::g_current_gl_context->glVertexAttrib1fFn
4886 #define glVertexAttrib1fv ::gl::g_current_gl_context->glVertexAttrib1fvFn
4887 #define glVertexAttrib2f ::gl::g_current_gl_context->glVertexAttrib2fFn
4888 #define glVertexAttrib2fv ::gl::g_current_gl_context->glVertexAttrib2fvFn
4889 #define glVertexAttrib3f ::gl::g_current_gl_context->glVertexAttrib3fFn
4890 #define glVertexAttrib3fv ::gl::g_current_gl_context->glVertexAttrib3fvFn
4891 #define glVertexAttrib4f ::gl::g_current_gl_context->glVertexAttrib4fFn
4892 #define glVertexAttrib4fv ::gl::g_current_gl_context->glVertexAttrib4fvFn
4893 #define glVertexAttribBinding \
4894   ::gl::g_current_gl_context->glVertexAttribBindingFn
4895 #define glVertexAttribDivisorANGLE \
4896   ::gl::g_current_gl_context->glVertexAttribDivisorANGLEFn
4897 #define glVertexAttribFormat ::gl::g_current_gl_context->glVertexAttribFormatFn
4898 #define glVertexAttribI4i ::gl::g_current_gl_context->glVertexAttribI4iFn
4899 #define glVertexAttribI4iv ::gl::g_current_gl_context->glVertexAttribI4ivFn
4900 #define glVertexAttribI4ui ::gl::g_current_gl_context->glVertexAttribI4uiFn
4901 #define glVertexAttribI4uiv ::gl::g_current_gl_context->glVertexAttribI4uivFn
4902 #define glVertexAttribIFormat \
4903   ::gl::g_current_gl_context->glVertexAttribIFormatFn
4904 #define glVertexAttribIPointer \
4905   ::gl::g_current_gl_context->glVertexAttribIPointerFn
4906 #define glVertexAttribPointer \
4907   ::gl::g_current_gl_context->glVertexAttribPointerFn
4908 #define glVertexBindingDivisor \
4909   ::gl::g_current_gl_context->glVertexBindingDivisorFn
4910 #define glViewport ::gl::g_current_gl_context->glViewportFn
4911 #define glWaitSemaphoreEXT ::gl::g_current_gl_context->glWaitSemaphoreEXTFn
4912 #define glWaitSync ::gl::g_current_gl_context->glWaitSyncFn
4913 #define glWaitSyncAPPLE ::gl::g_current_gl_context->glWaitSyncAPPLEFn
4914 #define glWindowRectanglesEXT \
4915   ::gl::g_current_gl_context->glWindowRectanglesEXTFn
4916 
4917 #endif  //  UI_GL_GL_BINDINGS_AUTOGEN_GL_H_
4918