/*
 * Copyright 2015, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * THIS FILE WAS GENERATED BY apic. DO NOT EDIT.
 */


#ifndef GAPII_GLES_IMPORTS_H
#define GAPII_GLES_IMPORTS_H

#include "gles_types.h"

#include <gapic/target.h> // STDCALL

namespace gapii {

    struct GlesImports {
        GlesImports();
        void resolve();

        typedef void (STDCALL *PFNGLBLENDBARRIERKHR)();
        typedef void (STDCALL *PFNGLBLENDEQUATIONSEPARATEIEXT)(DrawBufferIndex buf, uint32_t modeRGB, uint32_t modeAlpha);
        typedef void (STDCALL *PFNGLBLENDEQUATIONIEXT)(DrawBufferIndex buf, uint32_t mode);
        typedef void (STDCALL *PFNGLBLENDFUNCSEPARATEIEXT)(DrawBufferIndex buf, uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
        typedef void (STDCALL *PFNGLBLENDFUNCIEXT)(DrawBufferIndex buf, uint32_t src, uint32_t dst);
        typedef void (STDCALL *PFNGLCOLORMASKIEXT)(DrawBufferIndex index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
        typedef void (STDCALL *PFNGLCOPYIMAGESUBDATAEXT)(GLuint srcName, uint32_t srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, uint32_t dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
        typedef void (STDCALL *PFNGLDEBUGMESSAGECALLBACKKHR)(GLDEBUGPROC callback, void* userParam);
        typedef void (STDCALL *PFNGLDEBUGMESSAGECONTROLKHR)(uint32_t source, uint32_t type, uint32_t severity, GLsizei count, GLuint* ids, GLboolean enabled);
        typedef void (STDCALL *PFNGLDEBUGMESSAGEINSERTKHR)(uint32_t source, uint32_t type, GLuint id, uint32_t severity, GLsizei length, GLchar* message);
        typedef void (STDCALL *PFNGLDISABLEIEXT)(uint32_t target, GLuint index);
        typedef void (STDCALL *PFNGLENABLEIEXT)(uint32_t target, GLuint index);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTUREEXT)(uint32_t target, uint32_t attachment, TextureId texture, GLint level);
        typedef GLuint (STDCALL *PFNGLGETDEBUGMESSAGELOGKHR)(GLuint count, GLsizei bufSize, uint32_t* sources, uint32_t* types, GLuint* ids, uint32_t* severities, GLsizei* lengths, GLchar* messageLog);
        typedef void (STDCALL *PFNGLGETOBJECTLABELKHR)(uint32_t identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label);
        typedef void (STDCALL *PFNGLGETOBJECTPTRLABELKHR)(void* ptr, GLsizei bufSize, GLsizei* length, GLchar* label);
        typedef void (STDCALL *PFNGLGETPOINTERVKHR)(uint32_t pname, void** params);
        typedef void (STDCALL *PFNGLGETSAMPLERPARAMETERIIVEXT)(SamplerId sampler, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETSAMPLERPARAMETERIUIVEXT)(SamplerId sampler, uint32_t pname, GLuint* params);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERIIVEXT)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERIUIVEXT)(uint32_t target, uint32_t pname, GLuint* params);
        typedef GLboolean (STDCALL *PFNGLISENABLEDIEXT)(uint32_t target, GLuint index);
        typedef void (STDCALL *PFNGLMINSAMPLESHADINGOES)(GLfloat value);
        typedef void (STDCALL *PFNGLOBJECTLABELKHR)(uint32_t identifier, GLuint name, GLsizei length, GLchar* label);
        typedef void (STDCALL *PFNGLOBJECTPTRLABELKHR)(void* ptr, GLsizei length, GLchar* label);
        typedef void (STDCALL *PFNGLPATCHPARAMETERIEXT)(uint32_t pname, GLint value);
        typedef void (STDCALL *PFNGLPOPDEBUGGROUPKHR)();
        typedef void (STDCALL *PFNGLPRIMITIVEBOUNDINGBOXEXT)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
        typedef void (STDCALL *PFNGLPUSHDEBUGGROUPKHR)(uint32_t source, GLuint id, GLsizei length, GLchar* message);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERIIVEXT)(SamplerId sampler, uint32_t pname, GLint* param);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERIUIVEXT)(SamplerId sampler, uint32_t pname, GLuint* param);
        typedef void (STDCALL *PFNGLTEXBUFFEREXT)(uint32_t target, uint32_t internalformat, BufferId buffer);
        typedef void (STDCALL *PFNGLTEXBUFFERRANGEEXT)(uint32_t target, uint32_t internalformat, BufferId buffer, GLintptr offset, GLsizeiptr size);
        typedef void (STDCALL *PFNGLTEXPARAMETERIIVEXT)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLTEXPARAMETERIUIVEXT)(uint32_t target, uint32_t pname, GLuint* params);
        typedef void (STDCALL *PFNGLTEXSTORAGE3DMULTISAMPLEOES)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
        typedef void (STDCALL *PFNGLBEGINQUERY)(uint32_t target, QueryId query);
        typedef void (STDCALL *PFNGLDELETEQUERIES)(GLsizei count, QueryId* queries);
        typedef void (STDCALL *PFNGLENDQUERY)(uint32_t target);
        typedef void (STDCALL *PFNGLGENQUERIES)(GLsizei count, QueryId* queries);
        typedef void (STDCALL *PFNGLGETQUERYOBJECTUIV)(QueryId query, uint32_t parameter, GLuint* value);
        typedef void (STDCALL *PFNGLGETQUERYIV)(uint32_t target, uint32_t parameter, GLint* value);
        typedef GLboolean (STDCALL *PFNGLISQUERY)(QueryId query);
        typedef void (STDCALL *PFNGLBINDBUFFER)(uint32_t target, BufferId buffer);
        typedef void (STDCALL *PFNGLBINDBUFFERBASE)(uint32_t target, GLuint index, BufferId buffer);
        typedef void (STDCALL *PFNGLBINDBUFFERRANGE)(uint32_t target, GLuint index, BufferId buffer, GLintptr offset, GLsizeiptr size);
        typedef void (STDCALL *PFNGLBUFFERDATA)(uint32_t target, GLsizeiptr size, BufferDataPointer data, uint32_t usage);
        typedef void (STDCALL *PFNGLBUFFERSUBDATA)(uint32_t target, GLintptr offset, GLsizeiptr size, BufferDataPointer data);
        typedef void (STDCALL *PFNGLCOPYBUFFERSUBDATA)(uint32_t readTarget, uint32_t writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
        typedef void (STDCALL *PFNGLDELETEBUFFERS)(GLsizei count, BufferId* buffers);
        typedef void (STDCALL *PFNGLGENBUFFERS)(GLsizei count, BufferId* buffers);
        typedef void (STDCALL *PFNGLGETBUFFERPARAMETERI64V)(uint32_t target, uint32_t parameter, GLint64* value);
        typedef void (STDCALL *PFNGLGETBUFFERPARAMETERIV)(uint32_t target, uint32_t parameter, GLint* value);
        typedef void (STDCALL *PFNGLGETBUFFERPOINTERV)(uint32_t target, uint32_t pname, void** params);
        typedef GLboolean (STDCALL *PFNGLISBUFFER)(BufferId buffer);
        typedef void* (STDCALL *PFNGLMAPBUFFERRANGE)(uint32_t target, GLintptr offset, GLsizeiptr length, uint32_t access);
        typedef GLboolean (STDCALL *PFNGLUNMAPBUFFER)(uint32_t target);
        typedef void (STDCALL *PFNGLDEBUGMESSAGECALLBACK)(GLDEBUGPROC callback, void* userParam);
        typedef void (STDCALL *PFNGLDEBUGMESSAGECONTROL)(uint32_t source, uint32_t type, uint32_t severity, GLsizei count, GLuint* ids, GLboolean enabled);
        typedef void (STDCALL *PFNGLDEBUGMESSAGEINSERT)(uint32_t source, uint32_t type, GLuint id, uint32_t severity, GLsizei length, GLchar* message);
        typedef GLuint (STDCALL *PFNGLGETDEBUGMESSAGELOG)(GLuint count, GLsizei bufSize, uint32_t* sources, uint32_t* types, GLuint* ids, uint32_t* severities, GLsizei* lengths, GLchar* messageLog);
        typedef void (STDCALL *PFNGLGETOBJECTLABEL)(uint32_t identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar* label);
        typedef void (STDCALL *PFNGLGETOBJECTPTRLABEL)(void* ptr, GLsizei bufSize, GLsizei* length, GLchar* label);
        typedef void (STDCALL *PFNGLGETPOINTERV)(uint32_t pname, void** params);
        typedef void (STDCALL *PFNGLOBJECTLABEL)(uint32_t identifier, GLuint name, GLsizei length, GLchar* label);
        typedef void (STDCALL *PFNGLOBJECTPTRLABEL)(void* ptr, GLsizei length, GLchar* label);
        typedef void (STDCALL *PFNGLPOPDEBUGGROUP)();
        typedef void (STDCALL *PFNGLPUSHDEBUGGROUP)(uint32_t source, GLuint id, GLsizei length, GLchar* message);
        typedef void (STDCALL *PFNGLDRAWARRAYS)(uint32_t draw_mode, GLint first_index, GLsizei indices_count);
        typedef void (STDCALL *PFNGLDRAWARRAYSINDIRECT)(uint32_t draw_mode, void* indirect);
        typedef void (STDCALL *PFNGLDRAWARRAYSINSTANCED)(uint32_t draw_mode, GLint first_index, GLsizei indices_count, GLsizei instance_count);
        typedef void (STDCALL *PFNGLDRAWELEMENTS)(uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices);
        typedef void (STDCALL *PFNGLDRAWELEMENTSBASEVERTEX)(uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLint base_vertex);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINDIRECT)(uint32_t draw_mode, uint32_t indices_type, void* indirect);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCED)(uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLsizei instance_count);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEX)(uint32_t draw_mode, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLsizei instance_count, GLint base_vertex);
        typedef void (STDCALL *PFNGLDRAWRANGEELEMENTS)(uint32_t draw_mode, GLuint start, GLuint end, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices);
        typedef void (STDCALL *PFNGLDRAWRANGEELEMENTSBASEVERTEX)(uint32_t draw_mode, GLuint start, GLuint end, GLsizei indices_count, uint32_t indices_type, IndicesPointer indices, GLint base_vertex);
        typedef void (STDCALL *PFNGLPATCHPARAMETERI)(uint32_t pname, GLint value);
        typedef void (STDCALL *PFNGLPRIMITIVEBOUNDINGBOX)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
        typedef void (STDCALL *PFNGLACTIVESHADERPROGRAMEXT)(PipelineId pipeline, ProgramId program);
        typedef void (STDCALL *PFNGLALPHAFUNCQCOM)(uint32_t func, GLclampf ref);
        typedef void (STDCALL *PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTEL)();
        typedef void (STDCALL *PFNGLBEGINCONDITIONALRENDERNV)(GLuint id, uint32_t mode);
        typedef void (STDCALL *PFNGLBEGINPERFMONITORAMD)(GLuint monitor);
        typedef void (STDCALL *PFNGLBEGINPERFQUERYINTEL)(GLuint queryHandle);
        typedef void (STDCALL *PFNGLBEGINQUERYEXT)(uint32_t target, QueryId query);
        typedef void (STDCALL *PFNGLBINDFRAGDATALOCATIONEXT)(ProgramId program, GLuint color, const char* name);
        typedef void (STDCALL *PFNGLBINDFRAGDATALOCATIONINDEXEDEXT)(ProgramId program, GLuint colorNumber, GLuint index, const char* name);
        typedef void (STDCALL *PFNGLBINDPROGRAMPIPELINEEXT)(PipelineId pipeline);
        typedef void (STDCALL *PFNGLBINDVERTEXARRAYOES)(VertexArrayId array);
        typedef void (STDCALL *PFNGLBLENDBARRIERNV)();
        typedef void (STDCALL *PFNGLBLENDEQUATIONSEPARATEIOES)(DrawBufferIndex buf, uint32_t modeRGB, uint32_t modeAlpha);
        typedef void (STDCALL *PFNGLBLENDEQUATIONIOES)(DrawBufferIndex buf, uint32_t mode);
        typedef void (STDCALL *PFNGLBLENDFUNCSEPARATEIOES)(DrawBufferIndex buf, uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
        typedef void (STDCALL *PFNGLBLENDFUNCIOES)(DrawBufferIndex buf, uint32_t src, uint32_t dst);
        typedef void (STDCALL *PFNGLBLENDPARAMETERINV)(uint32_t pname, GLint value);
        typedef void (STDCALL *PFNGLBLITFRAMEBUFFERANGLE)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, uint32_t mask, uint32_t filter);
        typedef void (STDCALL *PFNGLBLITFRAMEBUFFERNV)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, uint32_t mask, uint32_t filter);
        typedef void (STDCALL *PFNGLBUFFERSTORAGEEXT)(uint32_t target, GLsizeiptr size, void* data, uint32_t flag);
        typedef uint32_t (STDCALL *PFNGLCLIENTWAITSYNCAPPLE)(GLsync sync, uint32_t flag, GLuint64 timeout);
        typedef void (STDCALL *PFNGLCOLORMASKIOES)(DrawBufferIndex index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
        typedef void (STDCALL *PFNGLCOMPRESSEDTEXIMAGE3DOES)(uint32_t target, GLint level, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei image_size, TexturePointer data);
        typedef void (STDCALL *PFNGLCOMPRESSEDTEXSUBIMAGE3DOES)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, GLsizei image_size, TexturePointer data);
        typedef void (STDCALL *PFNGLCOPYBUFFERSUBDATANV)(uint32_t readTarget, uint32_t writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
        typedef void (STDCALL *PFNGLCOPYIMAGESUBDATAOES)(GLuint srcName, uint32_t srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, uint32_t dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
        typedef void (STDCALL *PFNGLCOPYPATHNV)(GLuint resultPath, GLuint srcPath);
        typedef void (STDCALL *PFNGLCOPYTEXSUBIMAGE3DOES)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLCOPYTEXTURELEVELSAPPLE)(GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
        typedef void (STDCALL *PFNGLCOVERFILLPATHINSTANCEDNV)(GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, uint32_t coverMode, uint32_t transformType, GLfloat* transformValues);
        typedef void (STDCALL *PFNGLCOVERFILLPATHNV)(GLuint path, uint32_t coverMode);
        typedef void (STDCALL *PFNGLCOVERSTROKEPATHINSTANCEDNV)(GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, uint32_t coverMode, uint32_t transformType, GLfloat* transformValues);
        typedef void (STDCALL *PFNGLCOVERSTROKEPATHNV)(GLuint path, uint32_t coverMode);
        typedef void (STDCALL *PFNGLCOVERAGEMASKNV)(GLboolean mask);
        typedef void (STDCALL *PFNGLCOVERAGEMODULATIONNV)(uint32_t components);
        typedef void (STDCALL *PFNGLCOVERAGEMODULATIONTABLENV)(GLsizei n, GLfloat* v);
        typedef void (STDCALL *PFNGLCOVERAGEOPERATIONNV)(uint32_t operation);
        typedef void (STDCALL *PFNGLCREATEPERFQUERYINTEL)(GLuint queryId, GLuint* queryHandle);
        typedef GLuint (STDCALL *PFNGLCREATESHADERPROGRAMVEXT)(uint32_t type, GLsizei count, GLchar** strings);
        typedef void (STDCALL *PFNGLDELETEFENCESNV)(GLsizei n, GLuint* fences);
        typedef void (STDCALL *PFNGLDELETEPATHSNV)(GLuint path, GLsizei range);
        typedef void (STDCALL *PFNGLDELETEPERFMONITORSAMD)(GLsizei n, GLuint* monitors);
        typedef void (STDCALL *PFNGLDELETEPERFQUERYINTEL)(GLuint queryHandle);
        typedef void (STDCALL *PFNGLDELETEPROGRAMPIPELINESEXT)(GLsizei n, PipelineId* pipelines);
        typedef void (STDCALL *PFNGLDELETEQUERIESEXT)(GLsizei count, QueryId* queries);
        typedef void (STDCALL *PFNGLDELETESYNCAPPLE)(GLsync sync);
        typedef void (STDCALL *PFNGLDELETEVERTEXARRAYSOES)(GLsizei count, VertexArrayId* arrays);
        typedef void (STDCALL *PFNGLDEPTHRANGEARRAYFVNV)(GLuint first, GLsizei count, GLfloat* v);
        typedef void (STDCALL *PFNGLDEPTHRANGEINDEXEDFNV)(GLuint index, GLfloat n, GLfloat f);
        typedef void (STDCALL *PFNGLDISABLEDRIVERCONTROLQCOM)(GLuint driverControl);
        typedef void (STDCALL *PFNGLDISABLEINV)(uint32_t target, GLuint index);
        typedef void (STDCALL *PFNGLDISABLEIOES)(uint32_t target, GLuint index);
        typedef void (STDCALL *PFNGLDISCARDFRAMEBUFFEREXT)(uint32_t target, GLsizei numAttachments, uint32_t* attachments);
        typedef void (STDCALL *PFNGLDRAWARRAYSINSTANCEDANGLE)(uint32_t mode, GLint first, GLsizei count, GLsizei primcount);
        typedef void (STDCALL *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXT)(uint32_t mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
        typedef void (STDCALL *PFNGLDRAWARRAYSINSTANCEDEXT)(uint32_t mode, GLint start, GLsizei count, GLsizei primcount);
        typedef void (STDCALL *PFNGLDRAWARRAYSINSTANCEDNV)(uint32_t mode, GLint first, GLsizei count, GLsizei primcount);
        typedef void (STDCALL *PFNGLDRAWBUFFERSEXT)(GLsizei n, uint32_t* bufs);
        typedef void (STDCALL *PFNGLDRAWBUFFERSINDEXEDEXT)(GLint n, uint32_t* location, GLint* indices);
        typedef void (STDCALL *PFNGLDRAWBUFFERSNV)(GLsizei n, uint32_t* bufs);
        typedef void (STDCALL *PFNGLDRAWELEMENTSBASEVERTEXEXT)(uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLint basevertex);
        typedef void (STDCALL *PFNGLDRAWELEMENTSBASEVERTEXOES)(uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLint basevertex);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCEDANGLE)(uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei primcount);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXT)(uint32_t mode, GLsizei count, uint32_t type, void* indices, GLsizei instancecount, GLuint baseinstance);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXT)(uint32_t mode, GLsizei count, uint32_t type, void* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXT)(uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei instancecount, GLint basevertex);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOES)(uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei instancecount, GLint basevertex);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCEDEXT)(uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei primcount);
        typedef void (STDCALL *PFNGLDRAWELEMENTSINSTANCEDNV)(uint32_t mode, GLsizei count, uint32_t type, IndicesPointer indices, GLsizei primcount);
        typedef void (STDCALL *PFNGLDRAWRANGEELEMENTSBASEVERTEXEXT)(uint32_t mode, GLuint start, GLuint end, GLsizei count, uint32_t type, IndicesPointer indices, GLint basevertex);
        typedef void (STDCALL *PFNGLDRAWRANGEELEMENTSBASEVERTEXOES)(uint32_t mode, GLuint start, GLuint end, GLsizei count, uint32_t type, IndicesPointer indices, GLint basevertex);
        typedef void (STDCALL *PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOES)(uint32_t target, GLeglImageOES image);
        typedef void (STDCALL *PFNGLEGLIMAGETARGETTEXTURE2DOES)(uint32_t target, GLeglImageOES image);
        typedef void (STDCALL *PFNGLENABLEDRIVERCONTROLQCOM)(GLuint driverControl);
        typedef void (STDCALL *PFNGLENABLEINV)(uint32_t target, GLuint index);
        typedef void (STDCALL *PFNGLENABLEIOES)(uint32_t target, GLuint index);
        typedef void (STDCALL *PFNGLENDCONDITIONALRENDERNV)();
        typedef void (STDCALL *PFNGLENDPERFMONITORAMD)(GLuint monitor);
        typedef void (STDCALL *PFNGLENDPERFQUERYINTEL)(GLuint queryHandle);
        typedef void (STDCALL *PFNGLENDQUERYEXT)(uint32_t target);
        typedef void (STDCALL *PFNGLENDTILINGQCOM)(uint32_t preserve_mask);
        typedef void (STDCALL *PFNGLEXTGETBUFFERPOINTERVQCOM)(uint32_t target, void** params);
        typedef void (STDCALL *PFNGLEXTGETBUFFERSQCOM)(BufferId* buffers, GLint maxBuffers, GLint* numBuffers);
        typedef void (STDCALL *PFNGLEXTGETFRAMEBUFFERSQCOM)(FramebufferId* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
        typedef void (STDCALL *PFNGLEXTGETPROGRAMBINARYSOURCEQCOM)(ProgramId program, uint32_t shadertype, GLchar* source, GLint* length);
        typedef void (STDCALL *PFNGLEXTGETPROGRAMSQCOM)(ProgramId* programs, GLint maxPrograms, GLint* numPrograms);
        typedef void (STDCALL *PFNGLEXTGETRENDERBUFFERSQCOM)(RenderbufferId* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
        typedef void (STDCALL *PFNGLEXTGETSHADERSQCOM)(ShaderId* shaders, GLint maxShaders, GLint* numShaders);
        typedef void (STDCALL *PFNGLEXTGETTEXLEVELPARAMETERIVQCOM)(TextureId texture, uint32_t face, GLint level, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLEXTGETTEXSUBIMAGEQCOM)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, uint32_t type, void* texels);
        typedef void (STDCALL *PFNGLEXTGETTEXTURESQCOM)(TextureId* textures, GLint maxTextures, GLint* numTextures);
        typedef GLboolean (STDCALL *PFNGLEXTISPROGRAMBINARYQCOM)(ProgramId program);
        typedef void (STDCALL *PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOM)(uint32_t target, uint32_t pname, GLint param);
        typedef GLsync (STDCALL *PFNGLFENCESYNCAPPLE)(uint32_t condition, uint32_t flag);
        typedef void (STDCALL *PFNGLFINISHFENCENV)(GLuint fence);
        typedef void (STDCALL *PFNGLFLUSHMAPPEDBUFFERRANGEEXT)(uint32_t target, GLintptr offset, GLsizeiptr length);
        typedef void (STDCALL *PFNGLFRAGMENTCOVERAGECOLORNV)(GLuint color);
        typedef void (STDCALL *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNV)(uint32_t target, GLuint start, GLsizei count, GLfloat* v);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT)(uint32_t target, uint32_t attachment, uint32_t textarget, TextureId texture, GLint level, GLsizei samples);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG)(uint32_t target, uint32_t attachment, uint32_t textarget, TextureId texture, GLint level, GLsizei samples);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTURE3DOES)(uint32_t target, uint32_t attachment, uint32_t textarget, TextureId texture, GLint level, GLint zoffset);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVR)(uint32_t target, uint32_t attachment, TextureId texture, GLint level, GLint baseViewIndex, GLsizei numViews);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTUREOES)(uint32_t target, uint32_t attachment, TextureId texture, GLint level);
        typedef void (STDCALL *PFNGLGENFENCESNV)(GLsizei n, GLuint* fences);
        typedef GLuint (STDCALL *PFNGLGENPATHSNV)(GLsizei range);
        typedef void (STDCALL *PFNGLGENPERFMONITORSAMD)(GLsizei n, GLuint* monitors);
        typedef void (STDCALL *PFNGLGENPROGRAMPIPELINESEXT)(GLsizei n, PipelineId* pipelines);
        typedef void (STDCALL *PFNGLGENQUERIESEXT)(GLsizei count, QueryId* queries);
        typedef void (STDCALL *PFNGLGENVERTEXARRAYSOES)(GLsizei count, VertexArrayId* arrays);
        typedef void (STDCALL *PFNGLGETBUFFERPOINTERVOES)(uint32_t target, uint32_t pname, void** params);
        typedef void (STDCALL *PFNGLGETCOVERAGEMODULATIONTABLENV)(GLsizei bufsize, GLfloat* v);
        typedef void (STDCALL *PFNGLGETDRIVERCONTROLSTRINGQCOM)(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString);
        typedef void (STDCALL *PFNGLGETDRIVERCONTROLSQCOM)(GLint* num, GLsizei size, GLuint* driverControls);
        typedef void (STDCALL *PFNGLGETFENCEIVNV)(GLuint fence, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETFIRSTPERFQUERYIDINTEL)(GLuint* queryId);
        typedef void (STDCALL *PFNGLGETFLOATI_VNV)(uint32_t target, GLuint index, GLfloat* data);
        typedef GLint (STDCALL *PFNGLGETFRAGDATAINDEXEXT)(ProgramId program, const char* name);
        typedef uint32_t (STDCALL *PFNGLGETGRAPHICSRESETSTATUSEXT)();
        typedef uint32_t (STDCALL *PFNGLGETGRAPHICSRESETSTATUSKHR)();
        typedef GLuint64 (STDCALL *PFNGLGETIMAGEHANDLENV)(TextureId texture, GLint level, GLboolean layered, GLint layer, uint32_t format);
        typedef void (STDCALL *PFNGLGETINTEGER64VAPPLE)(uint32_t pname, GLint64* params);
        typedef void (STDCALL *PFNGLGETINTEGERI_VEXT)(uint32_t target, GLuint index, GLint* data);
        typedef void (STDCALL *PFNGLGETINTERNALFORMATSAMPLEIVNV)(uint32_t target, uint32_t internalformat, GLsizei samples, uint32_t pname, GLsizei bufSize, GLint* params);
        typedef void (STDCALL *PFNGLGETNEXTPERFQUERYIDINTEL)(GLuint queryId, GLuint* nextQueryId);
        typedef void (STDCALL *PFNGLGETOBJECTLABELEXT)(uint32_t type, GLuint object, GLsizei bufSize, GLsizei* length, GLchar* label);
        typedef void (STDCALL *PFNGLGETPATHCOMMANDSNV)(GLuint path, GLubyte* commands);
        typedef void (STDCALL *PFNGLGETPATHCOORDSNV)(GLuint path, GLfloat* coords);
        typedef void (STDCALL *PFNGLGETPATHDASHARRAYNV)(GLuint path, GLfloat* dashArray);
        typedef GLfloat (STDCALL *PFNGLGETPATHLENGTHNV)(GLuint path, GLsizei startSegment, GLsizei numSegments);
        typedef void (STDCALL *PFNGLGETPATHMETRICRANGENV)(uint32_t metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics);
        typedef void (STDCALL *PFNGLGETPATHMETRICSNV)(uint32_t metricQueryMask, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, GLsizei stride, GLfloat* metrics);
        typedef void (STDCALL *PFNGLGETPATHPARAMETERFVNV)(GLuint path, uint32_t pname, GLfloat* value);
        typedef void (STDCALL *PFNGLGETPATHPARAMETERIVNV)(GLuint path, uint32_t pname, GLint* value);
        typedef void (STDCALL *PFNGLGETPATHSPACINGNV)(uint32_t pathListMode, GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, uint32_t transformType, GLfloat* returnedSpacing);
        typedef void (STDCALL *PFNGLGETPERFCOUNTERINFOINTEL)(GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar* counterName, GLuint counterDescLength, GLchar* counterDesc, GLuint* counterOffset, GLuint* counterDataSize, GLuint* counterTypeEnum, GLuint* counterDataTypeEnum, GLuint64* rawCounterMaxValue);
        typedef void (STDCALL *PFNGLGETPERFMONITORCOUNTERDATAAMD)(GLuint monitor, uint32_t pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten);
        typedef void (STDCALL *PFNGLGETPERFMONITORCOUNTERINFOAMD)(GLuint group, GLuint counter, uint32_t pname, void* data);
        typedef void (STDCALL *PFNGLGETPERFMONITORCOUNTERSTRINGAMD)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString);
        typedef void (STDCALL *PFNGLGETPERFMONITORCOUNTERSAMD)(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters);
        typedef void (STDCALL *PFNGLGETPERFMONITORGROUPSTRINGAMD)(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString);
        typedef void (STDCALL *PFNGLGETPERFMONITORGROUPSAMD)(GLint* numGroups, GLsizei groupsSize, GLuint* groups);
        typedef void (STDCALL *PFNGLGETPERFQUERYDATAINTEL)(GLuint queryHandle, GLuint flag, GLsizei dataSize, GLvoid* data, GLuint* bytesWritten);
        typedef void (STDCALL *PFNGLGETPERFQUERYIDBYNAMEINTEL)(GLchar* queryName, GLuint* queryId);
        typedef void (STDCALL *PFNGLGETPERFQUERYINFOINTEL)(GLuint queryId, GLuint queryNameLength, GLchar* queryName, GLuint* dataSize, GLuint* noCounters, GLuint* noInstances, GLuint* capsMask);
        typedef void (STDCALL *PFNGLGETPROGRAMBINARYOES)(ProgramId program, GLsizei buffer_size, GLsizei* bytes_written, uint32_t* binary_format, void* binary);
        typedef void (STDCALL *PFNGLGETPROGRAMPIPELINEINFOLOGEXT)(PipelineId pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
        typedef void (STDCALL *PFNGLGETPROGRAMPIPELINEIVEXT)(PipelineId pipeline, uint32_t pname, GLint* params);
        typedef GLint (STDCALL *PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXT)(ProgramId program, uint32_t programInterface, const char* name);
        typedef void (STDCALL *PFNGLGETPROGRAMRESOURCEFVNV)(ProgramId program, uint32_t programInterface, GLuint index, GLsizei propCount, uint32_t* props, GLsizei bufSize, GLsizei* length, GLfloat* params);
        typedef void (STDCALL *PFNGLGETQUERYOBJECTI64VEXT)(QueryId query, uint32_t parameter, GLint64* value);
        typedef void (STDCALL *PFNGLGETQUERYOBJECTIVEXT)(QueryId query, uint32_t parameter, GLint* value);
        typedef void (STDCALL *PFNGLGETQUERYOBJECTUI64VEXT)(QueryId query, uint32_t parameter, GLuint64* value);
        typedef void (STDCALL *PFNGLGETQUERYOBJECTUIVEXT)(QueryId query, uint32_t parameter, GLuint* value);
        typedef void (STDCALL *PFNGLGETQUERYIVEXT)(uint32_t target, uint32_t parameter, GLint* value);
        typedef void (STDCALL *PFNGLGETSAMPLERPARAMETERIIVOES)(SamplerId sampler, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETSAMPLERPARAMETERIUIVOES)(SamplerId sampler, uint32_t pname, GLuint* params);
        typedef void (STDCALL *PFNGLGETSYNCIVAPPLE)(GLsync sync, uint32_t pname, GLsizei bufSize, GLsizei* length, GLint* values);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERIIVOES)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERIUIVOES)(uint32_t target, uint32_t pname, GLuint* params);
        typedef GLuint64 (STDCALL *PFNGLGETTEXTUREHANDLENV)(TextureId texture);
        typedef GLuint64 (STDCALL *PFNGLGETTEXTURESAMPLERHANDLENV)(TextureId texture, SamplerId sampler);
        typedef void (STDCALL *PFNGLGETTRANSLATEDSHADERSOURCEANGLE)(ShaderId shader, GLsizei bufsize, GLsizei* length, GLchar* source);
        typedef void (STDCALL *PFNGLGETNUNIFORMFVEXT)(ProgramId program, UniformLocation location, GLsizei bufSize, GLfloat* params);
        typedef void (STDCALL *PFNGLGETNUNIFORMFVKHR)(ProgramId program, UniformLocation location, GLsizei bufSize, GLfloat* params);
        typedef void (STDCALL *PFNGLGETNUNIFORMIVEXT)(ProgramId program, UniformLocation location, GLsizei bufSize, GLint* params);
        typedef void (STDCALL *PFNGLGETNUNIFORMIVKHR)(ProgramId program, UniformLocation location, GLsizei bufSize, GLint* params);
        typedef void (STDCALL *PFNGLGETNUNIFORMUIVKHR)(ProgramId program, UniformLocation location, GLsizei bufSize, GLuint* params);
        typedef void (STDCALL *PFNGLINSERTEVENTMARKEREXT)(GLsizei length, GLchar* marker);
        typedef void (STDCALL *PFNGLINTERPOLATEPATHSNV)(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
        typedef GLboolean (STDCALL *PFNGLISENABLEDINV)(uint32_t target, GLuint index);
        typedef GLboolean (STDCALL *PFNGLISENABLEDIOES)(uint32_t target, GLuint index);
        typedef GLboolean (STDCALL *PFNGLISFENCENV)(GLuint fence);
        typedef GLboolean (STDCALL *PFNGLISIMAGEHANDLERESIDENTNV)(GLuint64 handle);
        typedef GLboolean (STDCALL *PFNGLISPATHNV)(GLuint path);
        typedef GLboolean (STDCALL *PFNGLISPOINTINFILLPATHNV)(GLuint path, GLuint mask, GLfloat x, GLfloat y);
        typedef GLboolean (STDCALL *PFNGLISPOINTINSTROKEPATHNV)(GLuint path, GLfloat x, GLfloat y);
        typedef GLboolean (STDCALL *PFNGLISPROGRAMPIPELINEEXT)(PipelineId pipeline);
        typedef GLboolean (STDCALL *PFNGLISQUERYEXT)(QueryId query);
        typedef GLboolean (STDCALL *PFNGLISSYNCAPPLE)(GLsync sync);
        typedef GLboolean (STDCALL *PFNGLISTEXTUREHANDLERESIDENTNV)(GLuint64 handle);
        typedef GLboolean (STDCALL *PFNGLISVERTEXARRAYOES)(VertexArrayId array);
        typedef void (STDCALL *PFNGLLABELOBJECTEXT)(uint32_t type, GLuint object, GLsizei length, GLchar* label);
        typedef void (STDCALL *PFNGLMAKEIMAGEHANDLENONRESIDENTNV)(GLuint64 handle);
        typedef void (STDCALL *PFNGLMAKEIMAGEHANDLERESIDENTNV)(GLuint64 handle, uint32_t access);
        typedef void (STDCALL *PFNGLMAKETEXTUREHANDLENONRESIDENTNV)(GLuint64 handle);
        typedef void (STDCALL *PFNGLMAKETEXTUREHANDLERESIDENTNV)(GLuint64 handle);
        typedef void* (STDCALL *PFNGLMAPBUFFEROES)(uint32_t target, uint32_t access);
        typedef void* (STDCALL *PFNGLMAPBUFFERRANGEEXT)(uint32_t target, GLintptr offset, GLsizeiptr length, uint32_t access);
        typedef void (STDCALL *PFNGLMATRIXLOAD3X2FNV)(uint32_t matrixMode, GLfloat* m);
        typedef void (STDCALL *PFNGLMATRIXLOAD3X3FNV)(uint32_t matrixMode, GLfloat* m);
        typedef void (STDCALL *PFNGLMATRIXLOADTRANSPOSE3X3FNV)(uint32_t matrixMode, GLfloat* m);
        typedef void (STDCALL *PFNGLMATRIXMULT3X2FNV)(uint32_t matrixMode, GLfloat* m);
        typedef void (STDCALL *PFNGLMATRIXMULT3X3FNV)(uint32_t matrixMode, GLfloat* m);
        typedef void (STDCALL *PFNGLMATRIXMULTTRANSPOSE3X3FNV)(uint32_t matrixMode, GLfloat* m);
        typedef void (STDCALL *PFNGLMULTIDRAWARRAYSEXT)(uint32_t mode, GLint* first, GLsizei* count, GLsizei primcount);
        typedef void (STDCALL *PFNGLMULTIDRAWARRAYSINDIRECTEXT)(uint32_t mode, void* indirect, GLsizei drawcount, GLsizei stride);
        typedef void (STDCALL *PFNGLMULTIDRAWELEMENTSBASEVERTEXEXT)(uint32_t mode, GLsizei* count, uint32_t type, void** indices, GLsizei primcount, GLint* basevertex);
        typedef void (STDCALL *PFNGLMULTIDRAWELEMENTSBASEVERTEXOES)(uint32_t mode, GLsizei* count, uint32_t type, void** indices, GLsizei primcount, GLint* basevertex);
        typedef void (STDCALL *PFNGLMULTIDRAWELEMENTSEXT)(uint32_t mode, GLsizei* count, uint32_t type, void** indices, GLsizei primcount);
        typedef void (STDCALL *PFNGLMULTIDRAWELEMENTSINDIRECTEXT)(uint32_t mode, uint32_t type, void* indirect, GLsizei drawcount, GLsizei stride);
        typedef void (STDCALL *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNV)(FramebufferId framebuffer, GLuint start, GLsizei count, GLfloat* v);
        typedef void (STDCALL *PFNGLPATCHPARAMETERIOES)(uint32_t pname, GLint value);
        typedef void (STDCALL *PFNGLPATHCOMMANDSNV)(GLuint path, GLsizei numCommands, GLubyte* commands, GLsizei numCoords, uint32_t coordType, void* coords);
        typedef void (STDCALL *PFNGLPATHCOORDSNV)(GLuint path, GLsizei numCoords, uint32_t coordType, void* coords);
        typedef void (STDCALL *PFNGLPATHCOVERDEPTHFUNCNV)(uint32_t func);
        typedef void (STDCALL *PFNGLPATHDASHARRAYNV)(GLuint path, GLsizei dashCount, GLfloat* dashArray);
        typedef uint32_t (STDCALL *PFNGLPATHGLYPHINDEXARRAYNV)(GLuint firstPathName, uint32_t fontTarget, void* fontName, uint32_t fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
        typedef uint32_t (STDCALL *PFNGLPATHGLYPHINDEXRANGENV)(uint32_t fontTarget, void* fontName, uint32_t fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount);
        typedef void (STDCALL *PFNGLPATHGLYPHRANGENV)(GLuint firstPathName, uint32_t fontTarget, void* fontName, uint32_t fontStyle, GLuint firstGlyph, GLsizei numGlyphs, uint32_t handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
        typedef void (STDCALL *PFNGLPATHGLYPHSNV)(GLuint firstPathName, uint32_t fontTarget, void* fontName, uint32_t fontStyle, GLsizei numGlyphs, uint32_t type, void* charcodes, uint32_t handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
        typedef uint32_t (STDCALL *PFNGLPATHMEMORYGLYPHINDEXARRAYNV)(GLuint firstPathName, uint32_t fontTarget, GLsizeiptr fontSize, void* fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
        typedef void (STDCALL *PFNGLPATHPARAMETERFNV)(GLuint path, uint32_t pname, GLfloat value);
        typedef void (STDCALL *PFNGLPATHPARAMETERFVNV)(GLuint path, uint32_t pname, GLfloat* value);
        typedef void (STDCALL *PFNGLPATHPARAMETERINV)(GLuint path, uint32_t pname, GLint value);
        typedef void (STDCALL *PFNGLPATHPARAMETERIVNV)(GLuint path, uint32_t pname, GLint* value);
        typedef void (STDCALL *PFNGLPATHSTENCILDEPTHOFFSETNV)(GLfloat factor, GLfloat units);
        typedef void (STDCALL *PFNGLPATHSTENCILFUNCNV)(uint32_t func, GLint ref, GLuint mask);
        typedef void (STDCALL *PFNGLPATHSTRINGNV)(GLuint path, uint32_t format, GLsizei length, void* pathString);
        typedef void (STDCALL *PFNGLPATHSUBCOMMANDSNV)(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, GLubyte* commands, GLsizei numCoords, uint32_t coordType, void* coords);
        typedef void (STDCALL *PFNGLPATHSUBCOORDSNV)(GLuint path, GLsizei coordStart, GLsizei numCoords, uint32_t coordType, void* coords);
        typedef GLboolean (STDCALL *PFNGLPOINTALONGPATHNV)(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat* y, GLfloat* tangentX, GLfloat* tangentY);
        typedef void (STDCALL *PFNGLPOLYGONMODENV)(uint32_t face, uint32_t mode);
        typedef void (STDCALL *PFNGLPOPGROUPMARKEREXT)();
        typedef void (STDCALL *PFNGLPRIMITIVEBOUNDINGBOXOES)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
        typedef void (STDCALL *PFNGLPROGRAMBINARYOES)(ProgramId program, uint32_t binary_format, void* binary, GLint binary_size);
        typedef void (STDCALL *PFNGLPROGRAMPARAMETERIEXT)(ProgramId program, uint32_t pname, GLint value);
        typedef void (STDCALL *PFNGLPROGRAMPATHFRAGMENTINPUTGENNV)(ProgramId program, GLint location, uint32_t genMode, GLint components, GLfloat* coeffs);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1FEXT)(ProgramId program, UniformLocation location, GLfloat v0);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1IEXT)(ProgramId program, UniformLocation location, GLint v0);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1IVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLint* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1UIEXT)(ProgramId program, UniformLocation location, GLuint v0);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1UIVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLuint* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2FEXT)(ProgramId program, UniformLocation location, GLfloat v0, GLfloat v1);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2IEXT)(ProgramId program, UniformLocation location, GLint v0, GLint v1);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2IVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLint* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2UIEXT)(ProgramId program, UniformLocation location, GLuint v0, GLuint v1);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2UIVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLuint* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3FEXT)(ProgramId program, UniformLocation location, GLfloat v0, GLfloat v1, GLfloat v2);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3IEXT)(ProgramId program, UniformLocation location, GLint v0, GLint v1, GLint v2);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3IVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLint* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3UIEXT)(ProgramId program, UniformLocation location, GLuint v0, GLuint v1, GLuint v2);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3UIVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLuint* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4FEXT)(ProgramId program, UniformLocation location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4IEXT)(ProgramId program, UniformLocation location, GLint v0, GLint v1, GLint v2, GLint v3);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4IVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLint* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4UIEXT)(ProgramId program, UniformLocation location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4UIVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLuint* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMHANDLEUI64NV)(ProgramId program, UniformLocation location, GLuint64 value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMHANDLEUI64VNV)(ProgramId program, UniformLocation location, GLsizei count, GLuint64* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX2FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX2X3FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX2X4FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX3FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX3X2FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX3X4FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX4FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX4X2FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX4X3FVEXT)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLPUSHGROUPMARKEREXT)(GLsizei length, GLchar* marker);
        typedef void (STDCALL *PFNGLQUERYCOUNTEREXT)(QueryId query, uint32_t target);
        typedef void (STDCALL *PFNGLRASTERSAMPLESEXT)(GLuint samples, GLboolean fixedsamplelocations);
        typedef void (STDCALL *PFNGLREADBUFFERINDEXEDEXT)(uint32_t src, GLint index);
        typedef void (STDCALL *PFNGLREADBUFFERNV)(uint32_t mode);
        typedef void (STDCALL *PFNGLREADNPIXELSEXT)(GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, GLsizei bufSize, void* data);
        typedef void (STDCALL *PFNGLREADNPIXELSKHR)(GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, GLsizei bufSize, void* data);
        typedef void (STDCALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLE)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLE)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXT)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLENV)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLRESOLVEDEPTHVALUESNV)();
        typedef void (STDCALL *PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLE)();
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERIIVOES)(SamplerId sampler, uint32_t pname, GLint* param);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERIUIVOES)(SamplerId sampler, uint32_t pname, GLuint* param);
        typedef void (STDCALL *PFNGLSCISSORARRAYVNV)(GLuint first, GLsizei count, GLint* v);
        typedef void (STDCALL *PFNGLSCISSORINDEXEDNV)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLSCISSORINDEXEDVNV)(GLuint index, GLint* v);
        typedef void (STDCALL *PFNGLSELECTPERFMONITORCOUNTERSAMD)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList);
        typedef void (STDCALL *PFNGLSETFENCENV)(GLuint fence, uint32_t condition);
        typedef void (STDCALL *PFNGLSTARTTILINGQCOM)(GLuint x, GLuint y, GLuint width, GLuint height, uint32_t preserveMask);
        typedef void (STDCALL *PFNGLSTENCILFILLPATHINSTANCEDNV)(GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, uint32_t fillMode, GLuint mask, uint32_t transformType, GLfloat* transformValues);
        typedef void (STDCALL *PFNGLSTENCILFILLPATHNV)(GLuint path, uint32_t fillMode, GLuint mask);
        typedef void (STDCALL *PFNGLSTENCILSTROKEPATHINSTANCEDNV)(GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, GLint reference, GLuint mask, uint32_t transformType, GLfloat* transformValues);
        typedef void (STDCALL *PFNGLSTENCILSTROKEPATHNV)(GLuint path, GLint reference, GLuint mask);
        typedef void (STDCALL *PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNV)(GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, uint32_t fillMode, GLuint mask, uint32_t coverMode, uint32_t transformType, GLfloat* transformValues);
        typedef void (STDCALL *PFNGLSTENCILTHENCOVERFILLPATHNV)(GLuint path, uint32_t fillMode, GLuint mask, uint32_t coverMode);
        typedef void (STDCALL *PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNV)(GLsizei numPaths, uint32_t pathNameType, void* paths, GLuint pathBase, GLint reference, GLuint mask, uint32_t coverMode, uint32_t transformType, GLfloat* transformValues);
        typedef void (STDCALL *PFNGLSTENCILTHENCOVERSTROKEPATHNV)(GLuint path, GLint reference, GLuint mask, uint32_t coverMode);
        typedef void (STDCALL *PFNGLSUBPIXELPRECISIONBIASNV)(GLuint xbits, GLuint ybits);
        typedef GLboolean (STDCALL *PFNGLTESTFENCENV)(GLuint fence);
        typedef void (STDCALL *PFNGLTEXBUFFEROES)(uint32_t target, uint32_t internalformat, BufferId buffer);
        typedef void (STDCALL *PFNGLTEXBUFFERRANGEOES)(uint32_t target, uint32_t internalformat, BufferId buffer, GLintptr offset, GLsizeiptr size);
        typedef void (STDCALL *PFNGLTEXIMAGE3DOES)(uint32_t target, GLint level, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, uint32_t format, uint32_t type, TexturePointer pixels);
        typedef void (STDCALL *PFNGLTEXPAGECOMMITMENTEXT)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
        typedef void (STDCALL *PFNGLTEXPARAMETERIIVOES)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLTEXPARAMETERIUIVOES)(uint32_t target, uint32_t pname, GLuint* params);
        typedef void (STDCALL *PFNGLTEXSTORAGE1DEXT)(uint32_t target, GLsizei levels, uint32_t format, GLsizei width);
        typedef void (STDCALL *PFNGLTEXSTORAGE2DEXT)(uint32_t target, GLsizei levels, uint32_t format, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLTEXSTORAGE3DEXT)(uint32_t target, GLsizei levels, uint32_t format, GLsizei width, GLsizei height, GLsizei depth);
        typedef void (STDCALL *PFNGLTEXSUBIMAGE3DOES)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, uint32_t type, TexturePointer pixels);
        typedef void (STDCALL *PFNGLTEXTURESTORAGE1DEXT)(TextureId texture, uint32_t target, GLsizei levels, uint32_t format, GLsizei width);
        typedef void (STDCALL *PFNGLTEXTURESTORAGE2DEXT)(TextureId texture, uint32_t target, GLsizei levels, uint32_t format, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLTEXTURESTORAGE3DEXT)(TextureId texture, uint32_t target, GLsizei levels, uint32_t format, GLsizei width, GLsizei height, GLsizei depth);
        typedef void (STDCALL *PFNGLTEXTUREVIEWEXT)(TextureId texture, uint32_t target, GLuint origtexture, uint32_t internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
        typedef void (STDCALL *PFNGLTEXTUREVIEWOES)(TextureId texture, uint32_t target, GLuint origtexture, uint32_t internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
        typedef void (STDCALL *PFNGLTRANSFORMPATHNV)(GLuint resultPath, GLuint srcPath, uint32_t transformType, GLfloat* transformValues);
        typedef void (STDCALL *PFNGLUNIFORMHANDLEUI64NV)(UniformLocation location, GLuint64 value);
        typedef void (STDCALL *PFNGLUNIFORMHANDLEUI64VNV)(UniformLocation location, GLsizei count, GLuint64* value);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX2X3FVNV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX2X4FVNV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX3X2FVNV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX3X4FVNV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX4X2FVNV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX4X3FVNV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* value);
        typedef GLboolean (STDCALL *PFNGLUNMAPBUFFEROES)(uint32_t target);
        typedef void (STDCALL *PFNGLUSEPROGRAMSTAGESEXT)(PipelineId pipeline, uint32_t stages, ProgramId program);
        typedef void (STDCALL *PFNGLVALIDATEPROGRAMPIPELINEEXT)(PipelineId pipeline);
        typedef void (STDCALL *PFNGLVERTEXATTRIBDIVISORANGLE)(AttributeLocation index, GLuint divisor);
        typedef void (STDCALL *PFNGLVERTEXATTRIBDIVISOREXT)(AttributeLocation index, GLuint divisor);
        typedef void (STDCALL *PFNGLVERTEXATTRIBDIVISORNV)(AttributeLocation index, GLuint divisor);
        typedef void (STDCALL *PFNGLVIEWPORTARRAYVNV)(GLuint first, GLsizei count, GLfloat* v);
        typedef void (STDCALL *PFNGLVIEWPORTINDEXEDFNV)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
        typedef void (STDCALL *PFNGLVIEWPORTINDEXEDFVNV)(GLuint index, GLfloat* v);
        typedef void (STDCALL *PFNGLWAITSYNCAPPLE)(GLsync sync, uint32_t flag, GLuint64 timeout);
        typedef void (STDCALL *PFNGLWEIGHTPATHSNV)(GLuint resultPath, GLsizei numPaths, GLuint* paths, GLfloat* weights);
        typedef void (STDCALL *PFNGLBLENDBARRIER)();
        typedef void (STDCALL *PFNGLBLENDCOLOR)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
        typedef void (STDCALL *PFNGLBLENDEQUATION)(uint32_t equation);
        typedef void (STDCALL *PFNGLBLENDEQUATIONSEPARATE)(uint32_t rgb, uint32_t alpha);
        typedef void (STDCALL *PFNGLBLENDEQUATIONSEPARATEI)(DrawBufferIndex buf, uint32_t modeRGB, uint32_t modeAlpha);
        typedef void (STDCALL *PFNGLBLENDEQUATIONI)(DrawBufferIndex buf, uint32_t mode);
        typedef void (STDCALL *PFNGLBLENDFUNC)(uint32_t src_factor, uint32_t dst_factor);
        typedef void (STDCALL *PFNGLBLENDFUNCSEPARATE)(uint32_t src_factor_rgb, uint32_t dst_factor_rgb, uint32_t src_factor_alpha, uint32_t dst_factor_alpha);
        typedef void (STDCALL *PFNGLBLENDFUNCSEPARATEI)(DrawBufferIndex buf, uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
        typedef void (STDCALL *PFNGLBLENDFUNCI)(DrawBufferIndex buf, uint32_t src, uint32_t dst);
        typedef void (STDCALL *PFNGLDEPTHFUNC)(uint32_t function);
        typedef void (STDCALL *PFNGLSAMPLECOVERAGE)(GLfloat value, GLboolean invert);
        typedef void (STDCALL *PFNGLSAMPLEMASKI)(GLuint maskNumber, uint32_t mask);
        typedef void (STDCALL *PFNGLSCISSOR)(GLint x, GLint y, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLSTENCILFUNC)(uint32_t func, GLint ref, GLuint mask);
        typedef void (STDCALL *PFNGLSTENCILFUNCSEPARATE)(uint32_t face, uint32_t function, GLint reference_value, GLuint mask);
        typedef void (STDCALL *PFNGLSTENCILOP)(uint32_t fail, uint32_t zfail, uint32_t zpass);
        typedef void (STDCALL *PFNGLSTENCILOPSEPARATE)(uint32_t face, uint32_t stencil_fail, uint32_t stencil_pass_depth_fail, uint32_t stencil_pass_depth_pass);
        typedef void (STDCALL *PFNGLBINDFRAMEBUFFER)(uint32_t target, FramebufferId framebuffer);
        typedef void (STDCALL *PFNGLBINDRENDERBUFFER)(uint32_t target, RenderbufferId renderbuffer);
        typedef void (STDCALL *PFNGLBLITFRAMEBUFFER)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, uint32_t mask, uint32_t filter);
        typedef uint32_t (STDCALL *PFNGLCHECKFRAMEBUFFERSTATUS)(uint32_t target);
        typedef void (STDCALL *PFNGLCLEAR)(uint32_t mask);
        typedef void (STDCALL *PFNGLCLEARBUFFERFI)(uint32_t buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
        typedef void (STDCALL *PFNGLCLEARBUFFERFV)(uint32_t buffer, GLint drawbuffer, GLfloat* value);
        typedef void (STDCALL *PFNGLCLEARBUFFERIV)(uint32_t buffer, GLint drawbuffer, GLint* value);
        typedef void (STDCALL *PFNGLCLEARBUFFERUIV)(uint32_t buffer, GLint drawbuffer, GLuint* value);
        typedef void (STDCALL *PFNGLCLEARCOLOR)(GLfloat r, GLfloat g, GLfloat b, GLfloat a);
        typedef void (STDCALL *PFNGLCLEARDEPTHF)(GLfloat depth);
        typedef void (STDCALL *PFNGLCLEARSTENCIL)(GLint stencil);
        typedef void (STDCALL *PFNGLCOLORMASK)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
        typedef void (STDCALL *PFNGLCOLORMASKI)(DrawBufferIndex index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
        typedef void (STDCALL *PFNGLDELETEFRAMEBUFFERS)(GLsizei count, FramebufferId* framebuffers);
        typedef void (STDCALL *PFNGLDELETERENDERBUFFERS)(GLsizei count, RenderbufferId* renderbuffers);
        typedef void (STDCALL *PFNGLDEPTHMASK)(GLboolean enabled);
        typedef void (STDCALL *PFNGLDRAWBUFFERS)(GLsizei n, uint32_t* bufs);
        typedef void (STDCALL *PFNGLFRAMEBUFFERPARAMETERI)(uint32_t target, uint32_t pname, GLint param);
        typedef void (STDCALL *PFNGLFRAMEBUFFERRENDERBUFFER)(uint32_t framebuffer_target, uint32_t framebuffer_attachment, uint32_t renderbuffer_target, RenderbufferId renderbuffer);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTURE)(uint32_t target, uint32_t attachment, TextureId texture, GLint level);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTURE2D)(uint32_t framebuffer_target, uint32_t framebuffer_attachment, uint32_t texture_target, TextureId texture, GLint level);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTURELAYER)(uint32_t target, uint32_t attachment, TextureId texture, GLint level, GLint layer);
        typedef void (STDCALL *PFNGLGENFRAMEBUFFERS)(GLsizei count, FramebufferId* framebuffers);
        typedef void (STDCALL *PFNGLGENRENDERBUFFERS)(GLsizei count, RenderbufferId* renderbuffers);
        typedef void (STDCALL *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV)(uint32_t framebuffer_target, uint32_t attachment, uint32_t parameter, GLint* value);
        typedef void (STDCALL *PFNGLGETFRAMEBUFFERPARAMETERIV)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETRENDERBUFFERPARAMETERIV)(uint32_t target, uint32_t parameter, GLint* values);
        typedef void (STDCALL *PFNGLINVALIDATEFRAMEBUFFER)(uint32_t target, GLsizei count, uint32_t* attachments);
        typedef void (STDCALL *PFNGLINVALIDATESUBFRAMEBUFFER)(uint32_t target, GLsizei numAttachments, uint32_t* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
        typedef GLboolean (STDCALL *PFNGLISFRAMEBUFFER)(FramebufferId framebuffer);
        typedef GLboolean (STDCALL *PFNGLISRENDERBUFFER)(RenderbufferId renderbuffer);
        typedef void (STDCALL *PFNGLREADBUFFER)(uint32_t src);
        typedef void (STDCALL *PFNGLREADPIXELS)(GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, void* data);
        typedef void (STDCALL *PFNGLREADNPIXELS)(GLint x, GLint y, GLsizei width, GLsizei height, uint32_t format, uint32_t type, GLsizei bufSize, void* data);
        typedef void (STDCALL *PFNGLRENDERBUFFERSTORAGE)(uint32_t target, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLE)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLSTENCILMASK)(GLuint mask);
        typedef void (STDCALL *PFNGLSTENCILMASKSEPARATE)(uint32_t face, GLuint mask);
        typedef void (STDCALL *PFNGLDISABLE)(uint32_t capability);
        typedef void (STDCALL *PFNGLDISABLEI)(uint32_t capability, GLuint index);
        typedef void (STDCALL *PFNGLENABLE)(uint32_t capability);
        typedef void (STDCALL *PFNGLENABLEI)(uint32_t capability, GLuint index);
        typedef void (STDCALL *PFNGLFINISH)();
        typedef void (STDCALL *PFNGLFLUSH)();
        typedef void (STDCALL *PFNGLFLUSHMAPPEDBUFFERRANGE)(uint32_t target, GLintptr offset, GLsizeiptr length);
        typedef uint32_t (STDCALL *PFNGLGETERROR)();
        typedef uint32_t (STDCALL *PFNGLGETGRAPHICSRESETSTATUS)();
        typedef void (STDCALL *PFNGLHINT)(uint32_t target, uint32_t mode);
        typedef void (STDCALL *PFNGLACTIVESHADERPROGRAM)(PipelineId pipeline, ProgramId program);
        typedef void (STDCALL *PFNGLATTACHSHADER)(ProgramId program, ShaderId shader);
        typedef void (STDCALL *PFNGLBINDATTRIBLOCATION)(ProgramId program, AttributeLocation location, const char* name);
        typedef void (STDCALL *PFNGLBINDPROGRAMPIPELINE)(PipelineId pipeline);
        typedef void (STDCALL *PFNGLCOMPILESHADER)(ShaderId shader);
        typedef ProgramId (STDCALL *PFNGLCREATEPROGRAM)();
        typedef ShaderId (STDCALL *PFNGLCREATESHADER)(uint32_t type);
        typedef ProgramId (STDCALL *PFNGLCREATESHADERPROGRAMV)(uint32_t type, GLsizei count, GLchar** strings);
        typedef void (STDCALL *PFNGLDELETEPROGRAM)(ProgramId program);
        typedef void (STDCALL *PFNGLDELETEPROGRAMPIPELINES)(GLsizei n, PipelineId* pipelines);
        typedef void (STDCALL *PFNGLDELETESHADER)(ShaderId shader);
        typedef void (STDCALL *PFNGLDETACHSHADER)(ProgramId program, ShaderId shader);
        typedef void (STDCALL *PFNGLDISPATCHCOMPUTE)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
        typedef void (STDCALL *PFNGLDISPATCHCOMPUTEINDIRECT)(GLintptr indirect);
        typedef void (STDCALL *PFNGLGENPROGRAMPIPELINES)(GLsizei n, PipelineId* pipelines);
        typedef void (STDCALL *PFNGLGETACTIVEATTRIB)(ProgramId program, AttributeIndex index, GLsizei buffer_size, GLsizei* buffer_bytes_written, GLint* vector_count, uint32_t* type, GLchar* name);
        typedef void (STDCALL *PFNGLGETACTIVEUNIFORM)(ProgramId program, UniformIndex index, GLsizei buffer_size, GLsizei* buffer_bytes_written, GLint* vector_count, uint32_t* type, GLchar* name);
        typedef void (STDCALL *PFNGLGETACTIVEUNIFORMBLOCKNAME)(ProgramId program, UniformBlockId uniform_block_index, GLsizei buffer_size, GLsizei* buffer_bytes_written, GLchar* name);
        typedef void (STDCALL *PFNGLGETACTIVEUNIFORMBLOCKIV)(ProgramId program, UniformBlockId uniform_block_index, uint32_t parameter_name, GLint* parameters);
        typedef void (STDCALL *PFNGLGETACTIVEUNIFORMSIV)(ProgramId program, GLsizei uniform_count, UniformIndex* uniform_indices, uint32_t parameter_name, GLint* parameters);
        typedef void (STDCALL *PFNGLGETATTACHEDSHADERS)(ProgramId program, GLsizei buffer_length, GLsizei* shaders_length_written, ShaderId* shaders);
        typedef GLint (STDCALL *PFNGLGETATTRIBLOCATION)(ProgramId program, const char* name);
        typedef GLint (STDCALL *PFNGLGETFRAGDATALOCATION)(ProgramId program, const char* name);
        typedef void (STDCALL *PFNGLGETPROGRAMBINARY)(ProgramId program, GLsizei bufSize, GLsizei* length, uint32_t* binaryFormat, void* binary);
        typedef void (STDCALL *PFNGLGETPROGRAMINFOLOG)(ProgramId program, GLsizei buffer_length, GLsizei* string_length_written, GLchar* info);
        typedef void (STDCALL *PFNGLGETPROGRAMINTERFACEIV)(ProgramId program, uint32_t programInterface, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETPROGRAMPIPELINEINFOLOG)(PipelineId pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
        typedef void (STDCALL *PFNGLGETPROGRAMPIPELINEIV)(PipelineId pipeline, uint32_t pname, GLint* params);
        typedef GLuint (STDCALL *PFNGLGETPROGRAMRESOURCEINDEX)(ProgramId program, uint32_t programInterface, const char* name);
        typedef GLint (STDCALL *PFNGLGETPROGRAMRESOURCELOCATION)(ProgramId program, uint32_t programInterface, const char* name);
        typedef void (STDCALL *PFNGLGETPROGRAMRESOURCENAME)(ProgramId program, uint32_t programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
        typedef void (STDCALL *PFNGLGETPROGRAMRESOURCEIV)(ProgramId program, uint32_t programInterface, GLuint index, GLsizei propCount, uint32_t* props, GLsizei bufSize, GLsizei* length, GLint* params);
        typedef void (STDCALL *PFNGLGETPROGRAMIV)(ProgramId program, uint32_t parameter, GLint* value);
        typedef void (STDCALL *PFNGLGETSHADERINFOLOG)(ShaderId shader, GLsizei buffer_length, GLsizei* string_length_written, GLchar* info);
        typedef void (STDCALL *PFNGLGETSHADERPRECISIONFORMAT)(uint32_t shader_type, uint32_t precision_type, GLint* range, GLint* precision);
        typedef void (STDCALL *PFNGLGETSHADERSOURCE)(ShaderId shader, GLsizei buffer_length, GLsizei* string_length_written, GLchar* source);
        typedef void (STDCALL *PFNGLGETSHADERIV)(ShaderId shader, uint32_t parameter, GLint* value);
        typedef UniformBlockId (STDCALL *PFNGLGETUNIFORMBLOCKINDEX)(ProgramId program, const char* uniformBlockName);
        typedef void (STDCALL *PFNGLGETUNIFORMINDICES)(ProgramId program, GLsizei uniformCount, GLchar** uniformNames, UniformIndex* uniformIndices);
        typedef UniformLocation (STDCALL *PFNGLGETUNIFORMLOCATION)(ProgramId program, const char* name);
        typedef void (STDCALL *PFNGLGETUNIFORMFV)(ProgramId program, UniformLocation location, GLfloat* values);
        typedef void (STDCALL *PFNGLGETUNIFORMIV)(ProgramId program, UniformLocation location, GLint* values);
        typedef void (STDCALL *PFNGLGETUNIFORMUIV)(ProgramId program, UniformLocation location, GLuint* values);
        typedef void (STDCALL *PFNGLGETNUNIFORMFV)(ProgramId program, UniformLocation location, GLsizei bufSize, GLfloat* values);
        typedef void (STDCALL *PFNGLGETNUNIFORMIV)(ProgramId program, UniformLocation location, GLsizei bufSize, GLint* values);
        typedef void (STDCALL *PFNGLGETNUNIFORMUIV)(ProgramId program, UniformLocation location, GLsizei bufSize, GLuint* values);
        typedef GLboolean (STDCALL *PFNGLISPROGRAM)(ProgramId program);
        typedef GLboolean (STDCALL *PFNGLISPROGRAMPIPELINE)(PipelineId pipeline);
        typedef GLboolean (STDCALL *PFNGLISSHADER)(ShaderId shader);
        typedef void (STDCALL *PFNGLLINKPROGRAM)(ProgramId program);
        typedef void (STDCALL *PFNGLMEMORYBARRIER)(uint32_t barriers);
        typedef void (STDCALL *PFNGLMEMORYBARRIERBYREGION)(uint32_t barriers);
        typedef void (STDCALL *PFNGLPROGRAMBINARY)(ProgramId program, uint32_t binaryFormat, void* binary, GLsizei length);
        typedef void (STDCALL *PFNGLPROGRAMPARAMETERI)(ProgramId program, uint32_t pname, GLint value);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1F)(ProgramId program, UniformLocation location, GLfloat value0);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1FV)(ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1I)(ProgramId program, UniformLocation location, GLint value0);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1IV)(ProgramId program, UniformLocation location, GLsizei count, GLint* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1UI)(ProgramId program, UniformLocation location, GLuint value0);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM1UIV)(ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2F)(ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2FV)(ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2I)(ProgramId program, UniformLocation location, GLint value0, GLint value1);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2IV)(ProgramId program, UniformLocation location, GLsizei count, GLint* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2UI)(ProgramId program, UniformLocation location, GLuint value0, GLuint value1);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM2UIV)(ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3F)(ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3FV)(ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3I)(ProgramId program, UniformLocation location, GLint value0, GLint value1, GLint value2);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3IV)(ProgramId program, UniformLocation location, GLsizei count, GLint* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3UI)(ProgramId program, UniformLocation location, GLuint value0, GLuint value1, GLuint value2);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM3UIV)(ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4F)(ProgramId program, UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2, GLfloat value3);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4FV)(ProgramId program, UniformLocation location, GLsizei count, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4I)(ProgramId program, UniformLocation location, GLint value0, GLint value1, GLint value2, GLint value3);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4IV)(ProgramId program, UniformLocation location, GLsizei count, GLint* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4UI)(ProgramId program, UniformLocation location, GLuint value0, GLuint value1, GLuint value2, GLuint value3);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORM4UIV)(ProgramId program, UniformLocation location, GLsizei count, GLuint* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX2FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX2X3FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX2X4FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX3FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX3X2FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX3X4FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX4FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX4X2FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLPROGRAMUNIFORMMATRIX4X3FV)(ProgramId program, UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLRELEASESHADERCOMPILER)();
        typedef void (STDCALL *PFNGLSHADERBINARY)(GLsizei count, ShaderId* shaders, uint32_t binary_format, void* binary, GLsizei binary_size);
        typedef void (STDCALL *PFNGLSHADERSOURCE)(ShaderId shader, GLsizei count, GLchar** source, GLint* length);
        typedef void (STDCALL *PFNGLUNIFORM1F)(UniformLocation location, GLfloat value);
        typedef void (STDCALL *PFNGLUNIFORM1FV)(UniformLocation location, GLsizei count, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORM1I)(UniformLocation location, GLint value);
        typedef void (STDCALL *PFNGLUNIFORM1IV)(UniformLocation location, GLsizei count, GLint* values);
        typedef void (STDCALL *PFNGLUNIFORM1UI)(UniformLocation location, GLuint value0);
        typedef void (STDCALL *PFNGLUNIFORM1UIV)(UniformLocation location, GLsizei count, GLuint* values);
        typedef void (STDCALL *PFNGLUNIFORM2F)(UniformLocation location, GLfloat value0, GLfloat value1);
        typedef void (STDCALL *PFNGLUNIFORM2FV)(UniformLocation location, GLsizei count, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORM2I)(UniformLocation location, GLint value0, GLint value1);
        typedef void (STDCALL *PFNGLUNIFORM2IV)(UniformLocation location, GLsizei count, GLint* values);
        typedef void (STDCALL *PFNGLUNIFORM2UI)(UniformLocation location, GLuint value0, GLuint value1);
        typedef void (STDCALL *PFNGLUNIFORM2UIV)(UniformLocation location, GLsizei count, GLuint* values);
        typedef void (STDCALL *PFNGLUNIFORM3F)(UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2);
        typedef void (STDCALL *PFNGLUNIFORM3FV)(UniformLocation location, GLsizei count, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORM3I)(UniformLocation location, GLint value0, GLint value1, GLint value2);
        typedef void (STDCALL *PFNGLUNIFORM3IV)(UniformLocation location, GLsizei count, GLint* values);
        typedef void (STDCALL *PFNGLUNIFORM3UI)(UniformLocation location, GLuint value0, GLuint value1, GLuint value2);
        typedef void (STDCALL *PFNGLUNIFORM3UIV)(UniformLocation location, GLsizei count, GLuint* values);
        typedef void (STDCALL *PFNGLUNIFORM4F)(UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2, GLfloat value3);
        typedef void (STDCALL *PFNGLUNIFORM4FV)(UniformLocation location, GLsizei count, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORM4I)(UniformLocation location, GLint value0, GLint value1, GLint value2, GLint value3);
        typedef void (STDCALL *PFNGLUNIFORM4IV)(UniformLocation location, GLsizei count, GLint* values);
        typedef void (STDCALL *PFNGLUNIFORM4UI)(UniformLocation location, GLuint value0, GLuint value1, GLuint value2, GLuint value3);
        typedef void (STDCALL *PFNGLUNIFORM4UIV)(UniformLocation location, GLsizei count, GLuint* values);
        typedef void (STDCALL *PFNGLUNIFORMBLOCKBINDING)(ProgramId program, UniformBlockId uniform_block_index, GLuint uniform_block_binding);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX2FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX2X3FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX2X4FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX3FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX3X2FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX3X4FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX4FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX4X2FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUNIFORMMATRIX4X3FV)(UniformLocation location, GLsizei count, GLboolean transpose, GLfloat* values);
        typedef void (STDCALL *PFNGLUSEPROGRAM)(ProgramId program);
        typedef void (STDCALL *PFNGLUSEPROGRAMSTAGES)(PipelineId pipeline, uint32_t stages, ProgramId program);
        typedef void (STDCALL *PFNGLVALIDATEPROGRAM)(ProgramId program);
        typedef void (STDCALL *PFNGLVALIDATEPROGRAMPIPELINE)(PipelineId pipeline);
        typedef void (STDCALL *PFNGLCULLFACE)(uint32_t mode);
        typedef void (STDCALL *PFNGLDEPTHRANGEF)(GLfloat near, GLfloat far);
        typedef void (STDCALL *PFNGLFRONTFACE)(uint32_t orientation);
        typedef void (STDCALL *PFNGLGETMULTISAMPLEFV)(uint32_t pname, GLuint index, GLfloat* val);
        typedef void (STDCALL *PFNGLLINEWIDTH)(GLfloat width);
        typedef void (STDCALL *PFNGLMINSAMPLESHADING)(GLfloat value);
        typedef void (STDCALL *PFNGLPOLYGONOFFSET)(GLfloat scale_factor, GLfloat units);
        typedef void (STDCALL *PFNGLVIEWPORT)(GLint x, GLint y, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLGETBOOLEANI_V)(uint32_t param, GLuint index, GLboolean* values);
        typedef void (STDCALL *PFNGLGETBOOLEANV)(uint32_t param, GLboolean* values);
        typedef void (STDCALL *PFNGLGETFLOATV)(uint32_t param, GLfloat* values);
        typedef void (STDCALL *PFNGLGETINTEGER64I_V)(uint32_t param, GLuint index, GLint64* values);
        typedef void (STDCALL *PFNGLGETINTEGER64V)(uint32_t param, GLint64* values);
        typedef void (STDCALL *PFNGLGETINTEGERI_V)(uint32_t param, GLuint index, GLint* values);
        typedef void (STDCALL *PFNGLGETINTEGERV)(uint32_t param, GLint* values);
        typedef void (STDCALL *PFNGLGETINTERNALFORMATIV)(uint32_t target, uint32_t internalformat, uint32_t pname, GLsizei bufSize, GLint* params);
        typedef GLubyte* (STDCALL *PFNGLGETSTRING)(uint32_t param);
        typedef GLubyte* (STDCALL *PFNGLGETSTRINGI)(uint32_t name, GLuint index);
        typedef GLboolean (STDCALL *PFNGLISENABLED)(uint32_t capability);
        typedef GLboolean (STDCALL *PFNGLISENABLEDI)(uint32_t capability, GLuint index);
        typedef uint32_t (STDCALL *PFNGLCLIENTWAITSYNC)(GLsync sync, uint32_t syncFlags, GLuint64 timeout);
        typedef void (STDCALL *PFNGLDELETESYNC)(GLsync sync);
        typedef GLsync (STDCALL *PFNGLFENCESYNC)(uint32_t condition, uint32_t syncFlags);
        typedef void (STDCALL *PFNGLGETSYNCIV)(GLsync sync, uint32_t pname, GLsizei bufSize, GLsizei* length, GLint* values);
        typedef GLboolean (STDCALL *PFNGLISSYNC)(GLsync sync);
        typedef void (STDCALL *PFNGLWAITSYNC)(GLsync sync, uint32_t syncFlags, GLuint64 timeout);
        typedef void (STDCALL *PFNGLACTIVETEXTURE)(uint32_t unit);
        typedef void (STDCALL *PFNGLBINDIMAGETEXTURE)(GLuint unit, TextureId texture, GLint level, GLboolean layered, GLint layer, uint32_t access, uint32_t format);
        typedef void (STDCALL *PFNGLBINDSAMPLER)(GLuint index, SamplerId sampler);
        typedef void (STDCALL *PFNGLBINDTEXTURE)(uint32_t target, TextureId texture);
        typedef void (STDCALL *PFNGLCOMPRESSEDTEXIMAGE2D)(uint32_t target, GLint level, uint32_t format, GLsizei width, GLsizei height, GLint border, GLsizei image_size, TexturePointer data);
        typedef void (STDCALL *PFNGLCOMPRESSEDTEXIMAGE3D)(uint32_t target, GLint level, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei image_size, TexturePointer data);
        typedef void (STDCALL *PFNGLCOMPRESSEDTEXSUBIMAGE2D)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, uint32_t format, GLsizei image_size, TexturePointer data);
        typedef void (STDCALL *PFNGLCOMPRESSEDTEXSUBIMAGE3D)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, GLsizei image_size, TexturePointer data);
        typedef void (STDCALL *PFNGLCOPYIMAGESUBDATA)(GLuint srcName, uint32_t srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, uint32_t dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
        typedef void (STDCALL *PFNGLCOPYTEXIMAGE2D)(uint32_t target, GLint level, uint32_t format, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
        typedef void (STDCALL *PFNGLCOPYTEXSUBIMAGE2D)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLCOPYTEXSUBIMAGE3D)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLDELETESAMPLERS)(GLsizei count, SamplerId* samplers);
        typedef void (STDCALL *PFNGLDELETETEXTURES)(GLsizei count, TextureId* textures);
        typedef void (STDCALL *PFNGLGENSAMPLERS)(GLsizei count, SamplerId* samplers);
        typedef void (STDCALL *PFNGLGENTEXTURES)(GLsizei count, TextureId* textures);
        typedef void (STDCALL *PFNGLGENERATEMIPMAP)(uint32_t target);
        typedef void (STDCALL *PFNGLGETSAMPLERPARAMETERIIV)(SamplerId sampler, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETSAMPLERPARAMETERIUIV)(SamplerId sampler, uint32_t pname, GLuint* params);
        typedef void (STDCALL *PFNGLGETSAMPLERPARAMETERFV)(SamplerId sampler, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLGETSAMPLERPARAMETERIV)(SamplerId sampler, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETTEXLEVELPARAMETERFV)(uint32_t target, GLint level, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLGETTEXLEVELPARAMETERIV)(uint32_t target, GLint level, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERIIV)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERIUIV)(uint32_t target, uint32_t pname, GLuint* params);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERFV)(uint32_t target, uint32_t parameter, GLfloat* values);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERIV)(uint32_t target, uint32_t parameter, GLint* values);
        typedef GLboolean (STDCALL *PFNGLISSAMPLER)(SamplerId sampler);
        typedef GLboolean (STDCALL *PFNGLISTEXTURE)(TextureId texture);
        typedef void (STDCALL *PFNGLPIXELSTOREI)(uint32_t parameter, GLint value);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERIIV)(SamplerId sampler, uint32_t pname, GLint* param);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERIUIV)(SamplerId sampler, uint32_t pname, GLuint* param);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERF)(SamplerId sampler, uint32_t pname, GLfloat param);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERFV)(SamplerId sampler, uint32_t pname, GLfloat* param);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERI)(SamplerId sampler, uint32_t pname, GLint param);
        typedef void (STDCALL *PFNGLSAMPLERPARAMETERIV)(SamplerId sampler, uint32_t pname, GLint* param);
        typedef void (STDCALL *PFNGLTEXBUFFER)(uint32_t target, uint32_t internalformat, BufferId buffer);
        typedef void (STDCALL *PFNGLTEXBUFFERRANGE)(uint32_t target, uint32_t internalformat, BufferId buffer, GLintptr offset, GLsizeiptr size);
        typedef void (STDCALL *PFNGLTEXIMAGE2D)(uint32_t target, GLint level, GLint internal_format, GLsizei width, GLsizei height, GLint border, uint32_t format, uint32_t type, TexturePointer data);
        typedef void (STDCALL *PFNGLTEXIMAGE3D)(uint32_t target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, uint32_t format, uint32_t type, TexturePointer data);
        typedef void (STDCALL *PFNGLTEXPARAMETERIIV)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLTEXPARAMETERIUIV)(uint32_t target, uint32_t pname, GLuint* params);
        typedef void (STDCALL *PFNGLTEXPARAMETERF)(uint32_t target, uint32_t parameter, GLfloat value);
        typedef void (STDCALL *PFNGLTEXPARAMETERFV)(uint32_t target, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLTEXPARAMETERI)(uint32_t target, uint32_t parameter, GLint value);
        typedef void (STDCALL *PFNGLTEXPARAMETERIV)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLTEXSTORAGE2D)(uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLTEXSTORAGE2DMULTISAMPLE)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
        typedef void (STDCALL *PFNGLTEXSTORAGE3D)(uint32_t target, GLsizei levels, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth);
        typedef void (STDCALL *PFNGLTEXSTORAGE3DMULTISAMPLE)(uint32_t target, GLsizei samples, uint32_t internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
        typedef void (STDCALL *PFNGLTEXSUBIMAGE2D)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, uint32_t format, uint32_t type, TexturePointer data);
        typedef void (STDCALL *PFNGLTEXSUBIMAGE3D)(uint32_t target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, uint32_t format, uint32_t type, TexturePointer data);
        typedef void (STDCALL *PFNGLBEGINTRANSFORMFEEDBACK)(uint32_t primitiveMode);
        typedef void (STDCALL *PFNGLBINDTRANSFORMFEEDBACK)(uint32_t target, TransformFeedbackId id);
        typedef void (STDCALL *PFNGLDELETETRANSFORMFEEDBACKS)(GLsizei n, TransformFeedbackId* ids);
        typedef void (STDCALL *PFNGLENDTRANSFORMFEEDBACK)();
        typedef void (STDCALL *PFNGLGENTRANSFORMFEEDBACKS)(GLsizei n, TransformFeedbackId* ids);
        typedef void (STDCALL *PFNGLGETTRANSFORMFEEDBACKVARYING)(ProgramId program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, uint32_t* type, GLchar* name);
        typedef GLboolean (STDCALL *PFNGLISTRANSFORMFEEDBACK)(TransformFeedbackId id);
        typedef void (STDCALL *PFNGLPAUSETRANSFORMFEEDBACK)();
        typedef void (STDCALL *PFNGLRESUMETRANSFORMFEEDBACK)();
        typedef void (STDCALL *PFNGLTRANSFORMFEEDBACKVARYINGS)(ProgramId program, GLsizei count, GLchar** varyings, uint32_t bufferMode);
        typedef void (STDCALL *PFNGLBINDVERTEXARRAY)(VertexArrayId array);
        typedef void (STDCALL *PFNGLBINDVERTEXBUFFER)(VertexBufferBindingIndex binding_index, BufferId buffer, GLintptr offset, GLsizei stride);
        typedef void (STDCALL *PFNGLDELETEVERTEXARRAYS)(GLsizei count, VertexArrayId* arrays);
        typedef void (STDCALL *PFNGLDISABLEVERTEXATTRIBARRAY)(AttributeLocation location);
        typedef void (STDCALL *PFNGLENABLEVERTEXATTRIBARRAY)(AttributeLocation location);
        typedef void (STDCALL *PFNGLGENVERTEXARRAYS)(GLsizei count, VertexArrayId* arrays);
        typedef void (STDCALL *PFNGLGETVERTEXATTRIBIIV)(AttributeLocation index, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETVERTEXATTRIBIUIV)(AttributeLocation index, uint32_t pname, GLuint* params);
        typedef void (STDCALL *PFNGLGETVERTEXATTRIBPOINTERV)(AttributeLocation index, uint32_t pname, void** pointer);
        typedef void (STDCALL *PFNGLGETVERTEXATTRIBFV)(AttributeLocation index, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLGETVERTEXATTRIBIV)(AttributeLocation index, uint32_t pname, GLint* params);
        typedef GLboolean (STDCALL *PFNGLISVERTEXARRAY)(VertexArrayId array);
        typedef void (STDCALL *PFNGLVERTEXATTRIB1F)(AttributeLocation location, GLfloat value0);
        typedef void (STDCALL *PFNGLVERTEXATTRIB1FV)(AttributeLocation location, GLfloat* value);
        typedef void (STDCALL *PFNGLVERTEXATTRIB2F)(AttributeLocation location, GLfloat value0, GLfloat value1);
        typedef void (STDCALL *PFNGLVERTEXATTRIB2FV)(AttributeLocation location, GLfloat* value);
        typedef void (STDCALL *PFNGLVERTEXATTRIB3F)(AttributeLocation location, GLfloat value0, GLfloat value1, GLfloat value2);
        typedef void (STDCALL *PFNGLVERTEXATTRIB3FV)(AttributeLocation location, GLfloat* value);
        typedef void (STDCALL *PFNGLVERTEXATTRIB4F)(AttributeLocation location, GLfloat value0, GLfloat value1, GLfloat value2, GLfloat value3);
        typedef void (STDCALL *PFNGLVERTEXATTRIB4FV)(AttributeLocation location, GLfloat* value);
        typedef void (STDCALL *PFNGLVERTEXATTRIBBINDING)(AttributeLocation index, VertexBufferBindingIndex binding_index);
        typedef void (STDCALL *PFNGLVERTEXATTRIBDIVISOR)(AttributeLocation index, GLuint divisor);
        typedef void (STDCALL *PFNGLVERTEXATTRIBFORMAT)(AttributeLocation index, GLint size, uint32_t type, GLboolean normalized, GLuint relativeoffset);
        typedef void (STDCALL *PFNGLVERTEXATTRIBI4I)(AttributeLocation index, GLint x, GLint y, GLint z, GLint w);
        typedef void (STDCALL *PFNGLVERTEXATTRIBI4IV)(AttributeLocation index, GLint* values);
        typedef void (STDCALL *PFNGLVERTEXATTRIBI4UI)(AttributeLocation index, GLuint x, GLuint y, GLuint z, GLuint w);
        typedef void (STDCALL *PFNGLVERTEXATTRIBI4UIV)(AttributeLocation index, GLuint* values);
        typedef void (STDCALL *PFNGLVERTEXATTRIBIFORMAT)(AttributeLocation index, GLint size, uint32_t type, GLuint relativeoffset);
        typedef void (STDCALL *PFNGLVERTEXATTRIBIPOINTER)(AttributeLocation location, GLint size, uint32_t type, GLsizei stride, VertexPointer data);
        typedef void (STDCALL *PFNGLVERTEXATTRIBPOINTER)(AttributeLocation location, GLint size, uint32_t type, GLboolean normalized, GLsizei stride, VertexPointer data);
        typedef void (STDCALL *PFNGLVERTEXBINDINGDIVISOR)(VertexBufferBindingIndex binding_index, GLuint divisor);
        typedef EGLBoolean (STDCALL *PFNEGLINITIALIZE)(EGLDisplay dpy, EGLint* major, EGLint* minor);
        typedef EGLContext (STDCALL *PFNEGLCREATECONTEXT)(EGLDisplay display, EGLConfig config, EGLContext share_context, EGLint* attrib_list);
        typedef EGLBoolean (STDCALL *PFNEGLMAKECURRENT)(EGLDisplay display, EGLSurface draw, EGLSurface read, EGLContext context);
        typedef EGLBoolean (STDCALL *PFNEGLSWAPBUFFERS)(EGLDisplay display, void* surface);
        typedef EGLBoolean (STDCALL *PFNEGLSWAPBUFFERSWITHDAMAGEKHR)(EGLDisplay dpy, EGLSurface surface, EGLint* rects, EGLint n_rects);
        typedef EGLBoolean (STDCALL *PFNEGLQUERYSURFACE)(EGLDisplay display, EGLSurface surface, EGLint attribute, EGLint* value);
        typedef EGLBoolean (STDCALL *PFNEGLQUERYCONTEXT)(EGLDisplay display, EGLContext context, EGLint attribute, EGLint* value);
        typedef EGLBoolean (STDCALL *PFNEGLCHOOSECONFIG)(EGLDisplay display, EGLint* attrib_list, EGLConfig* configs, EGLint config_size, EGLint* num_config);
        typedef EGLBoolean (STDCALL *PFNEGLGETCONFIGATTRIB)(EGLDisplay display, EGLConfig config, EGLint attribute, EGLint* value);
        typedef GLXContext (STDCALL *PFNGLXCREATECONTEXT)(void* dpy, void* vis, GLXContext shareList, bool direct);
        typedef GLXContext (STDCALL *PFNGLXCREATENEWCONTEXT)(void* display, void* fbconfig, uint32_t type, GLXContext shared, bool direct);
        typedef Bool (STDCALL *PFNGLXMAKECONTEXTCURRENT)(void* display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
        typedef Bool (STDCALL *PFNGLXMAKECURRENT)(void* display, GLXDrawable drawable, GLXContext ctx);
        typedef void (STDCALL *PFNGLXSWAPBUFFERS)(void* display, GLXDrawable drawable);
        typedef int (STDCALL *PFNGLXQUERYDRAWABLE)(void* display, GLXDrawable draw, int attribute, int* value);
        typedef HGLRC (STDCALL *PFNWGLCREATECONTEXT)(HDC hdc);
        typedef HGLRC (STDCALL *PFNWGLCREATECONTEXTATTRIBSARB)(HDC hdc, HGLRC hShareContext, int* attribList);
        typedef BOOL (STDCALL *PFNWGLMAKECURRENT)(HDC hdc, HGLRC hglrc);
        typedef void (STDCALL *PFNWGLSWAPBUFFERS)(HDC hdc);
        typedef CGLError (STDCALL *PFNCGLCREATECONTEXT)(CGLTexelFormatObj pix, CGLContextObj share, CGLContextObj* ctx);
        typedef CGLError (STDCALL *PFNCGLSETCURRENTCONTEXT)(CGLContextObj ctx);
        typedef int (STDCALL *PFNCGLGETSURFACE)(CGLContextObj ctx, CGSConnectionID* cid, CGSWindowID* wid, CGSSurfaceID* sid);
        typedef int (STDCALL *PFNCGSGETSURFACEBOUNDS)(CGSConnectionID cid, CGSWindowID wid, CGSSurfaceID sid, double* bounds);
        typedef CGLError (STDCALL *PFNCGLFLUSHDRAWABLE)(CGLContextObj ctx);
        typedef void (STDCALL *PFNGLGETQUERYOBJECTI64V)(QueryId query, uint32_t parameter, int64_t* value);
        typedef void (STDCALL *PFNGLGETQUERYOBJECTUI64V)(QueryId query, uint32_t parameter, uint64_t* value);
        typedef void (STDCALL *PFNGLALPHAFUNC)(uint32_t func, GLfloat ref);
        typedef void (STDCALL *PFNGLALPHAFUNCX)(uint32_t func, GLfixed ref);
        typedef void (STDCALL *PFNGLALPHAFUNCXOES)(uint32_t func, GLfixed ref);
        typedef void (STDCALL *PFNGLBINDFRAMEBUFFEROES)(uint32_t target, GLuint framebuffer);
        typedef void (STDCALL *PFNGLBINDRENDERBUFFEROES)(uint32_t target, GLuint renderbuffer);
        typedef void (STDCALL *PFNGLBLENDEQUATIONOES)(uint32_t mode);
        typedef void (STDCALL *PFNGLBLENDEQUATIONSEPARATEOES)(uint32_t modeRGB, uint32_t modeAlpha);
        typedef void (STDCALL *PFNGLBLENDFUNCSEPARATEOES)(uint32_t srcRGB, uint32_t dstRGB, uint32_t srcAlpha, uint32_t dstAlpha);
        typedef uint32_t (STDCALL *PFNGLCHECKFRAMEBUFFERSTATUSOES)(uint32_t target);
        typedef void (STDCALL *PFNGLCLEARCOLORX)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
        typedef void (STDCALL *PFNGLCLEARCOLORXOES)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
        typedef void (STDCALL *PFNGLCLEARDEPTHFOES)(GLclampf depth);
        typedef void (STDCALL *PFNGLCLEARDEPTHX)(GLfixed depth);
        typedef void (STDCALL *PFNGLCLEARDEPTHXOES)(GLfixed depth);
        typedef void (STDCALL *PFNGLCLIENTACTIVETEXTURE)(uint32_t texture);
        typedef void (STDCALL *PFNGLCLIPPLANEF)(uint32_t p, GLfloat* eqn);
        typedef void (STDCALL *PFNGLCLIPPLANEFIMG)(uint32_t p, GLfloat* eqn);
        typedef void (STDCALL *PFNGLCLIPPLANEFOES)(uint32_t plane, GLfloat* equation);
        typedef void (STDCALL *PFNGLCLIPPLANEX)(uint32_t plane, GLfixed* equation);
        typedef void (STDCALL *PFNGLCLIPPLANEXIMG)(uint32_t p, GLfixed* eqn);
        typedef void (STDCALL *PFNGLCLIPPLANEXOES)(uint32_t plane, GLfixed* equation);
        typedef void (STDCALL *PFNGLCOLOR4F)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
        typedef void (STDCALL *PFNGLCOLOR4UB)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
        typedef void (STDCALL *PFNGLCOLOR4X)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
        typedef void (STDCALL *PFNGLCOLOR4XOES)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
        typedef void (STDCALL *PFNGLCOLORPOINTER)(GLint size, uint32_t type, GLsizei stride, void* pointer);
        typedef void (STDCALL *PFNGLCURRENTPALETTEMATRIXOES)(GLuint matrixpaletteindex);
        typedef void (STDCALL *PFNGLDELETEFRAMEBUFFERSOES)(GLsizei n, GLuint* framebuffers);
        typedef void (STDCALL *PFNGLDELETERENDERBUFFERSOES)(GLsizei n, GLuint* renderbuffers);
        typedef void (STDCALL *PFNGLDEPTHRANGEFOES)(GLclampf n, GLclampf f);
        typedef void (STDCALL *PFNGLDEPTHRANGEX)(GLfixed n, GLfixed f);
        typedef void (STDCALL *PFNGLDEPTHRANGEXOES)(GLfixed n, GLfixed f);
        typedef void (STDCALL *PFNGLDISABLECLIENTSTATE)(uint32_t array);
        typedef void (STDCALL *PFNGLDRAWTEXFOES)(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
        typedef void (STDCALL *PFNGLDRAWTEXFVOES)(GLfloat* coords);
        typedef void (STDCALL *PFNGLDRAWTEXIOES)(GLint x, GLint y, GLint z, GLint width, GLint height);
        typedef void (STDCALL *PFNGLDRAWTEXIVOES)(GLint* coords);
        typedef void (STDCALL *PFNGLDRAWTEXSOES)(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
        typedef void (STDCALL *PFNGLDRAWTEXSVOES)(GLshort* coords);
        typedef void (STDCALL *PFNGLDRAWTEXXOES)(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
        typedef void (STDCALL *PFNGLDRAWTEXXVOES)(GLfixed* coords);
        typedef void (STDCALL *PFNGLENABLECLIENTSTATE)(uint32_t array);
        typedef void (STDCALL *PFNGLFOGF)(uint32_t pname, GLfloat param);
        typedef void (STDCALL *PFNGLFOGFV)(uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLFOGX)(uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLFOGXOES)(uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLFOGXV)(uint32_t pname, GLfixed* param);
        typedef void (STDCALL *PFNGLFOGXVOES)(uint32_t pname, GLfixed* param);
        typedef void (STDCALL *PFNGLFRAMEBUFFERRENDERBUFFEROES)(uint32_t target, uint32_t attachment, uint32_t renderbuffertarget, GLuint renderbuffer);
        typedef void (STDCALL *PFNGLFRAMEBUFFERTEXTURE2DOES)(uint32_t target, uint32_t attachment, uint32_t textarget, TextureId texture, GLint level);
        typedef void (STDCALL *PFNGLFRUSTUMF)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
        typedef void (STDCALL *PFNGLFRUSTUMFOES)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
        typedef void (STDCALL *PFNGLFRUSTUMX)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
        typedef void (STDCALL *PFNGLFRUSTUMXOES)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
        typedef void (STDCALL *PFNGLGENFRAMEBUFFERSOES)(GLsizei n, GLuint* framebuffers);
        typedef void (STDCALL *PFNGLGENRENDERBUFFERSOES)(GLsizei n, GLuint* renderbuffers);
        typedef void (STDCALL *PFNGLGENERATEMIPMAPOES)(uint32_t target);
        typedef void (STDCALL *PFNGLGETCLIPPLANEF)(uint32_t plane, GLfloat* equation);
        typedef void (STDCALL *PFNGLGETCLIPPLANEFOES)(uint32_t plane, GLfloat* equation);
        typedef void (STDCALL *PFNGLGETCLIPPLANEX)(uint32_t plane, GLfixed* equation);
        typedef void (STDCALL *PFNGLGETCLIPPLANEXOES)(uint32_t plane, GLfixed* equation);
        typedef void (STDCALL *PFNGLGETFIXEDV)(uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETFIXEDVOES)(uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOES)(uint32_t target, uint32_t attachment, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETLIGHTFV)(uint32_t light, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLGETLIGHTXV)(uint32_t light, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETLIGHTXVOES)(uint32_t light, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETMATERIALFV)(uint32_t face, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLGETMATERIALXV)(uint32_t face, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETMATERIALXVOES)(uint32_t face, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETRENDERBUFFERPARAMETERIVOES)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETTEXENVFV)(uint32_t target, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLGETTEXENVIV)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETTEXENVXV)(uint32_t target, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETTEXENVXVOES)(uint32_t target, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETTEXGENFVOES)(uint32_t coord, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLGETTEXGENIVOES)(uint32_t coord, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLGETTEXGENXVOES)(uint32_t coord, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERXV)(uint32_t target, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLGETTEXPARAMETERXVOES)(uint32_t target, uint32_t pname, GLfixed* params);
        typedef GLboolean (STDCALL *PFNGLISFRAMEBUFFEROES)(GLuint framebuffer);
        typedef GLboolean (STDCALL *PFNGLISRENDERBUFFEROES)(GLuint renderbuffer);
        typedef void (STDCALL *PFNGLLIGHTMODELF)(uint32_t pname, GLfloat param);
        typedef void (STDCALL *PFNGLLIGHTMODELFV)(uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLLIGHTMODELX)(uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLLIGHTMODELXOES)(uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLLIGHTMODELXV)(uint32_t pname, GLfixed* param);
        typedef void (STDCALL *PFNGLLIGHTMODELXVOES)(uint32_t pname, GLfixed* param);
        typedef void (STDCALL *PFNGLLIGHTF)(uint32_t light, uint32_t pname, GLfloat param);
        typedef void (STDCALL *PFNGLLIGHTFV)(uint32_t light, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLLIGHTX)(uint32_t light, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLLIGHTXOES)(uint32_t light, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLLIGHTXV)(uint32_t light, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLLIGHTXVOES)(uint32_t light, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLLINEWIDTHX)(GLfixed width);
        typedef void (STDCALL *PFNGLLINEWIDTHXOES)(GLfixed width);
        typedef void (STDCALL *PFNGLLOADIDENTITY)();
        typedef void (STDCALL *PFNGLLOADMATRIXF)(GLfloat* m);
        typedef void (STDCALL *PFNGLLOADMATRIXX)(GLfixed* m);
        typedef void (STDCALL *PFNGLLOADMATRIXXOES)(GLfixed* m);
        typedef void (STDCALL *PFNGLLOADPALETTEFROMMODELVIEWMATRIXOES)();
        typedef void (STDCALL *PFNGLLOGICOP)(uint32_t opcode);
        typedef void (STDCALL *PFNGLMATERIALF)(uint32_t face, uint32_t pname, GLfloat param);
        typedef void (STDCALL *PFNGLMATERIALFV)(uint32_t face, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLMATERIALX)(uint32_t face, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLMATERIALXOES)(uint32_t face, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLMATERIALXV)(uint32_t face, uint32_t pname, GLfixed* param);
        typedef void (STDCALL *PFNGLMATERIALXVOES)(uint32_t face, uint32_t pname, GLfixed* param);
        typedef void (STDCALL *PFNGLMATRIXINDEXPOINTEROES)(GLint size, uint32_t type, GLsizei stride, void* pointer);
        typedef void (STDCALL *PFNGLMATRIXMODE)(uint32_t mode);
        typedef void (STDCALL *PFNGLMULTMATRIXF)(GLfloat* m);
        typedef void (STDCALL *PFNGLMULTMATRIXX)(GLfixed* m);
        typedef void (STDCALL *PFNGLMULTMATRIXXOES)(GLfixed* m);
        typedef void (STDCALL *PFNGLMULTITEXCOORD4F)(uint32_t target, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
        typedef void (STDCALL *PFNGLMULTITEXCOORD4X)(uint32_t texture, GLfixed v0, GLfixed v1, GLfixed v2, GLfixed v3);
        typedef void (STDCALL *PFNGLMULTITEXCOORD4XOES)(uint32_t texture, GLfixed v0, GLfixed v1, GLfixed v2, GLfixed v3);
        typedef void (STDCALL *PFNGLNORMAL3F)(GLfloat nx, GLfloat ny, GLfloat nz);
        typedef void (STDCALL *PFNGLNORMAL3X)(GLfixed nx, GLfixed ny, GLfixed nz);
        typedef void (STDCALL *PFNGLNORMAL3XOES)(GLfixed nx, GLfixed ny, GLfixed nz);
        typedef void (STDCALL *PFNGLNORMALPOINTER)(uint32_t type, GLsizei stride, void* pointer);
        typedef void (STDCALL *PFNGLORTHOF)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
        typedef void (STDCALL *PFNGLORTHOFOES)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
        typedef void (STDCALL *PFNGLORTHOX)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
        typedef void (STDCALL *PFNGLORTHOXOES)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
        typedef void (STDCALL *PFNGLPOINTPARAMETERF)(uint32_t pname, GLfloat param);
        typedef void (STDCALL *PFNGLPOINTPARAMETERFV)(uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLPOINTPARAMETERX)(uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLPOINTPARAMETERXOES)(uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLPOINTPARAMETERXV)(uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLPOINTPARAMETERXVOES)(uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLPOINTSIZE)(GLfloat size);
        typedef void (STDCALL *PFNGLPOINTSIZEPOINTEROES)(uint32_t type, GLsizei stride, void* pointer);
        typedef void (STDCALL *PFNGLPOINTSIZEX)(GLfixed size);
        typedef void (STDCALL *PFNGLPOINTSIZEXOES)(GLfixed size);
        typedef void (STDCALL *PFNGLPOLYGONOFFSETX)(GLfixed factor, GLfixed units);
        typedef void (STDCALL *PFNGLPOLYGONOFFSETXOES)(GLfixed factor, GLfixed units);
        typedef void (STDCALL *PFNGLPOPMATRIX)();
        typedef void (STDCALL *PFNGLPUSHMATRIX)();
        typedef uint32_t (STDCALL *PFNGLQUERYMATRIXXOES)(GLfixed* mantissa, GLint* exponent);
        typedef void (STDCALL *PFNGLRENDERBUFFERSTORAGEOES)(uint32_t target, uint32_t internalformat, GLsizei width, GLsizei height);
        typedef void (STDCALL *PFNGLROTATEF)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
        typedef void (STDCALL *PFNGLROTATEX)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
        typedef void (STDCALL *PFNGLROTATEXOES)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
        typedef void (STDCALL *PFNGLSAMPLECOVERAGEX)(GLclampx value, GLboolean invert);
        typedef void (STDCALL *PFNGLSAMPLECOVERAGEXOES)(GLclampx value, GLboolean invert);
        typedef void (STDCALL *PFNGLSCALEF)(GLfloat x, GLfloat y, GLfloat z);
        typedef void (STDCALL *PFNGLSCALEX)(GLfixed x, GLfixed y, GLfixed z);
        typedef void (STDCALL *PFNGLSCALEXOES)(GLfixed x, GLfixed y, GLfixed z);
        typedef void (STDCALL *PFNGLSHADEMODEL)(uint32_t mode);
        typedef void (STDCALL *PFNGLTEXCOORDPOINTER)(GLint size, uint32_t type, GLsizei stride, void* pointer);
        typedef void (STDCALL *PFNGLTEXENVF)(uint32_t target, uint32_t pname, GLfloat param);
        typedef void (STDCALL *PFNGLTEXENVFV)(uint32_t target, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLTEXENVI)(uint32_t target, uint32_t pname, GLint param);
        typedef void (STDCALL *PFNGLTEXENVIV)(uint32_t target, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLTEXENVX)(uint32_t target, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLTEXENVXOES)(uint32_t target, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLTEXENVXV)(uint32_t target, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLTEXENVXVOES)(uint32_t target, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLTEXGENFOES)(uint32_t coord, uint32_t pname, GLfloat param);
        typedef void (STDCALL *PFNGLTEXGENFVOES)(uint32_t coord, uint32_t pname, GLfloat* params);
        typedef void (STDCALL *PFNGLTEXGENIOES)(uint32_t coord, uint32_t pname, GLint param);
        typedef void (STDCALL *PFNGLTEXGENIVOES)(uint32_t coord, uint32_t pname, GLint* params);
        typedef void (STDCALL *PFNGLTEXGENXOES)(uint32_t coord, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLTEXGENXVOES)(uint32_t coord, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLTEXPARAMETERX)(uint32_t target, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLTEXPARAMETERXOES)(uint32_t target, uint32_t pname, GLfixed param);
        typedef void (STDCALL *PFNGLTEXPARAMETERXV)(uint32_t target, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLTEXPARAMETERXVOES)(uint32_t target, uint32_t pname, GLfixed* params);
        typedef void (STDCALL *PFNGLTRANSLATEF)(GLfloat x, GLfloat y, GLfloat z);
        typedef void (STDCALL *PFNGLTRANSLATEX)(GLfixed x, GLfixed y, GLfixed z);
        typedef void (STDCALL *PFNGLTRANSLATEXOES)(GLfixed x, GLfixed y, GLfixed z);
        typedef void (STDCALL *PFNGLVERTEXPOINTER)(GLint size, uint32_t type, GLsizei stride, void* pointer);
        typedef void (STDCALL *PFNGLWEIGHTPOINTEROES)(GLint size, uint32_t type, GLsizei stride, void* pointer);
        typedef void (STDCALL *PFNGLCOLORPOINTERBOUNDS)(GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
        typedef void (STDCALL *PFNGLNORMALPOINTERBOUNDS)(uint32_t type, GLsizei stride, void* pointer, GLsizei count);
        typedef void (STDCALL *PFNGLTEXCOORDPOINTERBOUNDS)(GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
        typedef void (STDCALL *PFNGLVERTEXPOINTERBOUNDS)(GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
        typedef void (STDCALL *PFNGLPOINTSIZEPOINTEROESBOUNDS)(uint32_t type, GLsizei stride, void* pointer, GLsizei count);
        typedef void (STDCALL *PFNGLMATRIXINDEXPOINTEROESBOUNDS)(GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);
        typedef void (STDCALL *PFNGLWEIGHTPOINTEROESBOUNDS)(GLint size, uint32_t type, GLsizei stride, void* pointer, GLsizei count);

        PFNGLBLENDBARRIERKHR glBlendBarrierKHR;
        PFNGLBLENDEQUATIONSEPARATEIEXT glBlendEquationSeparateiEXT;
        PFNGLBLENDEQUATIONIEXT glBlendEquationiEXT;
        PFNGLBLENDFUNCSEPARATEIEXT glBlendFuncSeparateiEXT;
        PFNGLBLENDFUNCIEXT glBlendFunciEXT;
        PFNGLCOLORMASKIEXT glColorMaskiEXT;
        PFNGLCOPYIMAGESUBDATAEXT glCopyImageSubDataEXT;
        PFNGLDEBUGMESSAGECALLBACKKHR glDebugMessageCallbackKHR;
        PFNGLDEBUGMESSAGECONTROLKHR glDebugMessageControlKHR;
        PFNGLDEBUGMESSAGEINSERTKHR glDebugMessageInsertKHR;
        PFNGLDISABLEIEXT glDisableiEXT;
        PFNGLENABLEIEXT glEnableiEXT;
        PFNGLFRAMEBUFFERTEXTUREEXT glFramebufferTextureEXT;
        PFNGLGETDEBUGMESSAGELOGKHR glGetDebugMessageLogKHR;
        PFNGLGETOBJECTLABELKHR glGetObjectLabelKHR;
        PFNGLGETOBJECTPTRLABELKHR glGetObjectPtrLabelKHR;
        PFNGLGETPOINTERVKHR glGetPointervKHR;
        PFNGLGETSAMPLERPARAMETERIIVEXT glGetSamplerParameterIivEXT;
        PFNGLGETSAMPLERPARAMETERIUIVEXT glGetSamplerParameterIuivEXT;
        PFNGLGETTEXPARAMETERIIVEXT glGetTexParameterIivEXT;
        PFNGLGETTEXPARAMETERIUIVEXT glGetTexParameterIuivEXT;
        PFNGLISENABLEDIEXT glIsEnablediEXT;
        PFNGLMINSAMPLESHADINGOES glMinSampleShadingOES;
        PFNGLOBJECTLABELKHR glObjectLabelKHR;
        PFNGLOBJECTPTRLABELKHR glObjectPtrLabelKHR;
        PFNGLPATCHPARAMETERIEXT glPatchParameteriEXT;
        PFNGLPOPDEBUGGROUPKHR glPopDebugGroupKHR;
        PFNGLPRIMITIVEBOUNDINGBOXEXT glPrimitiveBoundingBoxEXT;
        PFNGLPUSHDEBUGGROUPKHR glPushDebugGroupKHR;
        PFNGLSAMPLERPARAMETERIIVEXT glSamplerParameterIivEXT;
        PFNGLSAMPLERPARAMETERIUIVEXT glSamplerParameterIuivEXT;
        PFNGLTEXBUFFEREXT glTexBufferEXT;
        PFNGLTEXBUFFERRANGEEXT glTexBufferRangeEXT;
        PFNGLTEXPARAMETERIIVEXT glTexParameterIivEXT;
        PFNGLTEXPARAMETERIUIVEXT glTexParameterIuivEXT;
        PFNGLTEXSTORAGE3DMULTISAMPLEOES glTexStorage3DMultisampleOES;
        PFNGLBEGINQUERY glBeginQuery;
        PFNGLDELETEQUERIES glDeleteQueries;
        PFNGLENDQUERY glEndQuery;
        PFNGLGENQUERIES glGenQueries;
        PFNGLGETQUERYOBJECTUIV glGetQueryObjectuiv;
        PFNGLGETQUERYIV glGetQueryiv;
        PFNGLISQUERY glIsQuery;
        PFNGLBINDBUFFER glBindBuffer;
        PFNGLBINDBUFFERBASE glBindBufferBase;
        PFNGLBINDBUFFERRANGE glBindBufferRange;
        PFNGLBUFFERDATA glBufferData;
        PFNGLBUFFERSUBDATA glBufferSubData;
        PFNGLCOPYBUFFERSUBDATA glCopyBufferSubData;
        PFNGLDELETEBUFFERS glDeleteBuffers;
        PFNGLGENBUFFERS glGenBuffers;
        PFNGLGETBUFFERPARAMETERI64V glGetBufferParameteri64v;
        PFNGLGETBUFFERPARAMETERIV glGetBufferParameteriv;
        PFNGLGETBUFFERPOINTERV glGetBufferPointerv;
        PFNGLISBUFFER glIsBuffer;
        PFNGLMAPBUFFERRANGE glMapBufferRange;
        PFNGLUNMAPBUFFER glUnmapBuffer;
        PFNGLDEBUGMESSAGECALLBACK glDebugMessageCallback;
        PFNGLDEBUGMESSAGECONTROL glDebugMessageControl;
        PFNGLDEBUGMESSAGEINSERT glDebugMessageInsert;
        PFNGLGETDEBUGMESSAGELOG glGetDebugMessageLog;
        PFNGLGETOBJECTLABEL glGetObjectLabel;
        PFNGLGETOBJECTPTRLABEL glGetObjectPtrLabel;
        PFNGLGETPOINTERV glGetPointerv;
        PFNGLOBJECTLABEL glObjectLabel;
        PFNGLOBJECTPTRLABEL glObjectPtrLabel;
        PFNGLPOPDEBUGGROUP glPopDebugGroup;
        PFNGLPUSHDEBUGGROUP glPushDebugGroup;
        PFNGLDRAWARRAYS glDrawArrays;
        PFNGLDRAWARRAYSINDIRECT glDrawArraysIndirect;
        PFNGLDRAWARRAYSINSTANCED glDrawArraysInstanced;
        PFNGLDRAWELEMENTS glDrawElements;
        PFNGLDRAWELEMENTSBASEVERTEX glDrawElementsBaseVertex;
        PFNGLDRAWELEMENTSINDIRECT glDrawElementsIndirect;
        PFNGLDRAWELEMENTSINSTANCED glDrawElementsInstanced;
        PFNGLDRAWELEMENTSINSTANCEDBASEVERTEX glDrawElementsInstancedBaseVertex;
        PFNGLDRAWRANGEELEMENTS glDrawRangeElements;
        PFNGLDRAWRANGEELEMENTSBASEVERTEX glDrawRangeElementsBaseVertex;
        PFNGLPATCHPARAMETERI glPatchParameteri;
        PFNGLPRIMITIVEBOUNDINGBOX glPrimitiveBoundingBox;
        PFNGLACTIVESHADERPROGRAMEXT glActiveShaderProgramEXT;
        PFNGLALPHAFUNCQCOM glAlphaFuncQCOM;
        PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTEL glApplyFramebufferAttachmentCMAAINTEL;
        PFNGLBEGINCONDITIONALRENDERNV glBeginConditionalRenderNV;
        PFNGLBEGINPERFMONITORAMD glBeginPerfMonitorAMD;
        PFNGLBEGINPERFQUERYINTEL glBeginPerfQueryINTEL;
        PFNGLBEGINQUERYEXT glBeginQueryEXT;
        PFNGLBINDFRAGDATALOCATIONEXT glBindFragDataLocationEXT;
        PFNGLBINDFRAGDATALOCATIONINDEXEDEXT glBindFragDataLocationIndexedEXT;
        PFNGLBINDPROGRAMPIPELINEEXT glBindProgramPipelineEXT;
        PFNGLBINDVERTEXARRAYOES glBindVertexArrayOES;
        PFNGLBLENDBARRIERNV glBlendBarrierNV;
        PFNGLBLENDEQUATIONSEPARATEIOES glBlendEquationSeparateiOES;
        PFNGLBLENDEQUATIONIOES glBlendEquationiOES;
        PFNGLBLENDFUNCSEPARATEIOES glBlendFuncSeparateiOES;
        PFNGLBLENDFUNCIOES glBlendFunciOES;
        PFNGLBLENDPARAMETERINV glBlendParameteriNV;
        PFNGLBLITFRAMEBUFFERANGLE glBlitFramebufferANGLE;
        PFNGLBLITFRAMEBUFFERNV glBlitFramebufferNV;
        PFNGLBUFFERSTORAGEEXT glBufferStorageEXT;
        PFNGLCLIENTWAITSYNCAPPLE glClientWaitSyncAPPLE;
        PFNGLCOLORMASKIOES glColorMaskiOES;
        PFNGLCOMPRESSEDTEXIMAGE3DOES glCompressedTexImage3DOES;
        PFNGLCOMPRESSEDTEXSUBIMAGE3DOES glCompressedTexSubImage3DOES;
        PFNGLCOPYBUFFERSUBDATANV glCopyBufferSubDataNV;
        PFNGLCOPYIMAGESUBDATAOES glCopyImageSubDataOES;
        PFNGLCOPYPATHNV glCopyPathNV;
        PFNGLCOPYTEXSUBIMAGE3DOES glCopyTexSubImage3DOES;
        PFNGLCOPYTEXTURELEVELSAPPLE glCopyTextureLevelsAPPLE;
        PFNGLCOVERFILLPATHINSTANCEDNV glCoverFillPathInstancedNV;
        PFNGLCOVERFILLPATHNV glCoverFillPathNV;
        PFNGLCOVERSTROKEPATHINSTANCEDNV glCoverStrokePathInstancedNV;
        PFNGLCOVERSTROKEPATHNV glCoverStrokePathNV;
        PFNGLCOVERAGEMASKNV glCoverageMaskNV;
        PFNGLCOVERAGEMODULATIONNV glCoverageModulationNV;
        PFNGLCOVERAGEMODULATIONTABLENV glCoverageModulationTableNV;
        PFNGLCOVERAGEOPERATIONNV glCoverageOperationNV;
        PFNGLCREATEPERFQUERYINTEL glCreatePerfQueryINTEL;
        PFNGLCREATESHADERPROGRAMVEXT glCreateShaderProgramvEXT;
        PFNGLDELETEFENCESNV glDeleteFencesNV;
        PFNGLDELETEPATHSNV glDeletePathsNV;
        PFNGLDELETEPERFMONITORSAMD glDeletePerfMonitorsAMD;
        PFNGLDELETEPERFQUERYINTEL glDeletePerfQueryINTEL;
        PFNGLDELETEPROGRAMPIPELINESEXT glDeleteProgramPipelinesEXT;
        PFNGLDELETEQUERIESEXT glDeleteQueriesEXT;
        PFNGLDELETESYNCAPPLE glDeleteSyncAPPLE;
        PFNGLDELETEVERTEXARRAYSOES glDeleteVertexArraysOES;
        PFNGLDEPTHRANGEARRAYFVNV glDepthRangeArrayfvNV;
        PFNGLDEPTHRANGEINDEXEDFNV glDepthRangeIndexedfNV;
        PFNGLDISABLEDRIVERCONTROLQCOM glDisableDriverControlQCOM;
        PFNGLDISABLEINV glDisableiNV;
        PFNGLDISABLEIOES glDisableiOES;
        PFNGLDISCARDFRAMEBUFFEREXT glDiscardFramebufferEXT;
        PFNGLDRAWARRAYSINSTANCEDANGLE glDrawArraysInstancedANGLE;
        PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXT glDrawArraysInstancedBaseInstanceEXT;
        PFNGLDRAWARRAYSINSTANCEDEXT glDrawArraysInstancedEXT;
        PFNGLDRAWARRAYSINSTANCEDNV glDrawArraysInstancedNV;
        PFNGLDRAWBUFFERSEXT glDrawBuffersEXT;
        PFNGLDRAWBUFFERSINDEXEDEXT glDrawBuffersIndexedEXT;
        PFNGLDRAWBUFFERSNV glDrawBuffersNV;
        PFNGLDRAWELEMENTSBASEVERTEXEXT glDrawElementsBaseVertexEXT;
        PFNGLDRAWELEMENTSBASEVERTEXOES glDrawElementsBaseVertexOES;
        PFNGLDRAWELEMENTSINSTANCEDANGLE glDrawElementsInstancedANGLE;
        PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXT glDrawElementsInstancedBaseInstanceEXT;
        PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXT glDrawElementsInstancedBaseVertexBaseInstanceEXT;
        PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXT glDrawElementsInstancedBaseVertexEXT;
        PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOES glDrawElementsInstancedBaseVertexOES;
        PFNGLDRAWELEMENTSINSTANCEDEXT glDrawElementsInstancedEXT;
        PFNGLDRAWELEMENTSINSTANCEDNV glDrawElementsInstancedNV;
        PFNGLDRAWRANGEELEMENTSBASEVERTEXEXT glDrawRangeElementsBaseVertexEXT;
        PFNGLDRAWRANGEELEMENTSBASEVERTEXOES glDrawRangeElementsBaseVertexOES;
        PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOES glEGLImageTargetRenderbufferStorageOES;
        PFNGLEGLIMAGETARGETTEXTURE2DOES glEGLImageTargetTexture2DOES;
        PFNGLENABLEDRIVERCONTROLQCOM glEnableDriverControlQCOM;
        PFNGLENABLEINV glEnableiNV;
        PFNGLENABLEIOES glEnableiOES;
        PFNGLENDCONDITIONALRENDERNV glEndConditionalRenderNV;
        PFNGLENDPERFMONITORAMD glEndPerfMonitorAMD;
        PFNGLENDPERFQUERYINTEL glEndPerfQueryINTEL;
        PFNGLENDQUERYEXT glEndQueryEXT;
        PFNGLENDTILINGQCOM glEndTilingQCOM;
        PFNGLEXTGETBUFFERPOINTERVQCOM glExtGetBufferPointervQCOM;
        PFNGLEXTGETBUFFERSQCOM glExtGetBuffersQCOM;
        PFNGLEXTGETFRAMEBUFFERSQCOM glExtGetFramebuffersQCOM;
        PFNGLEXTGETPROGRAMBINARYSOURCEQCOM glExtGetProgramBinarySourceQCOM;
        PFNGLEXTGETPROGRAMSQCOM glExtGetProgramsQCOM;
        PFNGLEXTGETRENDERBUFFERSQCOM glExtGetRenderbuffersQCOM;
        PFNGLEXTGETSHADERSQCOM glExtGetShadersQCOM;
        PFNGLEXTGETTEXLEVELPARAMETERIVQCOM glExtGetTexLevelParameterivQCOM;
        PFNGLEXTGETTEXSUBIMAGEQCOM glExtGetTexSubImageQCOM;
        PFNGLEXTGETTEXTURESQCOM glExtGetTexturesQCOM;
        PFNGLEXTISPROGRAMBINARYQCOM glExtIsProgramBinaryQCOM;
        PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOM glExtTexObjectStateOverrideiQCOM;
        PFNGLFENCESYNCAPPLE glFenceSyncAPPLE;
        PFNGLFINISHFENCENV glFinishFenceNV;
        PFNGLFLUSHMAPPEDBUFFERRANGEEXT glFlushMappedBufferRangeEXT;
        PFNGLFRAGMENTCOVERAGECOLORNV glFragmentCoverageColorNV;
        PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNV glFramebufferSampleLocationsfvNV;
        PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT glFramebufferTexture2DMultisampleEXT;
        PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG glFramebufferTexture2DMultisampleIMG;
        PFNGLFRAMEBUFFERTEXTURE3DOES glFramebufferTexture3DOES;
        PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVR glFramebufferTextureMultiviewOVR;
        PFNGLFRAMEBUFFERTEXTUREOES glFramebufferTextureOES;
        PFNGLGENFENCESNV glGenFencesNV;
        PFNGLGENPATHSNV glGenPathsNV;
        PFNGLGENPERFMONITORSAMD glGenPerfMonitorsAMD;
        PFNGLGENPROGRAMPIPELINESEXT glGenProgramPipelinesEXT;
        PFNGLGENQUERIESEXT glGenQueriesEXT;
        PFNGLGENVERTEXARRAYSOES glGenVertexArraysOES;
        PFNGLGETBUFFERPOINTERVOES glGetBufferPointervOES;
        PFNGLGETCOVERAGEMODULATIONTABLENV glGetCoverageModulationTableNV;
        PFNGLGETDRIVERCONTROLSTRINGQCOM glGetDriverControlStringQCOM;
        PFNGLGETDRIVERCONTROLSQCOM glGetDriverControlsQCOM;
        PFNGLGETFENCEIVNV glGetFenceivNV;
        PFNGLGETFIRSTPERFQUERYIDINTEL glGetFirstPerfQueryIdINTEL;
        PFNGLGETFLOATI_VNV glGetFloati_vNV;
        PFNGLGETFRAGDATAINDEXEXT glGetFragDataIndexEXT;
        PFNGLGETGRAPHICSRESETSTATUSEXT glGetGraphicsResetStatusEXT;
        PFNGLGETGRAPHICSRESETSTATUSKHR glGetGraphicsResetStatusKHR;
        PFNGLGETIMAGEHANDLENV glGetImageHandleNV;
        PFNGLGETINTEGER64VAPPLE glGetInteger64vAPPLE;
        PFNGLGETINTEGERI_VEXT glGetIntegeri_vEXT;
        PFNGLGETINTERNALFORMATSAMPLEIVNV glGetInternalformatSampleivNV;
        PFNGLGETNEXTPERFQUERYIDINTEL glGetNextPerfQueryIdINTEL;
        PFNGLGETOBJECTLABELEXT glGetObjectLabelEXT;
        PFNGLGETPATHCOMMANDSNV glGetPathCommandsNV;
        PFNGLGETPATHCOORDSNV glGetPathCoordsNV;
        PFNGLGETPATHDASHARRAYNV glGetPathDashArrayNV;
        PFNGLGETPATHLENGTHNV glGetPathLengthNV;
        PFNGLGETPATHMETRICRANGENV glGetPathMetricRangeNV;
        PFNGLGETPATHMETRICSNV glGetPathMetricsNV;
        PFNGLGETPATHPARAMETERFVNV glGetPathParameterfvNV;
        PFNGLGETPATHPARAMETERIVNV glGetPathParameterivNV;
        PFNGLGETPATHSPACINGNV glGetPathSpacingNV;
        PFNGLGETPERFCOUNTERINFOINTEL glGetPerfCounterInfoINTEL;
        PFNGLGETPERFMONITORCOUNTERDATAAMD glGetPerfMonitorCounterDataAMD;
        PFNGLGETPERFMONITORCOUNTERINFOAMD glGetPerfMonitorCounterInfoAMD;
        PFNGLGETPERFMONITORCOUNTERSTRINGAMD glGetPerfMonitorCounterStringAMD;
        PFNGLGETPERFMONITORCOUNTERSAMD glGetPerfMonitorCountersAMD;
        PFNGLGETPERFMONITORGROUPSTRINGAMD glGetPerfMonitorGroupStringAMD;
        PFNGLGETPERFMONITORGROUPSAMD glGetPerfMonitorGroupsAMD;
        PFNGLGETPERFQUERYDATAINTEL glGetPerfQueryDataINTEL;
        PFNGLGETPERFQUERYIDBYNAMEINTEL glGetPerfQueryIdByNameINTEL;
        PFNGLGETPERFQUERYINFOINTEL glGetPerfQueryInfoINTEL;
        PFNGLGETPROGRAMBINARYOES glGetProgramBinaryOES;
        PFNGLGETPROGRAMPIPELINEINFOLOGEXT glGetProgramPipelineInfoLogEXT;
        PFNGLGETPROGRAMPIPELINEIVEXT glGetProgramPipelineivEXT;
        PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXT glGetProgramResourceLocationIndexEXT;
        PFNGLGETPROGRAMRESOURCEFVNV glGetProgramResourcefvNV;
        PFNGLGETQUERYOBJECTI64VEXT glGetQueryObjecti64vEXT;
        PFNGLGETQUERYOBJECTIVEXT glGetQueryObjectivEXT;
        PFNGLGETQUERYOBJECTUI64VEXT glGetQueryObjectui64vEXT;
        PFNGLGETQUERYOBJECTUIVEXT glGetQueryObjectuivEXT;
        PFNGLGETQUERYIVEXT glGetQueryivEXT;
        PFNGLGETSAMPLERPARAMETERIIVOES glGetSamplerParameterIivOES;
        PFNGLGETSAMPLERPARAMETERIUIVOES glGetSamplerParameterIuivOES;
        PFNGLGETSYNCIVAPPLE glGetSyncivAPPLE;
        PFNGLGETTEXPARAMETERIIVOES glGetTexParameterIivOES;
        PFNGLGETTEXPARAMETERIUIVOES glGetTexParameterIuivOES;
        PFNGLGETTEXTUREHANDLENV glGetTextureHandleNV;
        PFNGLGETTEXTURESAMPLERHANDLENV glGetTextureSamplerHandleNV;
        PFNGLGETTRANSLATEDSHADERSOURCEANGLE glGetTranslatedShaderSourceANGLE;
        PFNGLGETNUNIFORMFVEXT glGetnUniformfvEXT;
        PFNGLGETNUNIFORMFVKHR glGetnUniformfvKHR;
        PFNGLGETNUNIFORMIVEXT glGetnUniformivEXT;
        PFNGLGETNUNIFORMIVKHR glGetnUniformivKHR;
        PFNGLGETNUNIFORMUIVKHR glGetnUniformuivKHR;
        PFNGLINSERTEVENTMARKEREXT glInsertEventMarkerEXT;
        PFNGLINTERPOLATEPATHSNV glInterpolatePathsNV;
        PFNGLISENABLEDINV glIsEnablediNV;
        PFNGLISENABLEDIOES glIsEnablediOES;
        PFNGLISFENCENV glIsFenceNV;
        PFNGLISIMAGEHANDLERESIDENTNV glIsImageHandleResidentNV;
        PFNGLISPATHNV glIsPathNV;
        PFNGLISPOINTINFILLPATHNV glIsPointInFillPathNV;
        PFNGLISPOINTINSTROKEPATHNV glIsPointInStrokePathNV;
        PFNGLISPROGRAMPIPELINEEXT glIsProgramPipelineEXT;
        PFNGLISQUERYEXT glIsQueryEXT;
        PFNGLISSYNCAPPLE glIsSyncAPPLE;
        PFNGLISTEXTUREHANDLERESIDENTNV glIsTextureHandleResidentNV;
        PFNGLISVERTEXARRAYOES glIsVertexArrayOES;
        PFNGLLABELOBJECTEXT glLabelObjectEXT;
        PFNGLMAKEIMAGEHANDLENONRESIDENTNV glMakeImageHandleNonResidentNV;
        PFNGLMAKEIMAGEHANDLERESIDENTNV glMakeImageHandleResidentNV;
        PFNGLMAKETEXTUREHANDLENONRESIDENTNV glMakeTextureHandleNonResidentNV;
        PFNGLMAKETEXTUREHANDLERESIDENTNV glMakeTextureHandleResidentNV;
        PFNGLMAPBUFFEROES glMapBufferOES;
        PFNGLMAPBUFFERRANGEEXT glMapBufferRangeEXT;
        PFNGLMATRIXLOAD3X2FNV glMatrixLoad3x2fNV;
        PFNGLMATRIXLOAD3X3FNV glMatrixLoad3x3fNV;
        PFNGLMATRIXLOADTRANSPOSE3X3FNV glMatrixLoadTranspose3x3fNV;
        PFNGLMATRIXMULT3X2FNV glMatrixMult3x2fNV;
        PFNGLMATRIXMULT3X3FNV glMatrixMult3x3fNV;
        PFNGLMATRIXMULTTRANSPOSE3X3FNV glMatrixMultTranspose3x3fNV;
        PFNGLMULTIDRAWARRAYSEXT glMultiDrawArraysEXT;
        PFNGLMULTIDRAWARRAYSINDIRECTEXT glMultiDrawArraysIndirectEXT;
        PFNGLMULTIDRAWELEMENTSBASEVERTEXEXT glMultiDrawElementsBaseVertexEXT;
        PFNGLMULTIDRAWELEMENTSBASEVERTEXOES glMultiDrawElementsBaseVertexOES;
        PFNGLMULTIDRAWELEMENTSEXT glMultiDrawElementsEXT;
        PFNGLMULTIDRAWELEMENTSINDIRECTEXT glMultiDrawElementsIndirectEXT;
        PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNV glNamedFramebufferSampleLocationsfvNV;
        PFNGLPATCHPARAMETERIOES glPatchParameteriOES;
        PFNGLPATHCOMMANDSNV glPathCommandsNV;
        PFNGLPATHCOORDSNV glPathCoordsNV;
        PFNGLPATHCOVERDEPTHFUNCNV glPathCoverDepthFuncNV;
        PFNGLPATHDASHARRAYNV glPathDashArrayNV;
        PFNGLPATHGLYPHINDEXARRAYNV glPathGlyphIndexArrayNV;
        PFNGLPATHGLYPHINDEXRANGENV glPathGlyphIndexRangeNV;
        PFNGLPATHGLYPHRANGENV glPathGlyphRangeNV;
        PFNGLPATHGLYPHSNV glPathGlyphsNV;
        PFNGLPATHMEMORYGLYPHINDEXARRAYNV glPathMemoryGlyphIndexArrayNV;
        PFNGLPATHPARAMETERFNV glPathParameterfNV;
        PFNGLPATHPARAMETERFVNV glPathParameterfvNV;
        PFNGLPATHPARAMETERINV glPathParameteriNV;
        PFNGLPATHPARAMETERIVNV glPathParameterivNV;
        PFNGLPATHSTENCILDEPTHOFFSETNV glPathStencilDepthOffsetNV;
        PFNGLPATHSTENCILFUNCNV glPathStencilFuncNV;
        PFNGLPATHSTRINGNV glPathStringNV;
        PFNGLPATHSUBCOMMANDSNV glPathSubCommandsNV;
        PFNGLPATHSUBCOORDSNV glPathSubCoordsNV;
        PFNGLPOINTALONGPATHNV glPointAlongPathNV;
        PFNGLPOLYGONMODENV glPolygonModeNV;
        PFNGLPOPGROUPMARKEREXT glPopGroupMarkerEXT;
        PFNGLPRIMITIVEBOUNDINGBOXOES glPrimitiveBoundingBoxOES;
        PFNGLPROGRAMBINARYOES glProgramBinaryOES;
        PFNGLPROGRAMPARAMETERIEXT glProgramParameteriEXT;
        PFNGLPROGRAMPATHFRAGMENTINPUTGENNV glProgramPathFragmentInputGenNV;
        PFNGLPROGRAMUNIFORM1FEXT glProgramUniform1fEXT;
        PFNGLPROGRAMUNIFORM1FVEXT glProgramUniform1fvEXT;
        PFNGLPROGRAMUNIFORM1IEXT glProgramUniform1iEXT;
        PFNGLPROGRAMUNIFORM1IVEXT glProgramUniform1ivEXT;
        PFNGLPROGRAMUNIFORM1UIEXT glProgramUniform1uiEXT;
        PFNGLPROGRAMUNIFORM1UIVEXT glProgramUniform1uivEXT;
        PFNGLPROGRAMUNIFORM2FEXT glProgramUniform2fEXT;
        PFNGLPROGRAMUNIFORM2FVEXT glProgramUniform2fvEXT;
        PFNGLPROGRAMUNIFORM2IEXT glProgramUniform2iEXT;
        PFNGLPROGRAMUNIFORM2IVEXT glProgramUniform2ivEXT;
        PFNGLPROGRAMUNIFORM2UIEXT glProgramUniform2uiEXT;
        PFNGLPROGRAMUNIFORM2UIVEXT glProgramUniform2uivEXT;
        PFNGLPROGRAMUNIFORM3FEXT glProgramUniform3fEXT;
        PFNGLPROGRAMUNIFORM3FVEXT glProgramUniform3fvEXT;
        PFNGLPROGRAMUNIFORM3IEXT glProgramUniform3iEXT;
        PFNGLPROGRAMUNIFORM3IVEXT glProgramUniform3ivEXT;
        PFNGLPROGRAMUNIFORM3UIEXT glProgramUniform3uiEXT;
        PFNGLPROGRAMUNIFORM3UIVEXT glProgramUniform3uivEXT;
        PFNGLPROGRAMUNIFORM4FEXT glProgramUniform4fEXT;
        PFNGLPROGRAMUNIFORM4FVEXT glProgramUniform4fvEXT;
        PFNGLPROGRAMUNIFORM4IEXT glProgramUniform4iEXT;
        PFNGLPROGRAMUNIFORM4IVEXT glProgramUniform4ivEXT;
        PFNGLPROGRAMUNIFORM4UIEXT glProgramUniform4uiEXT;
        PFNGLPROGRAMUNIFORM4UIVEXT glProgramUniform4uivEXT;
        PFNGLPROGRAMUNIFORMHANDLEUI64NV glProgramUniformHandleui64NV;
        PFNGLPROGRAMUNIFORMHANDLEUI64VNV glProgramUniformHandleui64vNV;
        PFNGLPROGRAMUNIFORMMATRIX2FVEXT glProgramUniformMatrix2fvEXT;
        PFNGLPROGRAMUNIFORMMATRIX2X3FVEXT glProgramUniformMatrix2x3fvEXT;
        PFNGLPROGRAMUNIFORMMATRIX2X4FVEXT glProgramUniformMatrix2x4fvEXT;
        PFNGLPROGRAMUNIFORMMATRIX3FVEXT glProgramUniformMatrix3fvEXT;
        PFNGLPROGRAMUNIFORMMATRIX3X2FVEXT glProgramUniformMatrix3x2fvEXT;
        PFNGLPROGRAMUNIFORMMATRIX3X4FVEXT glProgramUniformMatrix3x4fvEXT;
        PFNGLPROGRAMUNIFORMMATRIX4FVEXT glProgramUniformMatrix4fvEXT;
        PFNGLPROGRAMUNIFORMMATRIX4X2FVEXT glProgramUniformMatrix4x2fvEXT;
        PFNGLPROGRAMUNIFORMMATRIX4X3FVEXT glProgramUniformMatrix4x3fvEXT;
        PFNGLPUSHGROUPMARKEREXT glPushGroupMarkerEXT;
        PFNGLQUERYCOUNTEREXT glQueryCounterEXT;
        PFNGLRASTERSAMPLESEXT glRasterSamplesEXT;
        PFNGLREADBUFFERINDEXEDEXT glReadBufferIndexedEXT;
        PFNGLREADBUFFERNV glReadBufferNV;
        PFNGLREADNPIXELSEXT glReadnPixelsEXT;
        PFNGLREADNPIXELSKHR glReadnPixelsKHR;
        PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLE glRenderbufferStorageMultisampleANGLE;
        PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLE glRenderbufferStorageMultisampleAPPLE;
        PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXT glRenderbufferStorageMultisampleEXT;
        PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG glRenderbufferStorageMultisampleIMG;
        PFNGLRENDERBUFFERSTORAGEMULTISAMPLENV glRenderbufferStorageMultisampleNV;
        PFNGLRESOLVEDEPTHVALUESNV glResolveDepthValuesNV;
        PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLE glResolveMultisampleFramebufferAPPLE;
        PFNGLSAMPLERPARAMETERIIVOES glSamplerParameterIivOES;
        PFNGLSAMPLERPARAMETERIUIVOES glSamplerParameterIuivOES;
        PFNGLSCISSORARRAYVNV glScissorArrayvNV;
        PFNGLSCISSORINDEXEDNV glScissorIndexedNV;
        PFNGLSCISSORINDEXEDVNV glScissorIndexedvNV;
        PFNGLSELECTPERFMONITORCOUNTERSAMD glSelectPerfMonitorCountersAMD;
        PFNGLSETFENCENV glSetFenceNV;
        PFNGLSTARTTILINGQCOM glStartTilingQCOM;
        PFNGLSTENCILFILLPATHINSTANCEDNV glStencilFillPathInstancedNV;
        PFNGLSTENCILFILLPATHNV glStencilFillPathNV;
        PFNGLSTENCILSTROKEPATHINSTANCEDNV glStencilStrokePathInstancedNV;
        PFNGLSTENCILSTROKEPATHNV glStencilStrokePathNV;
        PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNV glStencilThenCoverFillPathInstancedNV;
        PFNGLSTENCILTHENCOVERFILLPATHNV glStencilThenCoverFillPathNV;
        PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNV glStencilThenCoverStrokePathInstancedNV;
        PFNGLSTENCILTHENCOVERSTROKEPATHNV glStencilThenCoverStrokePathNV;
        PFNGLSUBPIXELPRECISIONBIASNV glSubpixelPrecisionBiasNV;
        PFNGLTESTFENCENV glTestFenceNV;
        PFNGLTEXBUFFEROES glTexBufferOES;
        PFNGLTEXBUFFERRANGEOES glTexBufferRangeOES;
        PFNGLTEXIMAGE3DOES glTexImage3DOES;
        PFNGLTEXPAGECOMMITMENTEXT glTexPageCommitmentEXT;
        PFNGLTEXPARAMETERIIVOES glTexParameterIivOES;
        PFNGLTEXPARAMETERIUIVOES glTexParameterIuivOES;
        PFNGLTEXSTORAGE1DEXT glTexStorage1DEXT;
        PFNGLTEXSTORAGE2DEXT glTexStorage2DEXT;
        PFNGLTEXSTORAGE3DEXT glTexStorage3DEXT;
        PFNGLTEXSUBIMAGE3DOES glTexSubImage3DOES;
        PFNGLTEXTURESTORAGE1DEXT glTextureStorage1DEXT;
        PFNGLTEXTURESTORAGE2DEXT glTextureStorage2DEXT;
        PFNGLTEXTURESTORAGE3DEXT glTextureStorage3DEXT;
        PFNGLTEXTUREVIEWEXT glTextureViewEXT;
        PFNGLTEXTUREVIEWOES glTextureViewOES;
        PFNGLTRANSFORMPATHNV glTransformPathNV;
        PFNGLUNIFORMHANDLEUI64NV glUniformHandleui64NV;
        PFNGLUNIFORMHANDLEUI64VNV glUniformHandleui64vNV;
        PFNGLUNIFORMMATRIX2X3FVNV glUniformMatrix2x3fvNV;
        PFNGLUNIFORMMATRIX2X4FVNV glUniformMatrix2x4fvNV;
        PFNGLUNIFORMMATRIX3X2FVNV glUniformMatrix3x2fvNV;
        PFNGLUNIFORMMATRIX3X4FVNV glUniformMatrix3x4fvNV;
        PFNGLUNIFORMMATRIX4X2FVNV glUniformMatrix4x2fvNV;
        PFNGLUNIFORMMATRIX4X3FVNV glUniformMatrix4x3fvNV;
        PFNGLUNMAPBUFFEROES glUnmapBufferOES;
        PFNGLUSEPROGRAMSTAGESEXT glUseProgramStagesEXT;
        PFNGLVALIDATEPROGRAMPIPELINEEXT glValidateProgramPipelineEXT;
        PFNGLVERTEXATTRIBDIVISORANGLE glVertexAttribDivisorANGLE;
        PFNGLVERTEXATTRIBDIVISOREXT glVertexAttribDivisorEXT;
        PFNGLVERTEXATTRIBDIVISORNV glVertexAttribDivisorNV;
        PFNGLVIEWPORTARRAYVNV glViewportArrayvNV;
        PFNGLVIEWPORTINDEXEDFNV glViewportIndexedfNV;
        PFNGLVIEWPORTINDEXEDFVNV glViewportIndexedfvNV;
        PFNGLWAITSYNCAPPLE glWaitSyncAPPLE;
        PFNGLWEIGHTPATHSNV glWeightPathsNV;
        PFNGLBLENDBARRIER glBlendBarrier;
        PFNGLBLENDCOLOR glBlendColor;
        PFNGLBLENDEQUATION glBlendEquation;
        PFNGLBLENDEQUATIONSEPARATE glBlendEquationSeparate;
        PFNGLBLENDEQUATIONSEPARATEI glBlendEquationSeparatei;
        PFNGLBLENDEQUATIONI glBlendEquationi;
        PFNGLBLENDFUNC glBlendFunc;
        PFNGLBLENDFUNCSEPARATE glBlendFuncSeparate;
        PFNGLBLENDFUNCSEPARATEI glBlendFuncSeparatei;
        PFNGLBLENDFUNCI glBlendFunci;
        PFNGLDEPTHFUNC glDepthFunc;
        PFNGLSAMPLECOVERAGE glSampleCoverage;
        PFNGLSAMPLEMASKI glSampleMaski;
        PFNGLSCISSOR glScissor;
        PFNGLSTENCILFUNC glStencilFunc;
        PFNGLSTENCILFUNCSEPARATE glStencilFuncSeparate;
        PFNGLSTENCILOP glStencilOp;
        PFNGLSTENCILOPSEPARATE glStencilOpSeparate;
        PFNGLBINDFRAMEBUFFER glBindFramebuffer;
        PFNGLBINDRENDERBUFFER glBindRenderbuffer;
        PFNGLBLITFRAMEBUFFER glBlitFramebuffer;
        PFNGLCHECKFRAMEBUFFERSTATUS glCheckFramebufferStatus;
        PFNGLCLEAR glClear;
        PFNGLCLEARBUFFERFI glClearBufferfi;
        PFNGLCLEARBUFFERFV glClearBufferfv;
        PFNGLCLEARBUFFERIV glClearBufferiv;
        PFNGLCLEARBUFFERUIV glClearBufferuiv;
        PFNGLCLEARCOLOR glClearColor;
        PFNGLCLEARDEPTHF glClearDepthf;
        PFNGLCLEARSTENCIL glClearStencil;
        PFNGLCOLORMASK glColorMask;
        PFNGLCOLORMASKI glColorMaski;
        PFNGLDELETEFRAMEBUFFERS glDeleteFramebuffers;
        PFNGLDELETERENDERBUFFERS glDeleteRenderbuffers;
        PFNGLDEPTHMASK glDepthMask;
        PFNGLDRAWBUFFERS glDrawBuffers;
        PFNGLFRAMEBUFFERPARAMETERI glFramebufferParameteri;
        PFNGLFRAMEBUFFERRENDERBUFFER glFramebufferRenderbuffer;
        PFNGLFRAMEBUFFERTEXTURE glFramebufferTexture;
        PFNGLFRAMEBUFFERTEXTURE2D glFramebufferTexture2D;
        PFNGLFRAMEBUFFERTEXTURELAYER glFramebufferTextureLayer;
        PFNGLGENFRAMEBUFFERS glGenFramebuffers;
        PFNGLGENRENDERBUFFERS glGenRenderbuffers;
        PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIV glGetFramebufferAttachmentParameteriv;
        PFNGLGETFRAMEBUFFERPARAMETERIV glGetFramebufferParameteriv;
        PFNGLGETRENDERBUFFERPARAMETERIV glGetRenderbufferParameteriv;
        PFNGLINVALIDATEFRAMEBUFFER glInvalidateFramebuffer;
        PFNGLINVALIDATESUBFRAMEBUFFER glInvalidateSubFramebuffer;
        PFNGLISFRAMEBUFFER glIsFramebuffer;
        PFNGLISRENDERBUFFER glIsRenderbuffer;
        PFNGLREADBUFFER glReadBuffer;
        PFNGLREADPIXELS glReadPixels;
        PFNGLREADNPIXELS glReadnPixels;
        PFNGLRENDERBUFFERSTORAGE glRenderbufferStorage;
        PFNGLRENDERBUFFERSTORAGEMULTISAMPLE glRenderbufferStorageMultisample;
        PFNGLSTENCILMASK glStencilMask;
        PFNGLSTENCILMASKSEPARATE glStencilMaskSeparate;
        PFNGLDISABLE glDisable;
        PFNGLDISABLEI glDisablei;
        PFNGLENABLE glEnable;
        PFNGLENABLEI glEnablei;
        PFNGLFINISH glFinish;
        PFNGLFLUSH glFlush;
        PFNGLFLUSHMAPPEDBUFFERRANGE glFlushMappedBufferRange;
        PFNGLGETERROR glGetError;
        PFNGLGETGRAPHICSRESETSTATUS glGetGraphicsResetStatus;
        PFNGLHINT glHint;
        PFNGLACTIVESHADERPROGRAM glActiveShaderProgram;
        PFNGLATTACHSHADER glAttachShader;
        PFNGLBINDATTRIBLOCATION glBindAttribLocation;
        PFNGLBINDPROGRAMPIPELINE glBindProgramPipeline;
        PFNGLCOMPILESHADER glCompileShader;
        PFNGLCREATEPROGRAM glCreateProgram;
        PFNGLCREATESHADER glCreateShader;
        PFNGLCREATESHADERPROGRAMV glCreateShaderProgramv;
        PFNGLDELETEPROGRAM glDeleteProgram;
        PFNGLDELETEPROGRAMPIPELINES glDeleteProgramPipelines;
        PFNGLDELETESHADER glDeleteShader;
        PFNGLDETACHSHADER glDetachShader;
        PFNGLDISPATCHCOMPUTE glDispatchCompute;
        PFNGLDISPATCHCOMPUTEINDIRECT glDispatchComputeIndirect;
        PFNGLGENPROGRAMPIPELINES glGenProgramPipelines;
        PFNGLGETACTIVEATTRIB glGetActiveAttrib;
        PFNGLGETACTIVEUNIFORM glGetActiveUniform;
        PFNGLGETACTIVEUNIFORMBLOCKNAME glGetActiveUniformBlockName;
        PFNGLGETACTIVEUNIFORMBLOCKIV glGetActiveUniformBlockiv;
        PFNGLGETACTIVEUNIFORMSIV glGetActiveUniformsiv;
        PFNGLGETATTACHEDSHADERS glGetAttachedShaders;
        PFNGLGETATTRIBLOCATION glGetAttribLocation;
        PFNGLGETFRAGDATALOCATION glGetFragDataLocation;
        PFNGLGETPROGRAMBINARY glGetProgramBinary;
        PFNGLGETPROGRAMINFOLOG glGetProgramInfoLog;
        PFNGLGETPROGRAMINTERFACEIV glGetProgramInterfaceiv;
        PFNGLGETPROGRAMPIPELINEINFOLOG glGetProgramPipelineInfoLog;
        PFNGLGETPROGRAMPIPELINEIV glGetProgramPipelineiv;
        PFNGLGETPROGRAMRESOURCEINDEX glGetProgramResourceIndex;
        PFNGLGETPROGRAMRESOURCELOCATION glGetProgramResourceLocation;
        PFNGLGETPROGRAMRESOURCENAME glGetProgramResourceName;
        PFNGLGETPROGRAMRESOURCEIV glGetProgramResourceiv;
        PFNGLGETPROGRAMIV glGetProgramiv;
        PFNGLGETSHADERINFOLOG glGetShaderInfoLog;
        PFNGLGETSHADERPRECISIONFORMAT glGetShaderPrecisionFormat;
        PFNGLGETSHADERSOURCE glGetShaderSource;
        PFNGLGETSHADERIV glGetShaderiv;
        PFNGLGETUNIFORMBLOCKINDEX glGetUniformBlockIndex;
        PFNGLGETUNIFORMINDICES glGetUniformIndices;
        PFNGLGETUNIFORMLOCATION glGetUniformLocation;
        PFNGLGETUNIFORMFV glGetUniformfv;
        PFNGLGETUNIFORMIV glGetUniformiv;
        PFNGLGETUNIFORMUIV glGetUniformuiv;
        PFNGLGETNUNIFORMFV glGetnUniformfv;
        PFNGLGETNUNIFORMIV glGetnUniformiv;
        PFNGLGETNUNIFORMUIV glGetnUniformuiv;
        PFNGLISPROGRAM glIsProgram;
        PFNGLISPROGRAMPIPELINE glIsProgramPipeline;
        PFNGLISSHADER glIsShader;
        PFNGLLINKPROGRAM glLinkProgram;
        PFNGLMEMORYBARRIER glMemoryBarrier;
        PFNGLMEMORYBARRIERBYREGION glMemoryBarrierByRegion;
        PFNGLPROGRAMBINARY glProgramBinary;
        PFNGLPROGRAMPARAMETERI glProgramParameteri;
        PFNGLPROGRAMUNIFORM1F glProgramUniform1f;
        PFNGLPROGRAMUNIFORM1FV glProgramUniform1fv;
        PFNGLPROGRAMUNIFORM1I glProgramUniform1i;
        PFNGLPROGRAMUNIFORM1IV glProgramUniform1iv;
        PFNGLPROGRAMUNIFORM1UI glProgramUniform1ui;
        PFNGLPROGRAMUNIFORM1UIV glProgramUniform1uiv;
        PFNGLPROGRAMUNIFORM2F glProgramUniform2f;
        PFNGLPROGRAMUNIFORM2FV glProgramUniform2fv;
        PFNGLPROGRAMUNIFORM2I glProgramUniform2i;
        PFNGLPROGRAMUNIFORM2IV glProgramUniform2iv;
        PFNGLPROGRAMUNIFORM2UI glProgramUniform2ui;
        PFNGLPROGRAMUNIFORM2UIV glProgramUniform2uiv;
        PFNGLPROGRAMUNIFORM3F glProgramUniform3f;
        PFNGLPROGRAMUNIFORM3FV glProgramUniform3fv;
        PFNGLPROGRAMUNIFORM3I glProgramUniform3i;
        PFNGLPROGRAMUNIFORM3IV glProgramUniform3iv;
        PFNGLPROGRAMUNIFORM3UI glProgramUniform3ui;
        PFNGLPROGRAMUNIFORM3UIV glProgramUniform3uiv;
        PFNGLPROGRAMUNIFORM4F glProgramUniform4f;
        PFNGLPROGRAMUNIFORM4FV glProgramUniform4fv;
        PFNGLPROGRAMUNIFORM4I glProgramUniform4i;
        PFNGLPROGRAMUNIFORM4IV glProgramUniform4iv;
        PFNGLPROGRAMUNIFORM4UI glProgramUniform4ui;
        PFNGLPROGRAMUNIFORM4UIV glProgramUniform4uiv;
        PFNGLPROGRAMUNIFORMMATRIX2FV glProgramUniformMatrix2fv;
        PFNGLPROGRAMUNIFORMMATRIX2X3FV glProgramUniformMatrix2x3fv;
        PFNGLPROGRAMUNIFORMMATRIX2X4FV glProgramUniformMatrix2x4fv;
        PFNGLPROGRAMUNIFORMMATRIX3FV glProgramUniformMatrix3fv;
        PFNGLPROGRAMUNIFORMMATRIX3X2FV glProgramUniformMatrix3x2fv;
        PFNGLPROGRAMUNIFORMMATRIX3X4FV glProgramUniformMatrix3x4fv;
        PFNGLPROGRAMUNIFORMMATRIX4FV glProgramUniformMatrix4fv;
        PFNGLPROGRAMUNIFORMMATRIX4X2FV glProgramUniformMatrix4x2fv;
        PFNGLPROGRAMUNIFORMMATRIX4X3FV glProgramUniformMatrix4x3fv;
        PFNGLRELEASESHADERCOMPILER glReleaseShaderCompiler;
        PFNGLSHADERBINARY glShaderBinary;
        PFNGLSHADERSOURCE glShaderSource;
        PFNGLUNIFORM1F glUniform1f;
        PFNGLUNIFORM1FV glUniform1fv;
        PFNGLUNIFORM1I glUniform1i;
        PFNGLUNIFORM1IV glUniform1iv;
        PFNGLUNIFORM1UI glUniform1ui;
        PFNGLUNIFORM1UIV glUniform1uiv;
        PFNGLUNIFORM2F glUniform2f;
        PFNGLUNIFORM2FV glUniform2fv;
        PFNGLUNIFORM2I glUniform2i;
        PFNGLUNIFORM2IV glUniform2iv;
        PFNGLUNIFORM2UI glUniform2ui;
        PFNGLUNIFORM2UIV glUniform2uiv;
        PFNGLUNIFORM3F glUniform3f;
        PFNGLUNIFORM3FV glUniform3fv;
        PFNGLUNIFORM3I glUniform3i;
        PFNGLUNIFORM3IV glUniform3iv;
        PFNGLUNIFORM3UI glUniform3ui;
        PFNGLUNIFORM3UIV glUniform3uiv;
        PFNGLUNIFORM4F glUniform4f;
        PFNGLUNIFORM4FV glUniform4fv;
        PFNGLUNIFORM4I glUniform4i;
        PFNGLUNIFORM4IV glUniform4iv;
        PFNGLUNIFORM4UI glUniform4ui;
        PFNGLUNIFORM4UIV glUniform4uiv;
        PFNGLUNIFORMBLOCKBINDING glUniformBlockBinding;
        PFNGLUNIFORMMATRIX2FV glUniformMatrix2fv;
        PFNGLUNIFORMMATRIX2X3FV glUniformMatrix2x3fv;
        PFNGLUNIFORMMATRIX2X4FV glUniformMatrix2x4fv;
        PFNGLUNIFORMMATRIX3FV glUniformMatrix3fv;
        PFNGLUNIFORMMATRIX3X2FV glUniformMatrix3x2fv;
        PFNGLUNIFORMMATRIX3X4FV glUniformMatrix3x4fv;
        PFNGLUNIFORMMATRIX4FV glUniformMatrix4fv;
        PFNGLUNIFORMMATRIX4X2FV glUniformMatrix4x2fv;
        PFNGLUNIFORMMATRIX4X3FV glUniformMatrix4x3fv;
        PFNGLUSEPROGRAM glUseProgram;
        PFNGLUSEPROGRAMSTAGES glUseProgramStages;
        PFNGLVALIDATEPROGRAM glValidateProgram;
        PFNGLVALIDATEPROGRAMPIPELINE glValidateProgramPipeline;
        PFNGLCULLFACE glCullFace;
        PFNGLDEPTHRANGEF glDepthRangef;
        PFNGLFRONTFACE glFrontFace;
        PFNGLGETMULTISAMPLEFV glGetMultisamplefv;
        PFNGLLINEWIDTH glLineWidth;
        PFNGLMINSAMPLESHADING glMinSampleShading;
        PFNGLPOLYGONOFFSET glPolygonOffset;
        PFNGLVIEWPORT glViewport;
        PFNGLGETBOOLEANI_V glGetBooleani_v;
        PFNGLGETBOOLEANV glGetBooleanv;
        PFNGLGETFLOATV glGetFloatv;
        PFNGLGETINTEGER64I_V glGetInteger64i_v;
        PFNGLGETINTEGER64V glGetInteger64v;
        PFNGLGETINTEGERI_V glGetIntegeri_v;
        PFNGLGETINTEGERV glGetIntegerv;
        PFNGLGETINTERNALFORMATIV glGetInternalformativ;
        PFNGLGETSTRING glGetString;
        PFNGLGETSTRINGI glGetStringi;
        PFNGLISENABLED glIsEnabled;
        PFNGLISENABLEDI glIsEnabledi;
        PFNGLCLIENTWAITSYNC glClientWaitSync;
        PFNGLDELETESYNC glDeleteSync;
        PFNGLFENCESYNC glFenceSync;
        PFNGLGETSYNCIV glGetSynciv;
        PFNGLISSYNC glIsSync;
        PFNGLWAITSYNC glWaitSync;
        PFNGLACTIVETEXTURE glActiveTexture;
        PFNGLBINDIMAGETEXTURE glBindImageTexture;
        PFNGLBINDSAMPLER glBindSampler;
        PFNGLBINDTEXTURE glBindTexture;
        PFNGLCOMPRESSEDTEXIMAGE2D glCompressedTexImage2D;
        PFNGLCOMPRESSEDTEXIMAGE3D glCompressedTexImage3D;
        PFNGLCOMPRESSEDTEXSUBIMAGE2D glCompressedTexSubImage2D;
        PFNGLCOMPRESSEDTEXSUBIMAGE3D glCompressedTexSubImage3D;
        PFNGLCOPYIMAGESUBDATA glCopyImageSubData;
        PFNGLCOPYTEXIMAGE2D glCopyTexImage2D;
        PFNGLCOPYTEXSUBIMAGE2D glCopyTexSubImage2D;
        PFNGLCOPYTEXSUBIMAGE3D glCopyTexSubImage3D;
        PFNGLDELETESAMPLERS glDeleteSamplers;
        PFNGLDELETETEXTURES glDeleteTextures;
        PFNGLGENSAMPLERS glGenSamplers;
        PFNGLGENTEXTURES glGenTextures;
        PFNGLGENERATEMIPMAP glGenerateMipmap;
        PFNGLGETSAMPLERPARAMETERIIV glGetSamplerParameterIiv;
        PFNGLGETSAMPLERPARAMETERIUIV glGetSamplerParameterIuiv;
        PFNGLGETSAMPLERPARAMETERFV glGetSamplerParameterfv;
        PFNGLGETSAMPLERPARAMETERIV glGetSamplerParameteriv;
        PFNGLGETTEXLEVELPARAMETERFV glGetTexLevelParameterfv;
        PFNGLGETTEXLEVELPARAMETERIV glGetTexLevelParameteriv;
        PFNGLGETTEXPARAMETERIIV glGetTexParameterIiv;
        PFNGLGETTEXPARAMETERIUIV glGetTexParameterIuiv;
        PFNGLGETTEXPARAMETERFV glGetTexParameterfv;
        PFNGLGETTEXPARAMETERIV glGetTexParameteriv;
        PFNGLISSAMPLER glIsSampler;
        PFNGLISTEXTURE glIsTexture;
        PFNGLPIXELSTOREI glPixelStorei;
        PFNGLSAMPLERPARAMETERIIV glSamplerParameterIiv;
        PFNGLSAMPLERPARAMETERIUIV glSamplerParameterIuiv;
        PFNGLSAMPLERPARAMETERF glSamplerParameterf;
        PFNGLSAMPLERPARAMETERFV glSamplerParameterfv;
        PFNGLSAMPLERPARAMETERI glSamplerParameteri;
        PFNGLSAMPLERPARAMETERIV glSamplerParameteriv;
        PFNGLTEXBUFFER glTexBuffer;
        PFNGLTEXBUFFERRANGE glTexBufferRange;
        PFNGLTEXIMAGE2D glTexImage2D;
        PFNGLTEXIMAGE3D glTexImage3D;
        PFNGLTEXPARAMETERIIV glTexParameterIiv;
        PFNGLTEXPARAMETERIUIV glTexParameterIuiv;
        PFNGLTEXPARAMETERF glTexParameterf;
        PFNGLTEXPARAMETERFV glTexParameterfv;
        PFNGLTEXPARAMETERI glTexParameteri;
        PFNGLTEXPARAMETERIV glTexParameteriv;
        PFNGLTEXSTORAGE2D glTexStorage2D;
        PFNGLTEXSTORAGE2DMULTISAMPLE glTexStorage2DMultisample;
        PFNGLTEXSTORAGE3D glTexStorage3D;
        PFNGLTEXSTORAGE3DMULTISAMPLE glTexStorage3DMultisample;
        PFNGLTEXSUBIMAGE2D glTexSubImage2D;
        PFNGLTEXSUBIMAGE3D glTexSubImage3D;
        PFNGLBEGINTRANSFORMFEEDBACK glBeginTransformFeedback;
        PFNGLBINDTRANSFORMFEEDBACK glBindTransformFeedback;
        PFNGLDELETETRANSFORMFEEDBACKS glDeleteTransformFeedbacks;
        PFNGLENDTRANSFORMFEEDBACK glEndTransformFeedback;
        PFNGLGENTRANSFORMFEEDBACKS glGenTransformFeedbacks;
        PFNGLGETTRANSFORMFEEDBACKVARYING glGetTransformFeedbackVarying;
        PFNGLISTRANSFORMFEEDBACK glIsTransformFeedback;
        PFNGLPAUSETRANSFORMFEEDBACK glPauseTransformFeedback;
        PFNGLRESUMETRANSFORMFEEDBACK glResumeTransformFeedback;
        PFNGLTRANSFORMFEEDBACKVARYINGS glTransformFeedbackVaryings;
        PFNGLBINDVERTEXARRAY glBindVertexArray;
        PFNGLBINDVERTEXBUFFER glBindVertexBuffer;
        PFNGLDELETEVERTEXARRAYS glDeleteVertexArrays;
        PFNGLDISABLEVERTEXATTRIBARRAY glDisableVertexAttribArray;
        PFNGLENABLEVERTEXATTRIBARRAY glEnableVertexAttribArray;
        PFNGLGENVERTEXARRAYS glGenVertexArrays;
        PFNGLGETVERTEXATTRIBIIV glGetVertexAttribIiv;
        PFNGLGETVERTEXATTRIBIUIV glGetVertexAttribIuiv;
        PFNGLGETVERTEXATTRIBPOINTERV glGetVertexAttribPointerv;
        PFNGLGETVERTEXATTRIBFV glGetVertexAttribfv;
        PFNGLGETVERTEXATTRIBIV glGetVertexAttribiv;
        PFNGLISVERTEXARRAY glIsVertexArray;
        PFNGLVERTEXATTRIB1F glVertexAttrib1f;
        PFNGLVERTEXATTRIB1FV glVertexAttrib1fv;
        PFNGLVERTEXATTRIB2F glVertexAttrib2f;
        PFNGLVERTEXATTRIB2FV glVertexAttrib2fv;
        PFNGLVERTEXATTRIB3F glVertexAttrib3f;
        PFNGLVERTEXATTRIB3FV glVertexAttrib3fv;
        PFNGLVERTEXATTRIB4F glVertexAttrib4f;
        PFNGLVERTEXATTRIB4FV glVertexAttrib4fv;
        PFNGLVERTEXATTRIBBINDING glVertexAttribBinding;
        PFNGLVERTEXATTRIBDIVISOR glVertexAttribDivisor;
        PFNGLVERTEXATTRIBFORMAT glVertexAttribFormat;
        PFNGLVERTEXATTRIBI4I glVertexAttribI4i;
        PFNGLVERTEXATTRIBI4IV glVertexAttribI4iv;
        PFNGLVERTEXATTRIBI4UI glVertexAttribI4ui;
        PFNGLVERTEXATTRIBI4UIV glVertexAttribI4uiv;
        PFNGLVERTEXATTRIBIFORMAT glVertexAttribIFormat;
        PFNGLVERTEXATTRIBIPOINTER glVertexAttribIPointer;
        PFNGLVERTEXATTRIBPOINTER glVertexAttribPointer;
        PFNGLVERTEXBINDINGDIVISOR glVertexBindingDivisor;
        PFNEGLINITIALIZE eglInitialize;
        PFNEGLCREATECONTEXT eglCreateContext;
        PFNEGLMAKECURRENT eglMakeCurrent;
        PFNEGLSWAPBUFFERS eglSwapBuffers;
        PFNEGLSWAPBUFFERSWITHDAMAGEKHR eglSwapBuffersWithDamageKHR;
        PFNEGLQUERYSURFACE eglQuerySurface;
        PFNEGLQUERYCONTEXT eglQueryContext;
        PFNEGLCHOOSECONFIG eglChooseConfig;
        PFNEGLGETCONFIGATTRIB eglGetConfigAttrib;
        PFNGLXCREATECONTEXT glXCreateContext;
        PFNGLXCREATENEWCONTEXT glXCreateNewContext;
        PFNGLXMAKECONTEXTCURRENT glXMakeContextCurrent;
        PFNGLXMAKECURRENT glXMakeCurrent;
        PFNGLXSWAPBUFFERS glXSwapBuffers;
        PFNGLXQUERYDRAWABLE glXQueryDrawable;
        PFNWGLCREATECONTEXT wglCreateContext;
        PFNWGLCREATECONTEXTATTRIBSARB wglCreateContextAttribsARB;
        PFNWGLMAKECURRENT wglMakeCurrent;
        PFNWGLSWAPBUFFERS wglSwapBuffers;
        PFNCGLCREATECONTEXT CGLCreateContext;
        PFNCGLSETCURRENTCONTEXT CGLSetCurrentContext;
        PFNCGLGETSURFACE CGLGetSurface;
        PFNCGSGETSURFACEBOUNDS CGSGetSurfaceBounds;
        PFNCGLFLUSHDRAWABLE CGLFlushDrawable;
        PFNGLGETQUERYOBJECTI64V glGetQueryObjecti64v;
        PFNGLGETQUERYOBJECTUI64V glGetQueryObjectui64v;
        PFNGLALPHAFUNC glAlphaFunc;
        PFNGLALPHAFUNCX glAlphaFuncx;
        PFNGLALPHAFUNCXOES glAlphaFuncxOES;
        PFNGLBINDFRAMEBUFFEROES glBindFramebufferOES;
        PFNGLBINDRENDERBUFFEROES glBindRenderbufferOES;
        PFNGLBLENDEQUATIONOES glBlendEquationOES;
        PFNGLBLENDEQUATIONSEPARATEOES glBlendEquationSeparateOES;
        PFNGLBLENDFUNCSEPARATEOES glBlendFuncSeparateOES;
        PFNGLCHECKFRAMEBUFFERSTATUSOES glCheckFramebufferStatusOES;
        PFNGLCLEARCOLORX glClearColorx;
        PFNGLCLEARCOLORXOES glClearColorxOES;
        PFNGLCLEARDEPTHFOES glClearDepthfOES;
        PFNGLCLEARDEPTHX glClearDepthx;
        PFNGLCLEARDEPTHXOES glClearDepthxOES;
        PFNGLCLIENTACTIVETEXTURE glClientActiveTexture;
        PFNGLCLIPPLANEF glClipPlanef;
        PFNGLCLIPPLANEFIMG glClipPlanefIMG;
        PFNGLCLIPPLANEFOES glClipPlanefOES;
        PFNGLCLIPPLANEX glClipPlanex;
        PFNGLCLIPPLANEXIMG glClipPlanexIMG;
        PFNGLCLIPPLANEXOES glClipPlanexOES;
        PFNGLCOLOR4F glColor4f;
        PFNGLCOLOR4UB glColor4ub;
        PFNGLCOLOR4X glColor4x;
        PFNGLCOLOR4XOES glColor4xOES;
        PFNGLCOLORPOINTER glColorPointer;
        PFNGLCURRENTPALETTEMATRIXOES glCurrentPaletteMatrixOES;
        PFNGLDELETEFRAMEBUFFERSOES glDeleteFramebuffersOES;
        PFNGLDELETERENDERBUFFERSOES glDeleteRenderbuffersOES;
        PFNGLDEPTHRANGEFOES glDepthRangefOES;
        PFNGLDEPTHRANGEX glDepthRangex;
        PFNGLDEPTHRANGEXOES glDepthRangexOES;
        PFNGLDISABLECLIENTSTATE glDisableClientState;
        PFNGLDRAWTEXFOES glDrawTexfOES;
        PFNGLDRAWTEXFVOES glDrawTexfvOES;
        PFNGLDRAWTEXIOES glDrawTexiOES;
        PFNGLDRAWTEXIVOES glDrawTexivOES;
        PFNGLDRAWTEXSOES glDrawTexsOES;
        PFNGLDRAWTEXSVOES glDrawTexsvOES;
        PFNGLDRAWTEXXOES glDrawTexxOES;
        PFNGLDRAWTEXXVOES glDrawTexxvOES;
        PFNGLENABLECLIENTSTATE glEnableClientState;
        PFNGLFOGF glFogf;
        PFNGLFOGFV glFogfv;
        PFNGLFOGX glFogx;
        PFNGLFOGXOES glFogxOES;
        PFNGLFOGXV glFogxv;
        PFNGLFOGXVOES glFogxvOES;
        PFNGLFRAMEBUFFERRENDERBUFFEROES glFramebufferRenderbufferOES;
        PFNGLFRAMEBUFFERTEXTURE2DOES glFramebufferTexture2DOES;
        PFNGLFRUSTUMF glFrustumf;
        PFNGLFRUSTUMFOES glFrustumfOES;
        PFNGLFRUSTUMX glFrustumx;
        PFNGLFRUSTUMXOES glFrustumxOES;
        PFNGLGENFRAMEBUFFERSOES glGenFramebuffersOES;
        PFNGLGENRENDERBUFFERSOES glGenRenderbuffersOES;
        PFNGLGENERATEMIPMAPOES glGenerateMipmapOES;
        PFNGLGETCLIPPLANEF glGetClipPlanef;
        PFNGLGETCLIPPLANEFOES glGetClipPlanefOES;
        PFNGLGETCLIPPLANEX glGetClipPlanex;
        PFNGLGETCLIPPLANEXOES glGetClipPlanexOES;
        PFNGLGETFIXEDV glGetFixedv;
        PFNGLGETFIXEDVOES glGetFixedvOES;
        PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOES glGetFramebufferAttachmentParameterivOES;
        PFNGLGETLIGHTFV glGetLightfv;
        PFNGLGETLIGHTXV glGetLightxv;
        PFNGLGETLIGHTXVOES glGetLightxvOES;
        PFNGLGETMATERIALFV glGetMaterialfv;
        PFNGLGETMATERIALXV glGetMaterialxv;
        PFNGLGETMATERIALXVOES glGetMaterialxvOES;
        PFNGLGETRENDERBUFFERPARAMETERIVOES glGetRenderbufferParameterivOES;
        PFNGLGETTEXENVFV glGetTexEnvfv;
        PFNGLGETTEXENVIV glGetTexEnviv;
        PFNGLGETTEXENVXV glGetTexEnvxv;
        PFNGLGETTEXENVXVOES glGetTexEnvxvOES;
        PFNGLGETTEXGENFVOES glGetTexGenfvOES;
        PFNGLGETTEXGENIVOES glGetTexGenivOES;
        PFNGLGETTEXGENXVOES glGetTexGenxvOES;
        PFNGLGETTEXPARAMETERXV glGetTexParameterxv;
        PFNGLGETTEXPARAMETERXVOES glGetTexParameterxvOES;
        PFNGLISFRAMEBUFFEROES glIsFramebufferOES;
        PFNGLISRENDERBUFFEROES glIsRenderbufferOES;
        PFNGLLIGHTMODELF glLightModelf;
        PFNGLLIGHTMODELFV glLightModelfv;
        PFNGLLIGHTMODELX glLightModelx;
        PFNGLLIGHTMODELXOES glLightModelxOES;
        PFNGLLIGHTMODELXV glLightModelxv;
        PFNGLLIGHTMODELXVOES glLightModelxvOES;
        PFNGLLIGHTF glLightf;
        PFNGLLIGHTFV glLightfv;
        PFNGLLIGHTX glLightx;
        PFNGLLIGHTXOES glLightxOES;
        PFNGLLIGHTXV glLightxv;
        PFNGLLIGHTXVOES glLightxvOES;
        PFNGLLINEWIDTHX glLineWidthx;
        PFNGLLINEWIDTHXOES glLineWidthxOES;
        PFNGLLOADIDENTITY glLoadIdentity;
        PFNGLLOADMATRIXF glLoadMatrixf;
        PFNGLLOADMATRIXX glLoadMatrixx;
        PFNGLLOADMATRIXXOES glLoadMatrixxOES;
        PFNGLLOADPALETTEFROMMODELVIEWMATRIXOES glLoadPaletteFromModelViewMatrixOES;
        PFNGLLOGICOP glLogicOp;
        PFNGLMATERIALF glMaterialf;
        PFNGLMATERIALFV glMaterialfv;
        PFNGLMATERIALX glMaterialx;
        PFNGLMATERIALXOES glMaterialxOES;
        PFNGLMATERIALXV glMaterialxv;
        PFNGLMATERIALXVOES glMaterialxvOES;
        PFNGLMATRIXINDEXPOINTEROES glMatrixIndexPointerOES;
        PFNGLMATRIXMODE glMatrixMode;
        PFNGLMULTMATRIXF glMultMatrixf;
        PFNGLMULTMATRIXX glMultMatrixx;
        PFNGLMULTMATRIXXOES glMultMatrixxOES;
        PFNGLMULTITEXCOORD4F glMultiTexCoord4f;
        PFNGLMULTITEXCOORD4X glMultiTexCoord4x;
        PFNGLMULTITEXCOORD4XOES glMultiTexCoord4xOES;
        PFNGLNORMAL3F glNormal3f;
        PFNGLNORMAL3X glNormal3x;
        PFNGLNORMAL3XOES glNormal3xOES;
        PFNGLNORMALPOINTER glNormalPointer;
        PFNGLORTHOF glOrthof;
        PFNGLORTHOFOES glOrthofOES;
        PFNGLORTHOX glOrthox;
        PFNGLORTHOXOES glOrthoxOES;
        PFNGLPOINTPARAMETERF glPointParameterf;
        PFNGLPOINTPARAMETERFV glPointParameterfv;
        PFNGLPOINTPARAMETERX glPointParameterx;
        PFNGLPOINTPARAMETERXOES glPointParameterxOES;
        PFNGLPOINTPARAMETERXV glPointParameterxv;
        PFNGLPOINTPARAMETERXVOES glPointParameterxvOES;
        PFNGLPOINTSIZE glPointSize;
        PFNGLPOINTSIZEPOINTEROES glPointSizePointerOES;
        PFNGLPOINTSIZEX glPointSizex;
        PFNGLPOINTSIZEXOES glPointSizexOES;
        PFNGLPOLYGONOFFSETX glPolygonOffsetx;
        PFNGLPOLYGONOFFSETXOES glPolygonOffsetxOES;
        PFNGLPOPMATRIX glPopMatrix;
        PFNGLPUSHMATRIX glPushMatrix;
        PFNGLQUERYMATRIXXOES glQueryMatrixxOES;
        PFNGLRENDERBUFFERSTORAGEOES glRenderbufferStorageOES;
        PFNGLROTATEF glRotatef;
        PFNGLROTATEX glRotatex;
        PFNGLROTATEXOES glRotatexOES;
        PFNGLSAMPLECOVERAGEX glSampleCoveragex;
        PFNGLSAMPLECOVERAGEXOES glSampleCoveragexOES;
        PFNGLSCALEF glScalef;
        PFNGLSCALEX glScalex;
        PFNGLSCALEXOES glScalexOES;
        PFNGLSHADEMODEL glShadeModel;
        PFNGLTEXCOORDPOINTER glTexCoordPointer;
        PFNGLTEXENVF glTexEnvf;
        PFNGLTEXENVFV glTexEnvfv;
        PFNGLTEXENVI glTexEnvi;
        PFNGLTEXENVIV glTexEnviv;
        PFNGLTEXENVX glTexEnvx;
        PFNGLTEXENVXOES glTexEnvxOES;
        PFNGLTEXENVXV glTexEnvxv;
        PFNGLTEXENVXVOES glTexEnvxvOES;
        PFNGLTEXGENFOES glTexGenfOES;
        PFNGLTEXGENFVOES glTexGenfvOES;
        PFNGLTEXGENIOES glTexGeniOES;
        PFNGLTEXGENIVOES glTexGenivOES;
        PFNGLTEXGENXOES glTexGenxOES;
        PFNGLTEXGENXVOES glTexGenxvOES;
        PFNGLTEXPARAMETERX glTexParameterx;
        PFNGLTEXPARAMETERXOES glTexParameterxOES;
        PFNGLTEXPARAMETERXV glTexParameterxv;
        PFNGLTEXPARAMETERXVOES glTexParameterxvOES;
        PFNGLTRANSLATEF glTranslatef;
        PFNGLTRANSLATEX glTranslatex;
        PFNGLTRANSLATEXOES glTranslatexOES;
        PFNGLVERTEXPOINTER glVertexPointer;
        PFNGLWEIGHTPOINTEROES glWeightPointerOES;
        PFNGLCOLORPOINTERBOUNDS glColorPointerBounds;
        PFNGLNORMALPOINTERBOUNDS glNormalPointerBounds;
        PFNGLTEXCOORDPOINTERBOUNDS glTexCoordPointerBounds;
        PFNGLVERTEXPOINTERBOUNDS glVertexPointerBounds;
        PFNGLPOINTSIZEPOINTEROESBOUNDS glPointSizePointerOESBounds;
        PFNGLMATRIXINDEXPOINTEROESBOUNDS glMatrixIndexPointerOESBounds;
        PFNGLWEIGHTPOINTEROESBOUNDS glWeightPointerOESBounds;

    };
} // namespace gapii

#endif // GAPII_GLES_IMPORTS_H
