diff --git a/build.sh b/build.sh index c2761ae..4bc566c 100755 --- a/build.sh +++ b/build.sh @@ -1,82 +1,82 @@ -#!/bin/bash - -DEBUG_FLAGS="-g -DDEBUG -DLOG_COMPILE_DEBUG" -#DEBUG_FLAGS="-O3" - -#-------------------------------------------------------------- -# set target -#-------------------------------------------------------------- - -target="$1" -if [ -z $target ] ; then - target='lib' -fi - -shaderFlagParam="$2" -#-------------------------------------------------------------- -# Detect OS and set environment variables accordingly -#-------------------------------------------------------------- -OS=$(uname -s) - -if [ $OS = "Darwin" ] ; then - #echo "Target '$target' for macOS" - CC=clang - CXX=clang++ - DYLIB_SUFFIX='dylib' - SYS_LIBS='' - FLAGS="-mmacos-version-min=10.15.4 -maes" - CFLAGS="-std=c11" - -elif [ $OS = "Linux" ] ; then - echo "Error: Linux is not supported yet" - exit -1 -else - echo "Error: Unsupported OS $OS" - exit -1 -fi - -#-------------------------------------------------------------- -# Set paths -#-------------------------------------------------------------- -BINDIR="./bin" -SRCDIR="./src" -EXTDIR="./ext" -RESDIR="./resources" -INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$EXTDIR/angle_headers" - -#-------------------------------------------------------------- -# Build -#-------------------------------------------------------------- - -if [ ! \( -e bin \) ] ; then - mkdir ./bin -fi - -if [ $target = 'lib' ] ; then - - # compile metal shader - xcrun -sdk macosx metal $shaderFlagParam -c -o $BINDIR/metal_shader.air $SRCDIR/metal_shader.metal - xcrun -sdk macosx metallib -o $RESDIR/metal_shader.metallib $BINDIR/metal_shader.air - - # compile milepost. We use one compilation unit for all C code, and one compilation - # unit for all ObjectiveC code - $CC $DEBUG_FLAGS -c -o $BINDIR/milepost_c.o $CFLAGS $FLAGS $INCLUDES $SRCDIR/milepost.c - $CC $DEBUG_FLAGS -c -o $BINDIR/milepost_objc.o $FLAGS $INCLUDES $SRCDIR/milepost.m - - # build the static library - libtool -static -o $BINDIR/libmilepost.a $BINDIR/milepost_c.o $BINDIR/milepost_objc.o - -else - # additional targets - if [ $target = 'test' ] ; then - pushd examples/test_app - ./build.sh - popd - - elif [ $target = 'clean' ] ; then - rm -r ./bin - else - echo "unrecognized target $target" - exit -1 - fi -fi +#!/bin/bash + +DEBUG_FLAGS="-g -DDEBUG -DLOG_COMPILE_DEBUG" +#DEBUG_FLAGS="-O3" + +#-------------------------------------------------------------- +# set target +#-------------------------------------------------------------- + +target="$1" +if [ -z $target ] ; then + target='lib' +fi + +shaderFlagParam="$2" +#-------------------------------------------------------------- +# Detect OS and set environment variables accordingly +#-------------------------------------------------------------- +OS=$(uname -s) + +if [ $OS = "Darwin" ] ; then + #echo "Target '$target' for macOS" + CC=clang + CXX=clang++ + DYLIB_SUFFIX='dylib' + SYS_LIBS='' + FLAGS="-mmacos-version-min=10.15.4 -maes" + CFLAGS="-std=c11" + +elif [ $OS = "Linux" ] ; then + echo "Error: Linux is not supported yet" + exit -1 +else + echo "Error: Unsupported OS $OS" + exit -1 +fi + +#-------------------------------------------------------------- +# Set paths +#-------------------------------------------------------------- +BINDIR="./bin" +SRCDIR="./src" +EXTDIR="./ext" +RESDIR="./resources" +INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$EXTDIR -I$EXTDIR/angle_headers" + +#-------------------------------------------------------------- +# Build +#-------------------------------------------------------------- + +if [ ! \( -e bin \) ] ; then + mkdir ./bin +fi + +if [ $target = 'lib' ] ; then + + # compile metal shader + xcrun -sdk macosx metal $shaderFlagParam -c -o $BINDIR/mtl_shader.air $SRCDIR/mtl_shader.metal + xcrun -sdk macosx metallib -o $RESDIR/mtl_shader.metallib $BINDIR/mtl_shader.air + + # compile milepost. We use one compilation unit for all C code, and one compilation + # unit for all ObjectiveC code + $CC $DEBUG_FLAGS -c -o $BINDIR/milepost_c.o $CFLAGS $FLAGS $INCLUDES $SRCDIR/milepost.c + $CC $DEBUG_FLAGS -c -o $BINDIR/milepost_objc.o $FLAGS $INCLUDES $SRCDIR/milepost.m + + # build the static library + libtool -static -o $BINDIR/libmilepost.a $BINDIR/milepost_c.o $BINDIR/milepost_objc.o + +else + # additional targets + if [ $target = 'test' ] ; then + pushd examples/test_app + ./build.sh + popd + + elif [ $target = 'clean' ] ; then + rm -r ./bin + else + echo "unrecognized target $target" + exit -1 + fi +fi diff --git a/examples/canvas/build.sh b/examples/canvas/build.sh index de7d701..65a3ee3 100755 --- a/examples/canvas/build.sh +++ b/examples/canvas/build.sh @@ -1,11 +1,11 @@ -#!/bin/bash - -BINDIR=../../bin -RESDIR=../../resources -SRCDIR=../../src - -INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$SRCDIR/app" -LIBS="-L$BINDIR -lmilepost -framework Carbon -framework Cocoa -framework Metal -framework QuartzCore" -FLAGS="-mmacos-version-min=10.15.4 -DDEBUG -DLOG_COMPILE_DEBUG -Wl,-dead_strip" - -clang -g $FLAGS $LIBS $INCLUDES -o $BINDIR/example_canvas main.c +#!/bin/bash + +BINDIR=../../bin +RESDIR=../../resources +SRCDIR=../../src + +INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$SRCDIR/app" +LIBS="-L$BINDIR -lmilepost -framework Carbon -framework Cocoa -framework Metal -framework QuartzCore" +FLAGS="-mmacos-version-min=10.15.4 -DDEBUG -DLOG_COMPILE_DEBUG -Wl,-dead_strip" + +clang -g $FLAGS $LIBS $INCLUDES -o $BINDIR/example_canvas main.c diff --git a/examples/canvas/main.c b/examples/canvas/main.c index 220304c..14d2aa3 100644 --- a/examples/canvas/main.c +++ b/examples/canvas/main.c @@ -52,7 +52,7 @@ mg_font create_font() int main() { - LogLevel(LOG_LEVEL_DEBUG); + LogLevel(LOG_LEVEL_WARNING); mp_init(); mp_clock_init(); //TODO put that in mp_init()? diff --git a/examples/perf_text/build.sh b/examples/perf_text/build.sh old mode 100644 new mode 100755 index ff0942b..99833e0 --- a/examples/perf_text/build.sh +++ b/examples/perf_text/build.sh @@ -8,4 +8,4 @@ INCLUDES="-I$SRCDIR -I$SRCDIR/util -I$SRCDIR/platform -I$SRCDIR/app -I$SRCDIR/gr LIBS="-L$BINDIR -lmilepost -framework Cocoa -framework Carbon -framework Metal -framework QuartzCore" FLAGS="-O2 -mmacos-version-min=10.15.4" -clang++ -g $FLAGS $LIBS $INCLUDES -o $BINDIR/textbench main.cpp +clang -g $FLAGS $LIBS $INCLUDES -o $BINDIR/perf_text main.c diff --git a/examples/triangleGLES/main.c b/examples/triangleGLES/main.c index 00024c5..97c8bac 100644 --- a/examples/triangleGLES/main.c +++ b/examples/triangleGLES/main.c @@ -125,69 +125,6 @@ int main() mp_request_quit(); } break; - case MP_EVENT_WINDOW_RESIZE: - { - printf("resized, rect = {%f, %f, %f, %f}\n", - event.frame.rect.x, - event.frame.rect.y, - event.frame.rect.w, - event.frame.rect.h); - } break; - - case MP_EVENT_WINDOW_MOVE: - { - printf("moved, rect = {%f, %f, %f, %f}\n", - event.frame.rect.x, - event.frame.rect.y, - event.frame.rect.w, - event.frame.rect.h); - } break; - - case MP_EVENT_MOUSE_MOVE: - { - printf("mouse moved, pos = {%f, %f}, delta = {%f, %f}\n", - event.move.x, - event.move.y, - event.move.deltaX, - event.move.deltaY); - } break; - - case MP_EVENT_MOUSE_WHEEL: - { - printf("mouse wheel, delta = {%f, %f}\n", - event.move.deltaX, - event.move.deltaY); - } break; - - case MP_EVENT_MOUSE_ENTER: - { - printf("mouse enter\n"); - } break; - - case MP_EVENT_MOUSE_LEAVE: - { - printf("mouse leave\n"); - } break; - - case MP_EVENT_MOUSE_BUTTON: - { - printf("mouse button %i: %i\n", - event.key.code, - event.key.action == MP_KEY_PRESS ? 1 : 0); - } break; - - case MP_EVENT_KEYBOARD_KEY: - { - printf("key %i: %s\n", - event.key.code, - event.key.action == MP_KEY_PRESS ? "press" : (event.key.action == MP_KEY_RELEASE ? "release" : "repeat")); - } break; - - case MP_EVENT_KEYBOARD_CHAR: - { - printf("entered char %s\n", event.character.sequence); - } break; - default: break; } diff --git a/scripts/glapi.py b/scripts/glapi.py index aefc661..ce553df 100644 --- a/scripts/glapi.py +++ b/scripts/glapi.py @@ -61,7 +61,7 @@ def emit_doc(f, name, ext): f.write("*\t@note: auto-generated by glapi.py from gl.xml\n") f.write("*\t@date: %s\n" % datetime.now().strftime("%d/%m%Y")) f.write("*\n") - f.write("/********************************************************/\n") + f.write("*********************************************************/\n") def emit_begin_guard(f, name): @@ -143,7 +143,7 @@ f = open(loaderCPath, 'w') emit_doc(f, loaderName, '.c') -f.write('#include"' + apiName + '.h"\n') +f.write('#include"' + loaderName + '.h"\n') f.write('#include"platform.h"\n\n') f.write("mp_thread_local mg_gl_api* __mgGLAPI = 0;\n\n") diff --git a/src/egl_surface.c b/src/egl_surface.c index ef82c15..e6f0eae 100644 --- a/src/egl_surface.c +++ b/src/egl_surface.c @@ -11,6 +11,7 @@ #include #include +#include"mp_app_internal.h" #include"graphics_internal.h" #include"gl_loader.h" @@ -34,7 +35,7 @@ typedef struct mg_egl_surface void* mg_egl_get_native_surface(mp_window_data* window) { - return((void*)window->osx.nsView); + return((void*)window->osx.nsView.layer); } #elif OS_WIN64 #include"win32_app.h" @@ -94,10 +95,20 @@ mg_surface mg_egl_surface_create_for_window(mp_window window) surface->nativeSurface = mg_egl_get_native_surface(windowData); - EGLAttrib displayAttribs[] = { - EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE, - EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE, - EGL_NONE}; + + #if OS_MACOS + //NOTE: we need to explicitly set EGL_PLATFORM_ANGLE_TYPE_ANGLE to EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE, because + // EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE defaults to using CGL, and eglSetSwapInterval is broken for this backend + EGLAttrib displayAttribs[] = { + EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE, + EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE, + EGL_NONE}; + #else + EGLAttrib displayAttribs[] = { + EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE, + EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE, + EGL_NONE}; + #endif surface->eglDisplay = eglGetPlatformDisplay(EGL_PLATFORM_ANGLE_ANGLE, (void*)EGL_DEFAULT_DISPLAY, displayAttribs); eglInitialize(surface->eglDisplay, NULL, NULL); @@ -124,7 +135,7 @@ mg_surface mg_egl_surface_create_for_window(mp_window window) eglBindAPI(EGL_OPENGL_ES_API); EGLint contextAttributes[] = { EGL_CONTEXT_MAJOR_VERSION_KHR, 3, - EGL_CONTEXT_MINOR_VERSION_KHR, 1, + EGL_CONTEXT_MINOR_VERSION_KHR, 0, EGL_CONTEXT_BIND_GENERATES_RESOURCE_CHROMIUM, EGL_TRUE, EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE, EGL_TRUE, EGL_CONTEXT_OPENGL_BACKWARDS_COMPATIBLE_ANGLE, EGL_FALSE, diff --git a/src/gl_api.h b/src/gl_api.h index 3d20913..52b904a 100644 --- a/src/gl_api.h +++ b/src/gl_api.h @@ -1,1104 +1,1104 @@ -/******************************************************** -* -* @file: gl_api.h -* @note: auto-generated by glapi.py from gl.xml -* @date: 16/022023 -* -/********************************************************/ -#ifndef __GL_API_H__ -#define __GL_API_H__ - -#include"GL/glcorearb.h" -#include"GLES3/gl32.h" - -typedef struct mg_gl_api -{ - PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer; - PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f; - PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D; - PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv; - PFNGLQUERYCOUNTERPROC QueryCounter; - PFNGLPROGRAMPARAMETERIPROC ProgramParameteri; - PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback; - PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v; - PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv; - PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus; - PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v; - PFNGLDELETESYNCPROC DeleteSync; - PFNGLBINDIMAGETEXTUREPROC BindImageTexture; - PFNGLDRAWELEMENTSPROC DrawElements; - PFNGLGENRENDERBUFFERSPROC GenRenderbuffers; - PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv; - PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays; - PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i; - PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation; - PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri; - PFNGLBINDBUFFERBASEPROC BindBufferBase; - PFNGLTEXIMAGE3DPROC TexImage3D; - PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; - PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; - PFNGLTEXSTORAGE1DPROC TexStorage1D; - PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines; - PFNGLMAPBUFFERPROC MapBuffer; - PFNGLPOLYGONMODEPROC PolygonMode; - PFNGLGETPROGRAMBINARYPROC GetProgramBinary; - PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv; - PFNGLDEPTHFUNCPROC DepthFunc; - PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv; - PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName; - PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv; - PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv; - PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv; - PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f; - PFNGLTEXTUREVIEWPROC TextureView; - PFNGLDEPTHMASKPROC DepthMask; - PFNGLUNIFORM2UIVPROC Uniform2uiv; - PFNGLBINDSAMPLERPROC BindSampler; - PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv; - PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv; - PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D; - PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv; - PFNGLBINDBUFFERRANGEPROC BindBufferRange; - PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D; - PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback; - PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv; - PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv; - PFNGLVERTEXATTRIB4SPROC VertexAttrib4s; - PFNGLGENFRAMEBUFFERSPROC GenFramebuffers; - PFNGLENABLEPROC Enable; - PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv; - PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor; - PFNGLPOINTPARAMETERFPROC PointParameterf; - PFNGLUNIFORM3DVPROC Uniform3dv; - PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv; - PFNGLDRAWARRAYSPROC DrawArrays; - PFNGLGETERRORPROC GetError; - PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData; - PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying; - PFNGLGETACTIVEATTRIBPROC GetActiveAttrib; - PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor; - PFNGLUNIFORM1FPROC Uniform1f; - PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv; - PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv; - PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements; - PFNGLPUSHDEBUGGROUPPROC PushDebugGroup; - PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines; - PFNGLVIEWPORTPROC Viewport; - PFNGLGETOBJECTLABELPROC GetObjectLabel; - PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; - PFNGLUNIFORM1DPROC Uniform1d; - PFNGLCLEARBUFFERDATAPROC ClearBufferData; - PFNGLISQUERYPROC IsQuery; - PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui; - PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui; - PFNGLGETUNIFORMIVPROC GetUniformiv; - PFNGLGETINTEGER64VPROC GetInteger64v; - PFNGLSCISSORINDEXEDVPROC ScissorIndexedv; - PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v; - PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding; - PFNGLUNIFORM3IVPROC Uniform3iv; - PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui; - PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv; - PFNGLUNIFORM3UIPROC Uniform3ui; - PFNGLPOPDEBUGGROUPPROC PopDebugGroup; - PFNGLSAMPLERPARAMETERIPROC SamplerParameteri; - PFNGLSTENCILMASKPROC StencilMask; - PFNGLUNIFORM3FPROC Uniform3f; - PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv; - PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv; - PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex; - PFNGLVIEWPORTARRAYVPROC ViewportArrayv; - PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream; - PFNGLGETPOINTERVPROC GetPointerv; - PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback; - PFNGLMEMORYBARRIERPROC MemoryBarrier; - PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv; - PFNGLBLENDBARRIERPROC BlendBarrier; - PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv; - PFNGLUNIFORM1IVPROC Uniform1iv; - PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv; - PFNGLPATCHPARAMETERIPROC PatchParameteri; - PFNGLPATCHPARAMETERFVPROC PatchParameterfv; - PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv; - PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex; - PFNGLCLEARBUFFERUIVPROC ClearBufferuiv; - PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i; - PFNGLOBJECTPTRLABELPROC ObjectPtrLabel; - PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv; - PFNGLPOINTPARAMETERIPROC PointParameteri; - PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv; - PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; - PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv; - PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv; - PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer; - PFNGLBINDTEXTUREPROC BindTexture; - PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv; - PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline; - PFNGLTEXPARAMETERIVPROC TexParameteriv; - PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced; - PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; - PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D; - PFNGLCULLFACEPROC CullFace; - PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer; - PFNGLUNIFORM1UIPROC Uniform1ui; - PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv; - PFNGLUNIFORM2DPROC Uniform2d; - PFNGLENDCONDITIONALRENDERPROC EndConditionalRender; - PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D; - PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate; - PFNGLISENABLEDIPROC IsEnabledi; - PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv; - PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData; - PFNGLCOLORMASKPROC ColorMask; - PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; - PFNGLDELETETEXTURESPROC DeleteTextures; - PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced; - PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv; - PFNGLISTEXTUREPROC IsTexture; - PFNGLSAMPLERPARAMETERFPROC SamplerParameterf; - PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert; - PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv; - PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv; - PFNGLATTACHSHADERPROC AttachShader; - PFNGLGETBOOLEANI_VPROC GetBooleani_v; - PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv; - PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv; - PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback; - PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv; - PFNGLMAPBUFFERRANGEPROC MapBufferRange; - PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler; - PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements; - PFNGLCLEARBUFFERIVPROC ClearBufferiv; - PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance; - PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation; - PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv; - PFNGLUNIFORM4IVPROC Uniform4iv; - PFNGLUNIFORM4DPROC Uniform4d; - PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv; - PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv; - PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv; - PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui; - PFNGLLINEWIDTHPROC LineWidth; - PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv; - PFNGLGENERATEMIPMAPPROC GenerateMipmap; - PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v; - PFNGLPOLYGONOFFSETPROC PolygonOffset; - PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers; - PFNGLSHADERBINARYPROC ShaderBinary; - PFNGLDELETEQUERIESPROC DeleteQueries; - PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv; - PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance; - PFNGLGETSYNCIVPROC GetSynciv; - PFNGLVERTEXATTRIB3SPROC VertexAttrib3s; - PFNGLBLENDEQUATIONIPROC BlendEquationi; - PFNGLGETFLOATVPROC GetFloatv; - PFNGLBLENDFUNCPROC BlendFunc; - PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei; - PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv; - PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv; - PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D; - PFNGLVERTEXATTRIB2SPROC VertexAttrib2s; - PFNGLDRAWBUFFERSPROC DrawBuffers; - PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv; - PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv; - PFNGLUNIFORM4IPROC Uniform4i; - PFNGLISVERTEXARRAYPROC IsVertexArray; - PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog; - PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv; - PFNGLPIXELSTOREIPROC PixelStorei; - PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv; - PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv; - PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv; - PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv; - PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv; - PFNGLVERTEXATTRIB4FPROC VertexAttrib4f; - PFNGLTEXSTORAGE3DPROC TexStorage3D; - PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer; - PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D; - PFNGLVERTEXATTRIB2FPROC VertexAttrib2f; - PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv; - PFNGLPROGRAMBINARYPROC ProgramBinary; - PFNGLFLUSHPROC Flush; - PFNGLCLEARDEPTHFPROC ClearDepthf; - PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample; - PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i; - PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv; - PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; - PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv; - PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv; - PFNGLVERTEXATTRIB2DPROC VertexAttrib2d; - PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv; - PFNGLPOINTPARAMETERFVPROC PointParameterfv; - PFNGLCLIENTWAITSYNCPROC ClientWaitSync; - PFNGLBINDBUFFERPROC BindBuffer; - PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed; - PFNGLGETSHADERIVPROC GetShaderiv; - PFNGLUSEPROGRAMPROC UseProgram; - PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv; - PFNGLGENQUERIESPROC GenQueries; - PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; - PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i; - PFNGLENDQUERYINDEXEDPROC EndQueryIndexed; - PFNGLISSAMPLERPROC IsSampler; - PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation; - PFNGLCLAMPCOLORPROC ClampColor; - PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv; - PFNGLLOGICOPPROC LogicOp; - PFNGLGETINTERNALFORMATIVPROC GetInternalformativ; - PFNGLUNIFORM1UIVPROC Uniform1uiv; - PFNGLCREATEPROGRAMPROC CreateProgram; - PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d; - PFNGLUNIFORM2FPROC Uniform2f; - PFNGLBLENDEQUATIONPROC BlendEquation; - PFNGLFINISHPROC Finish; - PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv; - PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat; - PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d; - PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex; - PFNGLCLEARPROC Clear; - PFNGLGENTEXTURESPROC GenTextures; - PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv; - PFNGLHINTPROC Hint; - PFNGLUNIFORM4UIPROC Uniform4ui; - PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv; - PFNGLISRENDERBUFFERPROC IsRenderbuffer; - PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders; - PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram; - PFNGLUSEPROGRAMSTAGESPROC UseProgramStages; - PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f; - PFNGLGETPROGRAMIVPROC GetProgramiv; - PFNGLGETUNIFORMINDICESPROC GetUniformIndices; - PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui; - PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv; - PFNGLCLEARBUFFERFIPROC ClearBufferfi; - PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv; - PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv; - PFNGLCOMPILESHADERPROC CompileShader; - PFNGLTEXSTORAGE2DPROC TexStorage2D; - PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv; - PFNGLREADPIXELSPROC ReadPixels; - PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv; - PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat; - PFNGLGETBOOLEANVPROC GetBooleanv; - PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv; - PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv; - PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks; - PFNGLISBUFFERPROC IsBuffer; - PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i; - PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData; - PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i; - PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei; - PFNGLTEXSUBIMAGE3DPROC TexSubImage3D; - PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv; - PFNGLUNIFORM1FVPROC Uniform1fv; - PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv; - PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv; - PFNGLGETSHADERSOURCEPROC GetShaderSource; - PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex; - PFNGLUNIFORM2UIPROC Uniform2ui; - PFNGLOBJECTLABELPROC ObjectLabel; - PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer; - PFNGLPOINTSIZEPROC PointSize; - PFNGLGETINTEGERVPROC GetIntegerv; - PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed; - PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback; - PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture; - PFNGLSCISSORARRAYVPROC ScissorArrayv; - PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui; - PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui; - PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect; - PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv; - PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName; - PFNGLSTENCILOPPROC StencilOp; - PFNGLGETINTEGERI_VPROC GetIntegeri_v; - PFNGLSCISSORPROC Scissor; - PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv; - PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv; - PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui; - PFNGLDISABLEIPROC Disablei; - PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample; - PFNGLVERTEXATTRIB1SPROC VertexAttrib1s; - PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv; - PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect; - PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer; - PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv; - PFNGLGETQUERYIVPROC GetQueryiv; - PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv; - PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D; - PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat; - PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; - PFNGLTEXSUBIMAGE1DPROC TexSubImage1D; - PFNGLBINDVERTEXARRAYPROC BindVertexArray; - PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv; - PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation; - PFNGLBUFFERDATAPROC BufferData; - PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate; - PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect; - PFNGLGETUNIFORMDVPROC GetUniformdv; - PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv; - PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv; - PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv; - PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; - PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings; - PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv; - PFNGLVERTEXATTRIB3DPROC VertexAttrib3d; - PFNGLDETACHSHADERPROC DetachShader; - PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv; - PFNGLGENVERTEXARRAYSPROC GenVertexArrays; - PFNGLFENCESYNCPROC FenceSync; - PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv; - PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion; - PFNGLGETNUNIFORMFVPROC GetnUniformfv; - PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback; - PFNGLBINDRENDERBUFFERPROC BindRenderbuffer; - PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv; - PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv; - PFNGLGETBUFFERSUBDATAPROC GetBufferSubData; - PFNGLUNIFORM4FVPROC Uniform4fv; - PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d; - PFNGLTEXIMAGE2DPROC TexImage2D; - PFNGLTEXPARAMETERIPROC TexParameteri; - PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub; - PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex; - PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D; - PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv; - PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv; - PFNGLGETINTEGER64I_VPROC GetInteger64i_v; - PFNGLDELETEPROGRAMPROC DeleteProgram; - PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData; - PFNGLPRIMITIVEBOUNDINGBOXPROC PrimitiveBoundingBox; - PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage; - PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui; - PFNGLSTENCILFUNCPROC StencilFunc; - PFNGLCLEARDEPTHPROC ClearDepth; - PFNGLISSHADERPROC IsShader; - PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage; - PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv; - PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate; - PFNGLDEPTHRANGEPROC DepthRange; - PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv; - PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance; - PFNGLUNIFORM2IVPROC Uniform2iv; - PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage; - PFNGLUNIFORM3IPROC Uniform3i; - PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv; - PFNGLUNIFORM2DVPROC Uniform2dv; - PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData; - PFNGLUNIFORM2FVPROC Uniform2fv; - PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv; - PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; - PFNGLSHADERSOURCEPROC ShaderSource; - PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation; - PFNGLREADBUFFERPROC ReadBuffer; - PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv; - PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; - PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv; - PFNGLGETFLOATI_VPROC GetFloati_v; - PFNGLGETDOUBLEVPROC GetDoublev; - PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel; - PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange; - PFNGLDELETESAMPLERSPROC DeleteSamplers; - PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; - PFNGLCOLORMASKIPROC ColorMaski; - PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv; - PFNGLCLEARSTENCILPROC ClearStencil; - PFNGLISPROGRAMPROC IsProgram; - PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex; - PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks; - PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers; - PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv; - PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv; - PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv; - PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer; - PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat; - PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect; - PFNGLUNIFORM3DPROC Uniform3d; - PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback; - PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv; - PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv; - PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f; - PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv; - PFNGLPROVOKINGVERTEXPROC ProvokingVertex; - PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv; - PFNGLLINKPROGRAMPROC LinkProgram; - PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv; - PFNGLENDQUERYPROC EndQuery; - PFNGLGETTEXIMAGEPROC GetTexImage; - PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv; - PFNGLGENBUFFERSPROC GenBuffers; - PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D; - PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui; - PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage; - PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv; - PFNGLTEXIMAGE1DPROC TexImage1D; - PFNGLISFRAMEBUFFERPROC IsFramebuffer; - PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv; - PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv; - PFNGLBLENDCOLORPROC BlendColor; - PFNGLBLENDFUNCIPROC BlendFunci; - PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced; - PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv; - PFNGLMINSAMPLESHADINGPROC MinSampleShading; - PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D; - PFNGLDRAWBUFFERPROC DrawBuffer; - PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv; - PFNGLSAMPLEMASKIPROC SampleMaski; - PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName; - PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv; - PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample; - PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex; - PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv; - PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; - PFNGLGETSTRINGIPROC GetStringi; - PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding; - PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding; - PFNGLDISABLEPROC Disable; - PFNGLVERTEXATTRIB1FPROC VertexAttrib1f; - PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex; - PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline; - PFNGLUNIFORM2IPROC Uniform2i; - PFNGLCLEARBUFFERFVPROC ClearBufferfv; - PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv; - PFNGLGETDOUBLEI_VPROC GetDoublei_v; - PFNGLVERTEXATTRIB4DPROC VertexAttrib4d; - PFNGLUNIFORM1DVPROC Uniform1dv; - PFNGLDELETESHADERPROC DeleteShader; - PFNGLGETSTRINGPROC GetString; - PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf; - PFNGLGETNUNIFORMUIVPROC GetnUniformuiv; - PFNGLUNIFORM1IPROC Uniform1i; - PFNGLUNIFORM4UIVPROC Uniform4uiv; - PFNGLTEXPARAMETERIIVPROC TexParameterIiv; - PFNGLENABLEIPROC Enablei; - PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D; - PFNGLBINDFRAMEBUFFERPROC BindFramebuffer; - PFNGLVALIDATEPROGRAMPROC ValidateProgram; - PFNGLUNIFORM3UIVPROC Uniform3uiv; - PFNGLBEGINQUERYPROC BeginQuery; - PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv; - PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d; - PFNGLTEXBUFFERPROC TexBuffer; - PFNGLTEXBUFFERRANGEPROC TexBufferRange; - PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv; - PFNGLTEXPARAMETERFVPROC TexParameterfv; - PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv; - PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName; - PFNGLISENABLEDPROC IsEnabled; - PFNGLGETUNIFORMUIVPROC GetUniformuiv; - PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv; - PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv; - PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline; - PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d; - PFNGLGETACTIVEUNIFORMPROC GetActiveUniform; - PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample; - PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui; - PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv; - PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D; - PFNGLGENSAMPLERSPROC GenSamplers; - PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl; - PFNGLUNMAPBUFFERPROC UnmapBuffer; - PFNGLDEPTHRANGEFPROC DepthRangef; - PFNGLSCISSORINDEXEDPROC ScissorIndexed; - PFNGLUNIFORM4DVPROC Uniform4dv; - PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv; - PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i; - PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv; - PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv; - PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; - PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv; - PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv; - PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D; - PFNGLSAMPLECOVERAGEPROC SampleCoverage; - PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed; - PFNGLDELETEBUFFERSPROC DeleteBuffers; - PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv; - PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced; - PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender; - PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv; - PFNGLDISPATCHCOMPUTEPROC DispatchCompute; - PFNGLISSYNCPROC IsSync; - PFNGLPIXELSTOREFPROC PixelStoref; - PFNGLFRONTFACEPROC FrontFace; - PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv; - PFNGLBUFFERSUBDATAPROC BufferSubData; - PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv; - PFNGLWAITSYNCPROC WaitSync; - PFNGLUNIFORM3FVPROC Uniform3fv; - PFNGLPOINTPARAMETERIVPROC PointParameteriv; - PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d; - PFNGLCREATESHADERPROC CreateShader; - PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus; - PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer; - PFNGLVERTEXATTRIB1DPROC VertexAttrib1d; - PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog; - PFNGLGETNUNIFORMIVPROC GetnUniformiv; - PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui; - PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect; - PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv; - PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample; - PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv; - PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i; - PFNGLVERTEXATTRIB3FPROC VertexAttrib3f; - PFNGLGETUNIFORMFVPROC GetUniformfv; - PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv; - PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv; - PFNGLTEXPARAMETERFPROC TexParameterf; - PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback; - PFNGLREADNPIXELSPROC ReadnPixels; - PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName; - PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d; - PFNGLUNIFORM4FPROC Uniform4f; - PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv; - PFNGLCLEARCOLORPROC ClearColor; - PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv; - PFNGLACTIVETEXTUREPROC ActiveTexture; - PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv; - PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex; - PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d; -} mg_gl_api; - -extern mp_thread_local mg_gl_api* __mgGLAPI; - -#define glFramebufferRenderbuffer __mgGLAPI->FramebufferRenderbuffer -#define glProgramUniform3f __mgGLAPI->ProgramUniform3f -#define glCopyTexImage2D __mgGLAPI->CopyTexImage2D -#define glProgramUniform3fv __mgGLAPI->ProgramUniform3fv -#define glQueryCounter __mgGLAPI->QueryCounter -#define glProgramParameteri __mgGLAPI->ProgramParameteri -#define glDebugMessageCallback __mgGLAPI->DebugMessageCallback -#define glGetQueryObjecti64v __mgGLAPI->GetQueryObjecti64v -#define glVertexAttribL2dv __mgGLAPI->VertexAttribL2dv -#define glCheckFramebufferStatus __mgGLAPI->CheckFramebufferStatus -#define glGetBufferParameteri64v __mgGLAPI->GetBufferParameteri64v -#define glDeleteSync __mgGLAPI->DeleteSync -#define glBindImageTexture __mgGLAPI->BindImageTexture -#define glDrawElements __mgGLAPI->DrawElements -#define glGenRenderbuffers __mgGLAPI->GenRenderbuffers -#define glUniformMatrix2x3fv __mgGLAPI->UniformMatrix2x3fv -#define glMultiDrawArrays __mgGLAPI->MultiDrawArrays -#define glVertexAttribI4i __mgGLAPI->VertexAttribI4i -#define glGetSubroutineUniformLocation __mgGLAPI->GetSubroutineUniformLocation -#define glFramebufferParameteri __mgGLAPI->FramebufferParameteri -#define glBindBufferBase __mgGLAPI->BindBufferBase -#define glTexImage3D __mgGLAPI->TexImage3D -#define glUniformMatrix4fv __mgGLAPI->UniformMatrix4fv -#define glGetVertexAttribiv __mgGLAPI->GetVertexAttribiv -#define glTexStorage1D __mgGLAPI->TexStorage1D -#define glDeleteProgramPipelines __mgGLAPI->DeleteProgramPipelines -#define glMapBuffer __mgGLAPI->MapBuffer -#define glPolygonMode __mgGLAPI->PolygonMode -#define glGetProgramBinary __mgGLAPI->GetProgramBinary -#define glGetSamplerParameterfv __mgGLAPI->GetSamplerParameterfv -#define glDepthFunc __mgGLAPI->DepthFunc -#define glVertexAttrib2sv __mgGLAPI->VertexAttrib2sv -#define glGetProgramResourceName __mgGLAPI->GetProgramResourceName -#define glProgramUniformMatrix2x4fv __mgGLAPI->ProgramUniformMatrix2x4fv -#define glUniformMatrix4dv __mgGLAPI->UniformMatrix4dv -#define glProgramUniformMatrix2x3fv __mgGLAPI->ProgramUniformMatrix2x3fv -#define glProgramUniform4f __mgGLAPI->ProgramUniform4f -#define glTextureView __mgGLAPI->TextureView -#define glDepthMask __mgGLAPI->DepthMask -#define glUniform2uiv __mgGLAPI->Uniform2uiv -#define glBindSampler __mgGLAPI->BindSampler -#define glGetTexLevelParameteriv __mgGLAPI->GetTexLevelParameteriv -#define glVertexAttrib4Nubv __mgGLAPI->VertexAttrib4Nubv -#define glFramebufferTexture3D __mgGLAPI->FramebufferTexture3D -#define glProgramUniform2dv __mgGLAPI->ProgramUniform2dv -#define glBindBufferRange __mgGLAPI->BindBufferRange -#define glFramebufferTexture2D __mgGLAPI->FramebufferTexture2D -#define glEndTransformFeedback __mgGLAPI->EndTransformFeedback -#define glGetTexParameterIuiv __mgGLAPI->GetTexParameterIuiv -#define glGetVertexAttribIiv __mgGLAPI->GetVertexAttribIiv -#define glVertexAttrib4s __mgGLAPI->VertexAttrib4s -#define glGenFramebuffers __mgGLAPI->GenFramebuffers -#define glEnable __mgGLAPI->Enable -#define glGetActiveSubroutineUniformiv __mgGLAPI->GetActiveSubroutineUniformiv -#define glVertexBindingDivisor __mgGLAPI->VertexBindingDivisor -#define glPointParameterf __mgGLAPI->PointParameterf -#define glUniform3dv __mgGLAPI->Uniform3dv -#define glSamplerParameterIiv __mgGLAPI->SamplerParameterIiv -#define glDrawArrays __mgGLAPI->DrawArrays -#define glGetError __mgGLAPI->GetError -#define glInvalidateBufferData __mgGLAPI->InvalidateBufferData -#define glGetTransformFeedbackVarying __mgGLAPI->GetTransformFeedbackVarying -#define glGetActiveAttrib __mgGLAPI->GetActiveAttrib -#define glVertexAttribDivisor __mgGLAPI->VertexAttribDivisor -#define glUniform1f __mgGLAPI->Uniform1f -#define glGetUniformSubroutineuiv __mgGLAPI->GetUniformSubroutineuiv -#define glProgramUniform1uiv __mgGLAPI->ProgramUniform1uiv -#define glDrawRangeElements __mgGLAPI->DrawRangeElements -#define glPushDebugGroup __mgGLAPI->PushDebugGroup -#define glGenProgramPipelines __mgGLAPI->GenProgramPipelines -#define glViewport __mgGLAPI->Viewport -#define glGetObjectLabel __mgGLAPI->GetObjectLabel -#define glDisableVertexAttribArray __mgGLAPI->DisableVertexAttribArray -#define glUniform1d __mgGLAPI->Uniform1d -#define glClearBufferData __mgGLAPI->ClearBufferData -#define glIsQuery __mgGLAPI->IsQuery -#define glVertexAttribI4ui __mgGLAPI->VertexAttribI4ui -#define glProgramUniform3ui __mgGLAPI->ProgramUniform3ui -#define glGetUniformiv __mgGLAPI->GetUniformiv -#define glGetInteger64v __mgGLAPI->GetInteger64v -#define glScissorIndexedv __mgGLAPI->ScissorIndexedv -#define glGetInternalformati64v __mgGLAPI->GetInternalformati64v -#define glShaderStorageBlockBinding __mgGLAPI->ShaderStorageBlockBinding -#define glUniform3iv __mgGLAPI->Uniform3iv -#define glProgramUniform1ui __mgGLAPI->ProgramUniform1ui -#define glProgramUniformMatrix2x4dv __mgGLAPI->ProgramUniformMatrix2x4dv -#define glUniform3ui __mgGLAPI->Uniform3ui -#define glPopDebugGroup __mgGLAPI->PopDebugGroup -#define glSamplerParameteri __mgGLAPI->SamplerParameteri -#define glStencilMask __mgGLAPI->StencilMask -#define glUniform3f __mgGLAPI->Uniform3f -#define glProgramUniform4fv __mgGLAPI->ProgramUniform4fv -#define glGetQueryObjectiv __mgGLAPI->GetQueryObjectiv -#define glDrawElementsInstancedBaseVertex __mgGLAPI->DrawElementsInstancedBaseVertex -#define glViewportArrayv __mgGLAPI->ViewportArrayv -#define glDrawTransformFeedbackStream __mgGLAPI->DrawTransformFeedbackStream -#define glGetPointerv __mgGLAPI->GetPointerv -#define glBeginTransformFeedback __mgGLAPI->BeginTransformFeedback -#define glMemoryBarrier __mgGLAPI->MemoryBarrier -#define glGetProgramPipelineiv __mgGLAPI->GetProgramPipelineiv -#define glBlendBarrier __mgGLAPI->BlendBarrier -#define glGetSamplerParameteriv __mgGLAPI->GetSamplerParameteriv -#define glUniform1iv __mgGLAPI->Uniform1iv -#define glUniformMatrix2dv __mgGLAPI->UniformMatrix2dv -#define glPatchParameteri __mgGLAPI->PatchParameteri -#define glPatchParameterfv __mgGLAPI->PatchParameterfv -#define glUniformMatrix4x2dv __mgGLAPI->UniformMatrix4x2dv -#define glDrawRangeElementsBaseVertex __mgGLAPI->DrawRangeElementsBaseVertex -#define glClearBufferuiv __mgGLAPI->ClearBufferuiv -#define glVertexAttribI1i __mgGLAPI->VertexAttribI1i -#define glObjectPtrLabel __mgGLAPI->ObjectPtrLabel -#define glGetBufferPointerv __mgGLAPI->GetBufferPointerv -#define glPointParameteri __mgGLAPI->PointParameteri -#define glCreateShaderProgramv __mgGLAPI->CreateShaderProgramv -#define glBlendFuncSeparate __mgGLAPI->BlendFuncSeparate -#define glProgramUniform2uiv __mgGLAPI->ProgramUniform2uiv -#define glVertexAttrib3sv __mgGLAPI->VertexAttrib3sv -#define glVertexAttribIPointer __mgGLAPI->VertexAttribIPointer -#define glBindTexture __mgGLAPI->BindTexture -#define glVertexAttrib2dv __mgGLAPI->VertexAttrib2dv -#define glValidateProgramPipeline __mgGLAPI->ValidateProgramPipeline -#define glTexParameteriv __mgGLAPI->TexParameteriv -#define glDrawTransformFeedbackInstanced __mgGLAPI->DrawTransformFeedbackInstanced -#define glTexSubImage2D __mgGLAPI->TexSubImage2D -#define glCompressedTexSubImage2D __mgGLAPI->CompressedTexSubImage2D -#define glCullFace __mgGLAPI->CullFace -#define glInvalidateSubFramebuffer __mgGLAPI->InvalidateSubFramebuffer -#define glUniform1ui __mgGLAPI->Uniform1ui -#define glVertexAttribP2uiv __mgGLAPI->VertexAttribP2uiv -#define glUniform2d __mgGLAPI->Uniform2d -#define glEndConditionalRender __mgGLAPI->EndConditionalRender -#define glCopyTexImage1D __mgGLAPI->CopyTexImage1D -#define glStencilOpSeparate __mgGLAPI->StencilOpSeparate -#define glIsEnabledi __mgGLAPI->IsEnabledi -#define glVertexAttrib4Nsv __mgGLAPI->VertexAttrib4Nsv -#define glClearBufferSubData __mgGLAPI->ClearBufferSubData -#define glColorMask __mgGLAPI->ColorMask -#define glDeleteVertexArrays __mgGLAPI->DeleteVertexArrays -#define glDeleteTextures __mgGLAPI->DeleteTextures -#define glDrawTransformFeedbackStreamInstanced __mgGLAPI->DrawTransformFeedbackStreamInstanced -#define glProgramUniformMatrix4x3dv __mgGLAPI->ProgramUniformMatrix4x3dv -#define glIsTexture __mgGLAPI->IsTexture -#define glSamplerParameterf __mgGLAPI->SamplerParameterf -#define glDebugMessageInsert __mgGLAPI->DebugMessageInsert -#define glUniformMatrix2fv __mgGLAPI->UniformMatrix2fv -#define glVertexAttrib4fv __mgGLAPI->VertexAttrib4fv -#define glAttachShader __mgGLAPI->AttachShader -#define glGetBooleani_v __mgGLAPI->GetBooleani_v -#define glVertexAttribL3dv __mgGLAPI->VertexAttribL3dv -#define glProgramUniform4dv __mgGLAPI->ProgramUniform4dv -#define glDrawTransformFeedback __mgGLAPI->DrawTransformFeedback -#define glVertexAttribI1uiv __mgGLAPI->VertexAttribI1uiv -#define glMapBufferRange __mgGLAPI->MapBufferRange -#define glReleaseShaderCompiler __mgGLAPI->ReleaseShaderCompiler -#define glMultiDrawElements __mgGLAPI->MultiDrawElements -#define glClearBufferiv __mgGLAPI->ClearBufferiv -#define glDrawElementsInstancedBaseVertexBaseInstance __mgGLAPI->DrawElementsInstancedBaseVertexBaseInstance -#define glBindFragDataLocation __mgGLAPI->BindFragDataLocation -#define glUniformMatrix2x4dv __mgGLAPI->UniformMatrix2x4dv -#define glUniform4iv __mgGLAPI->Uniform4iv -#define glUniform4d __mgGLAPI->Uniform4d -#define glVertexAttribI4ubv __mgGLAPI->VertexAttribI4ubv -#define glGetVertexAttribfv __mgGLAPI->GetVertexAttribfv -#define glVertexAttribI4usv __mgGLAPI->VertexAttribI4usv -#define glVertexAttribI3ui __mgGLAPI->VertexAttribI3ui -#define glLineWidth __mgGLAPI->LineWidth -#define glGetBufferParameteriv __mgGLAPI->GetBufferParameteriv -#define glGenerateMipmap __mgGLAPI->GenerateMipmap -#define glGetQueryObjectui64v __mgGLAPI->GetQueryObjectui64v -#define glPolygonOffset __mgGLAPI->PolygonOffset -#define glDeleteFramebuffers __mgGLAPI->DeleteFramebuffers -#define glShaderBinary __mgGLAPI->ShaderBinary -#define glDeleteQueries __mgGLAPI->DeleteQueries -#define glVertexAttrib4iv __mgGLAPI->VertexAttrib4iv -#define glDrawArraysInstancedBaseInstance __mgGLAPI->DrawArraysInstancedBaseInstance -#define glGetSynciv __mgGLAPI->GetSynciv -#define glVertexAttrib3s __mgGLAPI->VertexAttrib3s -#define glBlendEquationi __mgGLAPI->BlendEquationi -#define glGetFloatv __mgGLAPI->GetFloatv -#define glBlendFunc __mgGLAPI->BlendFunc -#define glBlendFuncSeparatei __mgGLAPI->BlendFuncSeparatei -#define glGetQueryIndexediv __mgGLAPI->GetQueryIndexediv -#define glProgramUniformMatrix2dv __mgGLAPI->ProgramUniformMatrix2dv -#define glCompressedTexSubImage1D __mgGLAPI->CompressedTexSubImage1D -#define glVertexAttrib2s __mgGLAPI->VertexAttrib2s -#define glDrawBuffers __mgGLAPI->DrawBuffers -#define glGetProgramInterfaceiv __mgGLAPI->GetProgramInterfaceiv -#define glVertexAttrib4Nbv __mgGLAPI->VertexAttrib4Nbv -#define glUniform4i __mgGLAPI->Uniform4i -#define glIsVertexArray __mgGLAPI->IsVertexArray -#define glGetDebugMessageLog __mgGLAPI->GetDebugMessageLog -#define glProgramUniform3iv __mgGLAPI->ProgramUniform3iv -#define glPixelStorei __mgGLAPI->PixelStorei -#define glProgramUniform1fv __mgGLAPI->ProgramUniform1fv -#define glVertexAttribI4uiv __mgGLAPI->VertexAttribI4uiv -#define glVertexAttrib4Niv __mgGLAPI->VertexAttrib4Niv -#define glUniformMatrix4x3fv __mgGLAPI->UniformMatrix4x3fv -#define glProgramUniformMatrix2x3dv __mgGLAPI->ProgramUniformMatrix2x3dv -#define glVertexAttrib4f __mgGLAPI->VertexAttrib4f -#define glTexStorage3D __mgGLAPI->TexStorage3D -#define glBlitFramebuffer __mgGLAPI->BlitFramebuffer -#define glFramebufferTexture1D __mgGLAPI->FramebufferTexture1D -#define glVertexAttrib2f __mgGLAPI->VertexAttrib2f -#define glSamplerParameterfv __mgGLAPI->SamplerParameterfv -#define glProgramBinary __mgGLAPI->ProgramBinary -#define glFlush __mgGLAPI->Flush -#define glClearDepthf __mgGLAPI->ClearDepthf -#define glTexStorage3DMultisample __mgGLAPI->TexStorage3DMultisample -#define glProgramUniform1i __mgGLAPI->ProgramUniform1i -#define glVertexAttrib4Nusv __mgGLAPI->VertexAttrib4Nusv -#define glEnableVertexAttribArray __mgGLAPI->EnableVertexAttribArray -#define glGetActiveUniformsiv __mgGLAPI->GetActiveUniformsiv -#define glVertexAttrib4bv __mgGLAPI->VertexAttrib4bv -#define glVertexAttrib2d __mgGLAPI->VertexAttrib2d -#define glProgramUniformMatrix3x2dv __mgGLAPI->ProgramUniformMatrix3x2dv -#define glPointParameterfv __mgGLAPI->PointParameterfv -#define glClientWaitSync __mgGLAPI->ClientWaitSync -#define glBindBuffer __mgGLAPI->BindBuffer -#define glBindFragDataLocationIndexed __mgGLAPI->BindFragDataLocationIndexed -#define glGetShaderiv __mgGLAPI->GetShaderiv -#define glUseProgram __mgGLAPI->UseProgram -#define glVertexAttrib4dv __mgGLAPI->VertexAttrib4dv -#define glGenQueries __mgGLAPI->GenQueries -#define glGetProgramInfoLog __mgGLAPI->GetProgramInfoLog -#define glProgramUniform2i __mgGLAPI->ProgramUniform2i -#define glEndQueryIndexed __mgGLAPI->EndQueryIndexed -#define glIsSampler __mgGLAPI->IsSampler -#define glBindAttribLocation __mgGLAPI->BindAttribLocation -#define glClampColor __mgGLAPI->ClampColor -#define glUniformMatrix4x2fv __mgGLAPI->UniformMatrix4x2fv -#define glLogicOp __mgGLAPI->LogicOp -#define glGetInternalformativ __mgGLAPI->GetInternalformativ -#define glUniform1uiv __mgGLAPI->Uniform1uiv -#define glCreateProgram __mgGLAPI->CreateProgram -#define glVertexAttribL1d __mgGLAPI->VertexAttribL1d -#define glUniform2f __mgGLAPI->Uniform2f -#define glBlendEquation __mgGLAPI->BlendEquation -#define glFinish __mgGLAPI->Finish -#define glGetFramebufferAttachmentParameteriv __mgGLAPI->GetFramebufferAttachmentParameteriv -#define glVertexAttribFormat __mgGLAPI->VertexAttribFormat -#define glVertexAttribL3d __mgGLAPI->VertexAttribL3d -#define glGetUniformBlockIndex __mgGLAPI->GetUniformBlockIndex -#define glClear __mgGLAPI->Clear -#define glGenTextures __mgGLAPI->GenTextures -#define glGetTexLevelParameterfv __mgGLAPI->GetTexLevelParameterfv -#define glHint __mgGLAPI->Hint -#define glUniform4ui __mgGLAPI->Uniform4ui -#define glVertexAttrib3fv __mgGLAPI->VertexAttrib3fv -#define glIsRenderbuffer __mgGLAPI->IsRenderbuffer -#define glGetAttachedShaders __mgGLAPI->GetAttachedShaders -#define glActiveShaderProgram __mgGLAPI->ActiveShaderProgram -#define glUseProgramStages __mgGLAPI->UseProgramStages -#define glProgramUniform2f __mgGLAPI->ProgramUniform2f -#define glGetProgramiv __mgGLAPI->GetProgramiv -#define glGetUniformIndices __mgGLAPI->GetUniformIndices -#define glVertexAttribP2ui __mgGLAPI->VertexAttribP2ui -#define glGetActiveUniformBlockiv __mgGLAPI->GetActiveUniformBlockiv -#define glClearBufferfi __mgGLAPI->ClearBufferfi -#define glVertexAttrib4sv __mgGLAPI->VertexAttrib4sv -#define glGetSamplerParameterIiv __mgGLAPI->GetSamplerParameterIiv -#define glCompileShader __mgGLAPI->CompileShader -#define glTexStorage2D __mgGLAPI->TexStorage2D -#define glGetVertexAttribdv __mgGLAPI->GetVertexAttribdv -#define glReadPixels __mgGLAPI->ReadPixels -#define glVertexAttrib4Nuiv __mgGLAPI->VertexAttrib4Nuiv -#define glGetShaderPrecisionFormat __mgGLAPI->GetShaderPrecisionFormat -#define glGetBooleanv __mgGLAPI->GetBooleanv -#define glGetFramebufferParameteriv __mgGLAPI->GetFramebufferParameteriv -#define glVertexAttribP4uiv __mgGLAPI->VertexAttribP4uiv -#define glDeleteTransformFeedbacks __mgGLAPI->DeleteTransformFeedbacks -#define glIsBuffer __mgGLAPI->IsBuffer -#define glProgramUniform3i __mgGLAPI->ProgramUniform3i -#define glInvalidateBufferSubData __mgGLAPI->InvalidateBufferSubData -#define glVertexAttribI2i __mgGLAPI->VertexAttribI2i -#define glBlendEquationSeparatei __mgGLAPI->BlendEquationSeparatei -#define glTexSubImage3D __mgGLAPI->TexSubImage3D -#define glVertexAttribI4bv __mgGLAPI->VertexAttribI4bv -#define glUniform1fv __mgGLAPI->Uniform1fv -#define glProgramUniform4iv __mgGLAPI->ProgramUniform4iv -#define glProgramUniform2iv __mgGLAPI->ProgramUniform2iv -#define glGetShaderSource __mgGLAPI->GetShaderSource -#define glGetProgramResourceIndex __mgGLAPI->GetProgramResourceIndex -#define glUniform2ui __mgGLAPI->Uniform2ui -#define glObjectLabel __mgGLAPI->ObjectLabel -#define glVertexAttribLPointer __mgGLAPI->VertexAttribLPointer -#define glPointSize __mgGLAPI->PointSize -#define glGetIntegerv __mgGLAPI->GetIntegerv -#define glDepthRangeIndexed __mgGLAPI->DepthRangeIndexed -#define glPauseTransformFeedback __mgGLAPI->PauseTransformFeedback -#define glFramebufferTexture __mgGLAPI->FramebufferTexture -#define glScissorArrayv __mgGLAPI->ScissorArrayv -#define glProgramUniform2ui __mgGLAPI->ProgramUniform2ui -#define glVertexAttribP1ui __mgGLAPI->VertexAttribP1ui -#define glMultiDrawElementsIndirect __mgGLAPI->MultiDrawElementsIndirect -#define glUniformMatrix3x4dv __mgGLAPI->UniformMatrix3x4dv -#define glGetActiveUniformName __mgGLAPI->GetActiveUniformName -#define glStencilOp __mgGLAPI->StencilOp -#define glGetIntegeri_v __mgGLAPI->GetIntegeri_v -#define glScissor __mgGLAPI->Scissor -#define glProgramUniform1iv __mgGLAPI->ProgramUniform1iv -#define glGetTexParameteriv __mgGLAPI->GetTexParameteriv -#define glProgramUniform4ui __mgGLAPI->ProgramUniform4ui -#define glDisablei __mgGLAPI->Disablei -#define glTexStorage2DMultisample __mgGLAPI->TexStorage2DMultisample -#define glVertexAttrib1s __mgGLAPI->VertexAttrib1s -#define glUniformMatrix3x4fv __mgGLAPI->UniformMatrix3x4fv -#define glDrawElementsIndirect __mgGLAPI->DrawElementsIndirect -#define glFramebufferTextureLayer __mgGLAPI->FramebufferTextureLayer -#define glGetTexParameterfv __mgGLAPI->GetTexParameterfv -#define glGetQueryiv __mgGLAPI->GetQueryiv -#define glGetVertexAttribLdv __mgGLAPI->GetVertexAttribLdv -#define glCompressedTexImage3D __mgGLAPI->CompressedTexImage3D -#define glVertexAttribIFormat __mgGLAPI->VertexAttribIFormat -#define glDrawElementsBaseVertex __mgGLAPI->DrawElementsBaseVertex -#define glTexSubImage1D __mgGLAPI->TexSubImage1D -#define glBindVertexArray __mgGLAPI->BindVertexArray -#define glProgramUniform3uiv __mgGLAPI->ProgramUniform3uiv -#define glGetFragDataLocation __mgGLAPI->GetFragDataLocation -#define glBufferData __mgGLAPI->BufferData -#define glStencilMaskSeparate __mgGLAPI->StencilMaskSeparate -#define glMultiDrawArraysIndirect __mgGLAPI->MultiDrawArraysIndirect -#define glGetUniformdv __mgGLAPI->GetUniformdv -#define glProgramUniformMatrix3dv __mgGLAPI->ProgramUniformMatrix3dv -#define glVertexAttrib1dv __mgGLAPI->VertexAttrib1dv -#define glProgramUniformMatrix4x2dv __mgGLAPI->ProgramUniformMatrix4x2dv -#define glGetVertexAttribPointerv __mgGLAPI->GetVertexAttribPointerv -#define glTransformFeedbackVaryings __mgGLAPI->TransformFeedbackVaryings -#define glVertexAttribI2uiv __mgGLAPI->VertexAttribI2uiv -#define glVertexAttrib3d __mgGLAPI->VertexAttrib3d -#define glDetachShader __mgGLAPI->DetachShader -#define glProgramUniformMatrix3x4dv __mgGLAPI->ProgramUniformMatrix3x4dv -#define glGenVertexArrays __mgGLAPI->GenVertexArrays -#define glFenceSync __mgGLAPI->FenceSync -#define glProgramUniformMatrix4x2fv __mgGLAPI->ProgramUniformMatrix4x2fv -#define glMemoryBarrierByRegion __mgGLAPI->MemoryBarrierByRegion -#define glGetnUniformfv __mgGLAPI->GetnUniformfv -#define glIsTransformFeedback __mgGLAPI->IsTransformFeedback -#define glBindRenderbuffer __mgGLAPI->BindRenderbuffer -#define glProgramUniformMatrix3x2fv __mgGLAPI->ProgramUniformMatrix3x2fv -#define glProgramUniform1dv __mgGLAPI->ProgramUniform1dv -#define glGetBufferSubData __mgGLAPI->GetBufferSubData -#define glUniform4fv __mgGLAPI->Uniform4fv -#define glVertexAttribL2d __mgGLAPI->VertexAttribL2d -#define glTexImage2D __mgGLAPI->TexImage2D -#define glTexParameteri __mgGLAPI->TexParameteri -#define glVertexAttrib4Nub __mgGLAPI->VertexAttrib4Nub -#define glGetProgramResourceLocationIndex __mgGLAPI->GetProgramResourceLocationIndex -#define glCopyTexSubImage3D __mgGLAPI->CopyTexSubImage3D -#define glUniformMatrix2x3dv __mgGLAPI->UniformMatrix2x3dv -#define glVertexAttrib4ubv __mgGLAPI->VertexAttrib4ubv -#define glGetInteger64i_v __mgGLAPI->GetInteger64i_v -#define glDeleteProgram __mgGLAPI->DeleteProgram -#define glCopyBufferSubData __mgGLAPI->CopyBufferSubData -#define glPrimitiveBoundingBox __mgGLAPI->PrimitiveBoundingBox -#define glInvalidateTexImage __mgGLAPI->InvalidateTexImage -#define glVertexAttribP3ui __mgGLAPI->VertexAttribP3ui -#define glStencilFunc __mgGLAPI->StencilFunc -#define glClearDepth __mgGLAPI->ClearDepth -#define glIsShader __mgGLAPI->IsShader -#define glRenderbufferStorage __mgGLAPI->RenderbufferStorage -#define glVertexAttrib4usv __mgGLAPI->VertexAttrib4usv -#define glStencilFuncSeparate __mgGLAPI->StencilFuncSeparate -#define glDepthRange __mgGLAPI->DepthRange -#define glVertexAttrib4uiv __mgGLAPI->VertexAttrib4uiv -#define glDrawElementsInstancedBaseInstance __mgGLAPI->DrawElementsInstancedBaseInstance -#define glUniform2iv __mgGLAPI->Uniform2iv -#define glGetCompressedTexImage __mgGLAPI->GetCompressedTexImage -#define glUniform3i __mgGLAPI->Uniform3i -#define glViewportIndexedfv __mgGLAPI->ViewportIndexedfv -#define glUniform2dv __mgGLAPI->Uniform2dv -#define glCopyImageSubData __mgGLAPI->CopyImageSubData -#define glUniform2fv __mgGLAPI->Uniform2fv -#define glVertexAttrib1sv __mgGLAPI->VertexAttrib1sv -#define glVertexAttribPointer __mgGLAPI->VertexAttribPointer -#define glShaderSource __mgGLAPI->ShaderSource -#define glGetProgramResourceLocation __mgGLAPI->GetProgramResourceLocation -#define glReadBuffer __mgGLAPI->ReadBuffer -#define glGetActiveAtomicCounterBufferiv __mgGLAPI->GetActiveAtomicCounterBufferiv -#define glGetShaderInfoLog __mgGLAPI->GetShaderInfoLog -#define glProgramUniform2fv __mgGLAPI->ProgramUniform2fv -#define glGetFloati_v __mgGLAPI->GetFloati_v -#define glGetDoublev __mgGLAPI->GetDoublev -#define glGetObjectPtrLabel __mgGLAPI->GetObjectPtrLabel -#define glFlushMappedBufferRange __mgGLAPI->FlushMappedBufferRange -#define glDeleteSamplers __mgGLAPI->DeleteSamplers -#define glGetUniformLocation __mgGLAPI->GetUniformLocation -#define glColorMaski __mgGLAPI->ColorMaski -#define glGetMultisamplefv __mgGLAPI->GetMultisamplefv -#define glClearStencil __mgGLAPI->ClearStencil -#define glIsProgram __mgGLAPI->IsProgram -#define glGetFragDataIndex __mgGLAPI->GetFragDataIndex -#define glGenTransformFeedbacks __mgGLAPI->GenTransformFeedbacks -#define glDeleteRenderbuffers __mgGLAPI->DeleteRenderbuffers -#define glVertexAttrib2fv __mgGLAPI->VertexAttrib2fv -#define glGetProgramResourceiv __mgGLAPI->GetProgramResourceiv -#define glVertexAttribL4dv __mgGLAPI->VertexAttribL4dv -#define glInvalidateFramebuffer __mgGLAPI->InvalidateFramebuffer -#define glVertexAttribLFormat __mgGLAPI->VertexAttribLFormat -#define glDispatchComputeIndirect __mgGLAPI->DispatchComputeIndirect -#define glUniform3d __mgGLAPI->Uniform3d -#define glBindTransformFeedback __mgGLAPI->BindTransformFeedback -#define glGetSamplerParameterIuiv __mgGLAPI->GetSamplerParameterIuiv -#define glVertexAttribI3uiv __mgGLAPI->VertexAttribI3uiv -#define glProgramUniform1f __mgGLAPI->ProgramUniform1f -#define glProgramUniformMatrix4dv __mgGLAPI->ProgramUniformMatrix4dv -#define glProvokingVertex __mgGLAPI->ProvokingVertex -#define glUniformMatrix3dv __mgGLAPI->UniformMatrix3dv -#define glLinkProgram __mgGLAPI->LinkProgram -#define glUniformMatrix3x2dv __mgGLAPI->UniformMatrix3x2dv -#define glEndQuery __mgGLAPI->EndQuery -#define glGetTexImage __mgGLAPI->GetTexImage -#define glVertexAttribI3iv __mgGLAPI->VertexAttribI3iv -#define glGenBuffers __mgGLAPI->GenBuffers -#define glCompressedTexImage1D __mgGLAPI->CompressedTexImage1D -#define glVertexAttribP4ui __mgGLAPI->VertexAttribP4ui -#define glInvalidateTexSubImage __mgGLAPI->InvalidateTexSubImage -#define glGetRenderbufferParameteriv __mgGLAPI->GetRenderbufferParameteriv -#define glTexImage1D __mgGLAPI->TexImage1D -#define glIsFramebuffer __mgGLAPI->IsFramebuffer -#define glVertexAttribI2iv __mgGLAPI->VertexAttribI2iv -#define glUniformSubroutinesuiv __mgGLAPI->UniformSubroutinesuiv -#define glBlendColor __mgGLAPI->BlendColor -#define glBlendFunci __mgGLAPI->BlendFunci -#define glDrawElementsInstanced __mgGLAPI->DrawElementsInstanced -#define glProgramUniformMatrix2fv __mgGLAPI->ProgramUniformMatrix2fv -#define glMinSampleShading __mgGLAPI->MinSampleShading -#define glCompressedTexSubImage3D __mgGLAPI->CompressedTexSubImage3D -#define glDrawBuffer __mgGLAPI->DrawBuffer -#define glProgramUniformMatrix4x3fv __mgGLAPI->ProgramUniformMatrix4x3fv -#define glSampleMaski __mgGLAPI->SampleMaski -#define glGetActiveSubroutineName __mgGLAPI->GetActiveSubroutineName -#define glProgramUniformMatrix3fv __mgGLAPI->ProgramUniformMatrix3fv -#define glTexImage2DMultisample __mgGLAPI->TexImage2DMultisample -#define glMultiDrawElementsBaseVertex __mgGLAPI->MultiDrawElementsBaseVertex -#define glUniformMatrix2x4fv __mgGLAPI->UniformMatrix2x4fv -#define glGetAttribLocation __mgGLAPI->GetAttribLocation -#define glGetStringi __mgGLAPI->GetStringi -#define glVertexAttribBinding __mgGLAPI->VertexAttribBinding -#define glUniformBlockBinding __mgGLAPI->UniformBlockBinding -#define glDisable __mgGLAPI->Disable -#define glVertexAttrib1f __mgGLAPI->VertexAttrib1f -#define glGetSubroutineIndex __mgGLAPI->GetSubroutineIndex -#define glIsProgramPipeline __mgGLAPI->IsProgramPipeline -#define glUniform2i __mgGLAPI->Uniform2i -#define glClearBufferfv __mgGLAPI->ClearBufferfv -#define glGetQueryObjectuiv __mgGLAPI->GetQueryObjectuiv -#define glGetDoublei_v __mgGLAPI->GetDoublei_v -#define glVertexAttrib4d __mgGLAPI->VertexAttrib4d -#define glUniform1dv __mgGLAPI->Uniform1dv -#define glDeleteShader __mgGLAPI->DeleteShader -#define glGetString __mgGLAPI->GetString -#define glViewportIndexedf __mgGLAPI->ViewportIndexedf -#define glGetnUniformuiv __mgGLAPI->GetnUniformuiv -#define glUniform1i __mgGLAPI->Uniform1i -#define glUniform4uiv __mgGLAPI->Uniform4uiv -#define glTexParameterIiv __mgGLAPI->TexParameterIiv -#define glEnablei __mgGLAPI->Enablei -#define glCopyTexSubImage1D __mgGLAPI->CopyTexSubImage1D -#define glBindFramebuffer __mgGLAPI->BindFramebuffer -#define glValidateProgram __mgGLAPI->ValidateProgram -#define glUniform3uiv __mgGLAPI->Uniform3uiv -#define glBeginQuery __mgGLAPI->BeginQuery -#define glVertexAttribI4iv __mgGLAPI->VertexAttribI4iv -#define glVertexAttribL4d __mgGLAPI->VertexAttribL4d -#define glTexBuffer __mgGLAPI->TexBuffer -#define glTexBufferRange __mgGLAPI->TexBufferRange -#define glSamplerParameterIuiv __mgGLAPI->SamplerParameterIuiv -#define glTexParameterfv __mgGLAPI->TexParameterfv -#define glUniformMatrix3fv __mgGLAPI->UniformMatrix3fv -#define glGetActiveUniformBlockName __mgGLAPI->GetActiveUniformBlockName -#define glIsEnabled __mgGLAPI->IsEnabled -#define glGetUniformuiv __mgGLAPI->GetUniformuiv -#define glProgramUniformMatrix4fv __mgGLAPI->ProgramUniformMatrix4fv -#define glProgramUniform3dv __mgGLAPI->ProgramUniform3dv -#define glBindProgramPipeline __mgGLAPI->BindProgramPipeline -#define glProgramUniform4d __mgGLAPI->ProgramUniform4d -#define glGetActiveUniform __mgGLAPI->GetActiveUniform -#define glRenderbufferStorageMultisample __mgGLAPI->RenderbufferStorageMultisample -#define glVertexAttribI1ui __mgGLAPI->VertexAttribI1ui -#define glSamplerParameteriv __mgGLAPI->SamplerParameteriv -#define glCopyTexSubImage2D __mgGLAPI->CopyTexSubImage2D -#define glGenSamplers __mgGLAPI->GenSamplers -#define glDebugMessageControl __mgGLAPI->DebugMessageControl -#define glUnmapBuffer __mgGLAPI->UnmapBuffer -#define glDepthRangef __mgGLAPI->DepthRangef -#define glScissorIndexed __mgGLAPI->ScissorIndexed -#define glUniform4dv __mgGLAPI->Uniform4dv -#define glGetVertexAttribIuiv __mgGLAPI->GetVertexAttribIuiv -#define glVertexAttribI3i __mgGLAPI->VertexAttribI3i -#define glTexParameterIuiv __mgGLAPI->TexParameterIuiv -#define glVertexAttribL1dv __mgGLAPI->VertexAttribL1dv -#define glBlendEquationSeparate __mgGLAPI->BlendEquationSeparate -#define glGetTexParameterIiv __mgGLAPI->GetTexParameterIiv -#define glProgramUniformMatrix3x4fv __mgGLAPI->ProgramUniformMatrix3x4fv -#define glCompressedTexImage2D __mgGLAPI->CompressedTexImage2D -#define glSampleCoverage __mgGLAPI->SampleCoverage -#define glBeginQueryIndexed __mgGLAPI->BeginQueryIndexed -#define glDeleteBuffers __mgGLAPI->DeleteBuffers -#define glGetProgramStageiv __mgGLAPI->GetProgramStageiv -#define glDrawArraysInstanced __mgGLAPI->DrawArraysInstanced -#define glBeginConditionalRender __mgGLAPI->BeginConditionalRender -#define glVertexAttribP1uiv __mgGLAPI->VertexAttribP1uiv -#define glDispatchCompute __mgGLAPI->DispatchCompute -#define glIsSync __mgGLAPI->IsSync -#define glPixelStoref __mgGLAPI->PixelStoref -#define glFrontFace __mgGLAPI->FrontFace -#define glVertexAttribI4sv __mgGLAPI->VertexAttribI4sv -#define glBufferSubData __mgGLAPI->BufferSubData -#define glVertexAttrib3dv __mgGLAPI->VertexAttrib3dv -#define glWaitSync __mgGLAPI->WaitSync -#define glUniform3fv __mgGLAPI->Uniform3fv -#define glPointParameteriv __mgGLAPI->PointParameteriv -#define glProgramUniform1d __mgGLAPI->ProgramUniform1d -#define glCreateShader __mgGLAPI->CreateShader -#define glGetGraphicsResetStatus __mgGLAPI->GetGraphicsResetStatus -#define glBindVertexBuffer __mgGLAPI->BindVertexBuffer -#define glVertexAttrib1d __mgGLAPI->VertexAttrib1d -#define glGetProgramPipelineInfoLog __mgGLAPI->GetProgramPipelineInfoLog -#define glGetnUniformiv __mgGLAPI->GetnUniformiv -#define glVertexAttribI2ui __mgGLAPI->VertexAttribI2ui -#define glDrawArraysIndirect __mgGLAPI->DrawArraysIndirect -#define glDepthRangeArrayv __mgGLAPI->DepthRangeArrayv -#define glTexImage3DMultisample __mgGLAPI->TexImage3DMultisample -#define glUniformMatrix4x3dv __mgGLAPI->UniformMatrix4x3dv -#define glProgramUniform4i __mgGLAPI->ProgramUniform4i -#define glVertexAttrib3f __mgGLAPI->VertexAttrib3f -#define glGetUniformfv __mgGLAPI->GetUniformfv -#define glVertexAttrib1fv __mgGLAPI->VertexAttrib1fv -#define glVertexAttribI1iv __mgGLAPI->VertexAttribI1iv -#define glTexParameterf __mgGLAPI->TexParameterf -#define glResumeTransformFeedback __mgGLAPI->ResumeTransformFeedback -#define glReadnPixels __mgGLAPI->ReadnPixels -#define glGetActiveSubroutineUniformName __mgGLAPI->GetActiveSubroutineUniformName -#define glProgramUniform3d __mgGLAPI->ProgramUniform3d -#define glUniform4f __mgGLAPI->Uniform4f -#define glUniformMatrix3x2fv __mgGLAPI->UniformMatrix3x2fv -#define glClearColor __mgGLAPI->ClearColor -#define glVertexAttribP3uiv __mgGLAPI->VertexAttribP3uiv -#define glActiveTexture __mgGLAPI->ActiveTexture -#define glProgramUniform4uiv __mgGLAPI->ProgramUniform4uiv -#define glPrimitiveRestartIndex __mgGLAPI->PrimitiveRestartIndex -#define glProgramUniform2d __mgGLAPI->ProgramUniform2d -#endif // __GL_API_H__ +/******************************************************** +* +* @file: gl_api.h +* @note: auto-generated by glapi.py from gl.xml +* @date: 20/022023 +* +*********************************************************/ +#ifndef __GL_API_H__ +#define __GL_API_H__ + +#include"GL/glcorearb.h" +#include"GLES3/gl32.h" + +typedef struct mg_gl_api +{ + PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; + PFNGLPOINTPARAMETERFVPROC PointParameterfv; + PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; + PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv; + PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d; + PFNGLREADPIXELSPROC ReadPixels; + PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; + PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer; + PFNGLFENCESYNCPROC FenceSync; + PFNGLGETFLOATI_VPROC GetFloati_v; + PFNGLUNIFORM2IPROC Uniform2i; + PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d; + PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d; + PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i; + PFNGLISQUERYPROC IsQuery; + PFNGLUNIFORM2IVPROC Uniform2iv; + PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv; + PFNGLUNIFORM1UIPROC Uniform1ui; + PFNGLISRENDERBUFFERPROC IsRenderbuffer; + PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; + PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v; + PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f; + PFNGLGENSAMPLERSPROC GenSamplers; + PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv; + PFNGLBINDFRAMEBUFFERPROC BindFramebuffer; + PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv; + PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback; + PFNGLGETACTIVEUNIFORMPROC GetActiveUniform; + PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f; + PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect; + PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback; + PFNGLUNIFORM2FPROC Uniform2f; + PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D; + PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D; + PFNGLSTENCILMASKPROC StencilMask; + PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; + PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation; + PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv; + PFNGLGETNUNIFORMUIVPROC GetnUniformuiv; + PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv; + PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv; + PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv; + PFNGLVERTEXATTRIB2SPROC VertexAttrib2s; + PFNGLTEXSUBIMAGE1DPROC TexSubImage1D; + PFNGLUNIFORM2DPROC Uniform2d; + PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv; + PFNGLTEXPARAMETERIVPROC TexParameteriv; + PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv; + PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv; + PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat; + PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv; + PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv; + PFNGLBLENDEQUATIONIPROC BlendEquationi; + PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv; + PFNGLCOMPILESHADERPROC CompileShader; + PFNGLDELETEBUFFERSPROC DeleteBuffers; + PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex; + PFNGLFLUSHPROC Flush; + PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv; + PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui; + PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv; + PFNGLPUSHDEBUGGROUPPROC PushDebugGroup; + PFNGLPROGRAMPARAMETERIPROC ProgramParameteri; + PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv; + PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv; + PFNGLUNIFORM4FVPROC Uniform4fv; + PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv; + PFNGLBLENDBARRIERPROC BlendBarrier; + PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv; + PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation; + PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv; + PFNGLGENVERTEXARRAYSPROC GenVertexArrays; + PFNGLDEPTHMASKPROC DepthMask; + PFNGLTEXPARAMETERFPROC TexParameterf; + PFNGLENDQUERYPROC EndQuery; + PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv; + PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D; + PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D; + PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel; + PFNGLGETACTIVEATTRIBPROC GetActiveAttrib; + PFNGLSAMPLERPARAMETERFPROC SamplerParameterf; + PFNGLUNIFORM3DVPROC Uniform3dv; + PFNGLBINDSAMPLERPROC BindSampler; + PFNGLGETUNIFORMINDICESPROC GetUniformIndices; + PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv; + PFNGLDRAWELEMENTSPROC DrawElements; + PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; + PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv; + PFNGLGENRENDERBUFFERSPROC GenRenderbuffers; + PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv; + PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui; + PFNGLTEXBUFFERPROC TexBuffer; + PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor; + PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate; + PFNGLUSEPROGRAMSTAGESPROC UseProgramStages; + PFNGLENABLEIPROC Enablei; + PFNGLCOLORMASKPROC ColorMask; + PFNGLVERTEXATTRIB4DPROC VertexAttrib4d; + PFNGLISSYNCPROC IsSync; + PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv; + PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance; + PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv; + PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage; + PFNGLGETSHADERIVPROC GetShaderiv; + PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv; + PFNGLUNIFORM2UIVPROC Uniform2uiv; + PFNGLTEXPARAMETERFVPROC TexParameterfv; + PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui; + PFNGLPROVOKINGVERTEXPROC ProvokingVertex; + PFNGLBINDRENDERBUFFERPROC BindRenderbuffer; + PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv; + PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri; + PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName; + PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D; + PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D; + PFNGLBINDBUFFERBASEPROC BindBufferBase; + PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui; + PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers; + PFNGLENABLEPROC Enable; + PFNGLGETUNIFORMUIVPROC GetUniformuiv; + PFNGLLOGICOPPROC LogicOp; + PFNGLUNIFORM2DVPROC Uniform2dv; + PFNGLCREATEPROGRAMPROC CreateProgram; + PFNGLVERTEXATTRIB2FPROC VertexAttrib2f; + PFNGLVERTEXATTRIB3FPROC VertexAttrib3f; + PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv; + PFNGLVERTEXATTRIB2DPROC VertexAttrib2d; + PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler; + PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i; + PFNGLGETOBJECTLABELPROC GetObjectLabel; + PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv; + PFNGLDELETESYNCPROC DeleteSync; + PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei; + PFNGLGETERRORPROC GetError; + PFNGLOBJECTPTRLABELPROC ObjectPtrLabel; + PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv; + PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage; + PFNGLSAMPLECOVERAGEPROC SampleCoverage; + PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv; + PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex; + PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv; + PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName; + PFNGLCLEARSTENCILPROC ClearStencil; + PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender; + PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding; + PFNGLTEXSUBIMAGE3DPROC TexSubImage3D; + PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer; + PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv; + PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv; + PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange; + PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv; + PFNGLMAPBUFFERRANGEPROC MapBufferRange; + PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d; + PFNGLCLEARBUFFERIVPROC ClearBufferiv; + PFNGLTEXBUFFERRANGEPROC TexBufferRange; + PFNGLGETBOOLEANVPROC GetBooleanv; + PFNGLCLEARBUFFERUIVPROC ClearBufferuiv; + PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName; + PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData; + PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv; + PFNGLPATCHPARAMETERFVPROC PatchParameterfv; + PFNGLUNIFORM1UIVPROC Uniform1uiv; + PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample; + PFNGLUNIFORM3UIPROC Uniform3ui; + PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample; + PFNGLISFRAMEBUFFERPROC IsFramebuffer; + PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; + PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv; + PFNGLUNIFORM4FPROC Uniform4f; + PFNGLWAITSYNCPROC WaitSync; + PFNGLGETINTERNALFORMATIVPROC GetInternalformativ; + PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders; + PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv; + PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv; + PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced; + PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv; + PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv; + PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv; + PFNGLCREATESHADERPROC CreateShader; + PFNGLREADNPIXELSPROC ReadnPixels; + PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv; + PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv; + PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv; + PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv; + PFNGLUNIFORM1DVPROC Uniform1dv; + PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv; + PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui; + PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat; + PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect; + PFNGLTEXTUREVIEWPROC TextureView; + PFNGLUNIFORM4IVPROC Uniform4iv; + PFNGLPIXELSTOREIPROC PixelStorei; + PFNGLFINISHPROC Finish; + PFNGLCLEARDEPTHPROC ClearDepth; + PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv; + PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv; + PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate; + PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D; + PFNGLPOPDEBUGGROUPPROC PopDebugGroup; + PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback; + PFNGLMEMORYBARRIERPROC MemoryBarrier; + PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D; + PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer; + PFNGLDISABLEPROC Disable; + PFNGLGETFLOATVPROC GetFloatv; + PFNGLDRAWBUFFERPROC DrawBuffer; + PFNGLPRIMITIVEBOUNDINGBOXPROC PrimitiveBoundingBox; + PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv; + PFNGLGETPROGRAMBINARYPROC GetProgramBinary; + PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv; + PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv; + PFNGLDELETESHADERPROC DeleteShader; + PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv; + PFNGLCLEARPROC Clear; + PFNGLGETSHADERSOURCEPROC GetShaderSource; + PFNGLPOINTPARAMETERFPROC PointParameterf; + PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv; + PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv; + PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData; + PFNGLVERTEXATTRIB3DPROC VertexAttrib3d; + PFNGLDRAWARRAYSPROC DrawArrays; + PFNGLISBUFFERPROC IsBuffer; + PFNGLMINSAMPLESHADINGPROC MinSampleShading; + PFNGLUNIFORM4DVPROC Uniform4dv; + PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D; + PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv; + PFNGLUNIFORM3DPROC Uniform3d; + PFNGLDELETEQUERIESPROC DeleteQueries; + PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf; + PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui; + PFNGLCLEARBUFFERFVPROC ClearBufferfv; + PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex; + PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f; + PFNGLVIEWPORTPROC Viewport; + PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i; + PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; + PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv; + PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui; + PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer; + PFNGLGETSYNCIVPROC GetSynciv; + PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv; + PFNGLUNIFORM1IVPROC Uniform1iv; + PFNGLDRAWBUFFERSPROC DrawBuffers; + PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv; + PFNGLBINDBUFFERRANGEPROC BindBufferRange; + PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv; + PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex; + PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName; + PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv; + PFNGLTEXSTORAGE3DPROC TexStorage3D; + PFNGLUNIFORM2UIPROC Uniform2ui; + PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus; + PFNGLBLENDFUNCIPROC BlendFunci; + PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv; + PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer; + PFNGLISVERTEXARRAYPROC IsVertexArray; + PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying; + PFNGLGETSTRINGIPROC GetStringi; + PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv; + PFNGLDELETESAMPLERSPROC DeleteSamplers; + PFNGLUNMAPBUFFERPROC UnmapBuffer; + PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage; + PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline; + PFNGLLINEWIDTHPROC LineWidth; + PFNGLUNIFORM1IPROC Uniform1i; + PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv; + PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv; + PFNGLPATCHPARAMETERIPROC PatchParameteri; + PFNGLBINDIMAGETEXTUREPROC BindImageTexture; + PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv; + PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements; + PFNGLVERTEXATTRIB1DPROC VertexAttrib1d; + PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui; + PFNGLGETNUNIFORMIVPROC GetnUniformiv; + PFNGLGETSTRINGPROC GetString; + PFNGLTEXIMAGE2DPROC TexImage2D; + PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv; + PFNGLGENERATEMIPMAPPROC GenerateMipmap; + PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv; + PFNGLISENABLEDPROC IsEnabled; + PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv; + PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d; + PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv; + PFNGLPOLYGONOFFSETPROC PolygonOffset; + PFNGLGETQUERYIVPROC GetQueryiv; + PFNGLCLIENTWAITSYNCPROC ClientWaitSync; + PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert; + PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv; + PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage; + PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv; + PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed; + PFNGLCULLFACEPROC CullFace; + PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings; + PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv; + PFNGLBLENDCOLORPROC BlendColor; + PFNGLISPROGRAMPROC IsProgram; + PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv; + PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv; + PFNGLVERTEXATTRIB3SPROC VertexAttrib3s; + PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays; + PFNGLPOINTPARAMETERIVPROC PointParameteriv; + PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex; + PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv; + PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv; + PFNGLCLAMPCOLORPROC ClampColor; + PFNGLVERTEXATTRIB4FPROC VertexAttrib4f; + PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback; + PFNGLQUERYCOUNTERPROC QueryCounter; + PFNGLISSHADERPROC IsShader; + PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv; + PFNGLISSAMPLERPROC IsSampler; + PFNGLISENABLEDIPROC IsEnabledi; + PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv; + PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv; + PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation; + PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv; + PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline; + PFNGLTEXPARAMETERIPROC TexParameteri; + PFNGLUNIFORM1FPROC Uniform1f; + PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv; + PFNGLENDCONDITIONALRENDERPROC EndConditionalRender; + PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui; + PFNGLDISPATCHCOMPUTEPROC DispatchCompute; + PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D; + PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced; + PFNGLTEXPARAMETERIIVPROC TexParameterIiv; + PFNGLVERTEXATTRIB1SPROC VertexAttrib1s; + PFNGLGETPOINTERVPROC GetPointerv; + PFNGLLINKPROGRAMPROC LinkProgram; + PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv; + PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v; + PFNGLSTENCILFUNCPROC StencilFunc; + PFNGLPOINTPARAMETERIPROC PointParameteri; + PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback; + PFNGLUNIFORM3IPROC Uniform3i; + PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv; + PFNGLHINTPROC Hint; + PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D; + PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv; + PFNGLSCISSORINDEXEDPROC ScissorIndexed; + PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers; + PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv; + PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; + PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d; + PFNGLENDQUERYINDEXEDPROC EndQueryIndexed; + PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv; + PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv; + PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv; + PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv; + PFNGLSTENCILOPPROC StencilOp; + PFNGLDEPTHFUNCPROC DepthFunc; + PFNGLTEXSTORAGE1DPROC TexStorage1D; + PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat; + PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv; + PFNGLUNIFORM4IPROC Uniform4i; + PFNGLUNIFORM3FVPROC Uniform3fv; + PFNGLDISABLEIPROC Disablei; + PFNGLBINDTEXTUREPROC BindTexture; + PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv; + PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback; + PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion; + PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; + PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i; + PFNGLGETTEXIMAGEPROC GetTexImage; + PFNGLGETINTEGERI_VPROC GetIntegeri_v; + PFNGLCLEARBUFFERFIPROC ClearBufferfi; + PFNGLSAMPLEMASKIPROC SampleMaski; + PFNGLMAPBUFFERPROC MapBuffer; + PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui; + PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv; + PFNGLDELETETEXTURESPROC DeleteTextures; + PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv; + PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v; + PFNGLGETUNIFORMDVPROC GetUniformdv; + PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding; + PFNGLPOLYGONMODEPROC PolygonMode; + PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog; + PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks; + PFNGLBINDVERTEXARRAYPROC BindVertexArray; + PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv; + PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; + PFNGLBINDBUFFERPROC BindBuffer; + PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog; + PFNGLVERTEXATTRIB1FPROC VertexAttrib1f; + PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub; + PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed; + PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv; + PFNGLFRONTFACEPROC FrontFace; + PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv; + PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate; + PFNGLBLENDFUNCPROC BlendFunc; + PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer; + PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv; + PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv; + PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv; + PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D; + PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect; + PFNGLGENTEXTURESPROC GenTextures; + PFNGLGETINTEGER64I_VPROC GetInteger64i_v; + PFNGLSAMPLERPARAMETERIPROC SamplerParameteri; + PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui; + PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv; + PFNGLGETDOUBLEVPROC GetDoublev; + PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D; + PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D; + PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv; + PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv; + PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i; + PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv; + PFNGLSHADERSOURCEPROC ShaderSource; + PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv; + PFNGLBUFFERSUBDATAPROC BufferSubData; + PFNGLDETACHSHADERPROC DetachShader; + PFNGLDELETEPROGRAMPROC DeleteProgram; + PFNGLGETINTEGER64VPROC GetInteger64v; + PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i; + PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat; + PFNGLDEPTHRANGEFPROC DepthRangef; + PFNGLGETPROGRAMIVPROC GetProgramiv; + PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei; + PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv; + PFNGLUNIFORM4UIVPROC Uniform4uiv; + PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv; + PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv; + PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer; + PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv; + PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements; + PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv; + PFNGLISTEXTUREPROC IsTexture; + PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline; + PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv; + PFNGLBUFFERDATAPROC BufferData; + PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d; + PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData; + PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor; + PFNGLGETDOUBLEI_VPROC GetDoublei_v; + PFNGLCOLORMASKIPROC ColorMaski; + PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; + PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d; + PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv; + PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks; + PFNGLGETNUNIFORMFVPROC GetnUniformfv; + PFNGLSCISSORPROC Scissor; + PFNGLSCISSORARRAYVPROC ScissorArrayv; + PFNGLUNIFORM1FVPROC Uniform1fv; + PFNGLUSEPROGRAMPROC UseProgram; + PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv; + PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData; + PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv; + PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample; + PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced; + PFNGLVIEWPORTARRAYVPROC ViewportArrayv; + PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl; + PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv; + PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv; + PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui; + PFNGLCLEARBUFFERDATAPROC ClearBufferData; + PFNGLGETINTEGERVPROC GetIntegerv; + PFNGLGENBUFFERSPROC GenBuffers; + PFNGLTEXSTORAGE2DPROC TexStorage2D; + PFNGLDEPTHRANGEPROC DepthRange; + PFNGLGETUNIFORMFVPROC GetUniformfv; + PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation; + PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv; + PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv; + PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv; + PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv; + PFNGLGETUNIFORMIVPROC GetUniformiv; + PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed; + PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv; + PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv; + PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance; + PFNGLACTIVETEXTUREPROC ActiveTexture; + PFNGLOBJECTLABELPROC ObjectLabel; + PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer; + PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i; + PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex; + PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v; + PFNGLCLEARCOLORPROC ClearColor; + PFNGLSCISSORINDEXEDVPROC ScissorIndexedv; + PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced; + PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv; + PFNGLATTACHSHADERPROC AttachShader; + PFNGLUNIFORM4DPROC Uniform4d; + PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; + PFNGLSHADERBINARYPROC ShaderBinary; + PFNGLUNIFORM2FVPROC Uniform2fv; + PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv; + PFNGLUNIFORM3UIVPROC Uniform3uiv; + PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex; + PFNGLGENFRAMEBUFFERSPROC GenFramebuffers; + PFNGLGENQUERIESPROC GenQueries; + PFNGLPOINTSIZEPROC PointSize; + PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect; + PFNGLBLENDEQUATIONPROC BlendEquation; + PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv; + PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv; + PFNGLCLEARDEPTHFPROC ClearDepthf; + PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; + PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample; + PFNGLVALIDATEPROGRAMPROC ValidateProgram; + PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation; + PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect; + PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv; + PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines; + PFNGLTEXIMAGE3DPROC TexImage3D; + PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback; + PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv; + PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName; + PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; + PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f; + PFNGLVERTEXATTRIB4SPROC VertexAttrib4s; + PFNGLUNIFORM4UIPROC Uniform4ui; + PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv; + PFNGLPIXELSTOREFPROC PixelStoref; + PFNGLPROGRAMBINARYPROC ProgramBinary; + PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture; + PFNGLGETBOOLEANI_VPROC GetBooleani_v; + PFNGLUNIFORM1DPROC Uniform1d; + PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram; + PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance; + PFNGLGETBUFFERSUBDATAPROC GetBufferSubData; + PFNGLUNIFORM3FPROC Uniform3f; + PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv; + PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i; + PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback; + PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData; + PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex; + PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding; + PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample; + PFNGLREADBUFFERPROC ReadBuffer; + PFNGLTEXIMAGE1DPROC TexImage1D; + PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv; + PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus; + PFNGLUNIFORM3IVPROC Uniform3iv; + PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream; + PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv; + PFNGLBEGINQUERYPROC BeginQuery; + PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv; + PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines; + PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex; + PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv; +} mg_gl_api; + +extern mp_thread_local mg_gl_api* __mgGLAPI; + +#define glVertexAttribPointer __mgGLAPI->VertexAttribPointer +#define glPointParameterfv __mgGLAPI->PointParameterfv +#define glDisableVertexAttribArray __mgGLAPI->DisableVertexAttribArray +#define glUniformMatrix4x3fv __mgGLAPI->UniformMatrix4x3fv +#define glVertexAttribL2d __mgGLAPI->VertexAttribL2d +#define glReadPixels __mgGLAPI->ReadPixels +#define glBlendFuncSeparate __mgGLAPI->BlendFuncSeparate +#define glVertexAttribIPointer __mgGLAPI->VertexAttribIPointer +#define glFenceSync __mgGLAPI->FenceSync +#define glGetFloati_v __mgGLAPI->GetFloati_v +#define glUniform2i __mgGLAPI->Uniform2i +#define glProgramUniform3d __mgGLAPI->ProgramUniform3d +#define glVertexAttribL4d __mgGLAPI->VertexAttribL4d +#define glVertexAttribI2i __mgGLAPI->VertexAttribI2i +#define glIsQuery __mgGLAPI->IsQuery +#define glUniform2iv __mgGLAPI->Uniform2iv +#define glVertexAttrib4Niv __mgGLAPI->VertexAttrib4Niv +#define glUniform1ui __mgGLAPI->Uniform1ui +#define glIsRenderbuffer __mgGLAPI->IsRenderbuffer +#define glGetUniformLocation __mgGLAPI->GetUniformLocation +#define glGetInternalformati64v __mgGLAPI->GetInternalformati64v +#define glProgramUniform3f __mgGLAPI->ProgramUniform3f +#define glGenSamplers __mgGLAPI->GenSamplers +#define glUniformMatrix2x4fv __mgGLAPI->UniformMatrix2x4fv +#define glBindFramebuffer __mgGLAPI->BindFramebuffer +#define glVertexAttribP3uiv __mgGLAPI->VertexAttribP3uiv +#define glDrawTransformFeedback __mgGLAPI->DrawTransformFeedback +#define glGetActiveUniform __mgGLAPI->GetActiveUniform +#define glProgramUniform1f __mgGLAPI->ProgramUniform1f +#define glDispatchComputeIndirect __mgGLAPI->DispatchComputeIndirect +#define glBindTransformFeedback __mgGLAPI->BindTransformFeedback +#define glUniform2f __mgGLAPI->Uniform2f +#define glCompressedTexImage2D __mgGLAPI->CompressedTexImage2D +#define glCopyTexSubImage3D __mgGLAPI->CopyTexSubImage3D +#define glStencilMask __mgGLAPI->StencilMask +#define glDeleteVertexArrays __mgGLAPI->DeleteVertexArrays +#define glBindAttribLocation __mgGLAPI->BindAttribLocation +#define glGetVertexAttribLdv __mgGLAPI->GetVertexAttribLdv +#define glGetnUniformuiv __mgGLAPI->GetnUniformuiv +#define glProgramUniformMatrix2x3fv __mgGLAPI->ProgramUniformMatrix2x3fv +#define glProgramUniformMatrix3x4fv __mgGLAPI->ProgramUniformMatrix3x4fv +#define glProgramUniformMatrix2x4dv __mgGLAPI->ProgramUniformMatrix2x4dv +#define glVertexAttrib2s __mgGLAPI->VertexAttrib2s +#define glTexSubImage1D __mgGLAPI->TexSubImage1D +#define glUniform2d __mgGLAPI->Uniform2d +#define glUniformMatrix4dv __mgGLAPI->UniformMatrix4dv +#define glTexParameteriv __mgGLAPI->TexParameteriv +#define glProgramUniformMatrix4x2fv __mgGLAPI->ProgramUniformMatrix4x2fv +#define glProgramUniformMatrix3x2dv __mgGLAPI->ProgramUniformMatrix3x2dv +#define glGetShaderPrecisionFormat __mgGLAPI->GetShaderPrecisionFormat +#define glVertexAttrib4uiv __mgGLAPI->VertexAttrib4uiv +#define glProgramUniform2dv __mgGLAPI->ProgramUniform2dv +#define glBlendEquationi __mgGLAPI->BlendEquationi +#define glUniformSubroutinesuiv __mgGLAPI->UniformSubroutinesuiv +#define glCompileShader __mgGLAPI->CompileShader +#define glDeleteBuffers __mgGLAPI->DeleteBuffers +#define glGetProgramResourceIndex __mgGLAPI->GetProgramResourceIndex +#define glFlush __mgGLAPI->Flush +#define glGetMultisamplefv __mgGLAPI->GetMultisamplefv +#define glProgramUniform4ui __mgGLAPI->ProgramUniform4ui +#define glGetBufferPointerv __mgGLAPI->GetBufferPointerv +#define glPushDebugGroup __mgGLAPI->PushDebugGroup +#define glProgramParameteri __mgGLAPI->ProgramParameteri +#define glProgramUniform1uiv __mgGLAPI->ProgramUniform1uiv +#define glDepthRangeArrayv __mgGLAPI->DepthRangeArrayv +#define glUniform4fv __mgGLAPI->Uniform4fv +#define glSamplerParameterfv __mgGLAPI->SamplerParameterfv +#define glBlendBarrier __mgGLAPI->BlendBarrier +#define glProgramUniformMatrix3dv __mgGLAPI->ProgramUniformMatrix3dv +#define glGetProgramResourceLocation __mgGLAPI->GetProgramResourceLocation +#define glProgramUniform2iv __mgGLAPI->ProgramUniform2iv +#define glGenVertexArrays __mgGLAPI->GenVertexArrays +#define glDepthMask __mgGLAPI->DepthMask +#define glTexParameterf __mgGLAPI->TexParameterf +#define glEndQuery __mgGLAPI->EndQuery +#define glUniformMatrix3x4fv __mgGLAPI->UniformMatrix3x4fv +#define glCompressedTexImage1D __mgGLAPI->CompressedTexImage1D +#define glCopyTexImage1D __mgGLAPI->CopyTexImage1D +#define glGetObjectPtrLabel __mgGLAPI->GetObjectPtrLabel +#define glGetActiveAttrib __mgGLAPI->GetActiveAttrib +#define glSamplerParameterf __mgGLAPI->SamplerParameterf +#define glUniform3dv __mgGLAPI->Uniform3dv +#define glBindSampler __mgGLAPI->BindSampler +#define glGetUniformIndices __mgGLAPI->GetUniformIndices +#define glGetQueryIndexediv __mgGLAPI->GetQueryIndexediv +#define glDrawElements __mgGLAPI->DrawElements +#define glGetShaderInfoLog __mgGLAPI->GetShaderInfoLog +#define glProgramUniform3dv __mgGLAPI->ProgramUniform3dv +#define glGenRenderbuffers __mgGLAPI->GenRenderbuffers +#define glVertexAttribI2uiv __mgGLAPI->VertexAttribI2uiv +#define glProgramUniform3ui __mgGLAPI->ProgramUniform3ui +#define glTexBuffer __mgGLAPI->TexBuffer +#define glVertexBindingDivisor __mgGLAPI->VertexBindingDivisor +#define glStencilMaskSeparate __mgGLAPI->StencilMaskSeparate +#define glUseProgramStages __mgGLAPI->UseProgramStages +#define glEnablei __mgGLAPI->Enablei +#define glColorMask __mgGLAPI->ColorMask +#define glVertexAttrib4d __mgGLAPI->VertexAttrib4d +#define glIsSync __mgGLAPI->IsSync +#define glGetVertexAttribIuiv __mgGLAPI->GetVertexAttribIuiv +#define glDrawElementsInstancedBaseVertexBaseInstance __mgGLAPI->DrawElementsInstancedBaseVertexBaseInstance +#define glGetSamplerParameterIuiv __mgGLAPI->GetSamplerParameterIuiv +#define glInvalidateTexSubImage __mgGLAPI->InvalidateTexSubImage +#define glGetShaderiv __mgGLAPI->GetShaderiv +#define glGetTexParameterfv __mgGLAPI->GetTexParameterfv +#define glUniform2uiv __mgGLAPI->Uniform2uiv +#define glTexParameterfv __mgGLAPI->TexParameterfv +#define glVertexAttribP3ui __mgGLAPI->VertexAttribP3ui +#define glProvokingVertex __mgGLAPI->ProvokingVertex +#define glBindRenderbuffer __mgGLAPI->BindRenderbuffer +#define glVertexAttribI1uiv __mgGLAPI->VertexAttribI1uiv +#define glFramebufferParameteri __mgGLAPI->FramebufferParameteri +#define glGetActiveUniformBlockName __mgGLAPI->GetActiveUniformBlockName +#define glCopyTexSubImage2D __mgGLAPI->CopyTexSubImage2D +#define glFramebufferTexture3D __mgGLAPI->FramebufferTexture3D +#define glBindBufferBase __mgGLAPI->BindBufferBase +#define glProgramUniform2ui __mgGLAPI->ProgramUniform2ui +#define glDeleteFramebuffers __mgGLAPI->DeleteFramebuffers +#define glEnable __mgGLAPI->Enable +#define glGetUniformuiv __mgGLAPI->GetUniformuiv +#define glLogicOp __mgGLAPI->LogicOp +#define glUniform2dv __mgGLAPI->Uniform2dv +#define glCreateProgram __mgGLAPI->CreateProgram +#define glVertexAttrib2f __mgGLAPI->VertexAttrib2f +#define glVertexAttrib3f __mgGLAPI->VertexAttrib3f +#define glVertexAttrib4usv __mgGLAPI->VertexAttrib4usv +#define glVertexAttrib2d __mgGLAPI->VertexAttrib2d +#define glReleaseShaderCompiler __mgGLAPI->ReleaseShaderCompiler +#define glProgramUniform4i __mgGLAPI->ProgramUniform4i +#define glGetObjectLabel __mgGLAPI->GetObjectLabel +#define glVertexAttrib1sv __mgGLAPI->VertexAttrib1sv +#define glDeleteSync __mgGLAPI->DeleteSync +#define glBlendFuncSeparatei __mgGLAPI->BlendFuncSeparatei +#define glGetError __mgGLAPI->GetError +#define glObjectPtrLabel __mgGLAPI->ObjectPtrLabel +#define glVertexAttrib4Nusv __mgGLAPI->VertexAttrib4Nusv +#define glRenderbufferStorage __mgGLAPI->RenderbufferStorage +#define glSampleCoverage __mgGLAPI->SampleCoverage +#define glVertexAttribL2dv __mgGLAPI->VertexAttribL2dv +#define glDrawElementsInstancedBaseVertex __mgGLAPI->DrawElementsInstancedBaseVertex +#define glUniformMatrix4x2fv __mgGLAPI->UniformMatrix4x2fv +#define glGetActiveUniformName __mgGLAPI->GetActiveUniformName +#define glClearStencil __mgGLAPI->ClearStencil +#define glBeginConditionalRender __mgGLAPI->BeginConditionalRender +#define glVertexAttribBinding __mgGLAPI->VertexAttribBinding +#define glTexSubImage3D __mgGLAPI->TexSubImage3D +#define glFramebufferTextureLayer __mgGLAPI->FramebufferTextureLayer +#define glGetActiveAtomicCounterBufferiv __mgGLAPI->GetActiveAtomicCounterBufferiv +#define glVertexAttrib1fv __mgGLAPI->VertexAttrib1fv +#define glFlushMappedBufferRange __mgGLAPI->FlushMappedBufferRange +#define glVertexAttrib2fv __mgGLAPI->VertexAttrib2fv +#define glMapBufferRange __mgGLAPI->MapBufferRange +#define glVertexAttribL3d __mgGLAPI->VertexAttribL3d +#define glClearBufferiv __mgGLAPI->ClearBufferiv +#define glTexBufferRange __mgGLAPI->TexBufferRange +#define glGetBooleanv __mgGLAPI->GetBooleanv +#define glClearBufferuiv __mgGLAPI->ClearBufferuiv +#define glGetProgramResourceName __mgGLAPI->GetProgramResourceName +#define glCopyImageSubData __mgGLAPI->CopyImageSubData +#define glVertexAttrib4Nuiv __mgGLAPI->VertexAttrib4Nuiv +#define glPatchParameterfv __mgGLAPI->PatchParameterfv +#define glUniform1uiv __mgGLAPI->Uniform1uiv +#define glTexImage3DMultisample __mgGLAPI->TexImage3DMultisample +#define glUniform3ui __mgGLAPI->Uniform3ui +#define glTexStorage3DMultisample __mgGLAPI->TexStorage3DMultisample +#define glIsFramebuffer __mgGLAPI->IsFramebuffer +#define glTexSubImage2D __mgGLAPI->TexSubImage2D +#define glVertexAttribP1uiv __mgGLAPI->VertexAttribP1uiv +#define glUniform4f __mgGLAPI->Uniform4f +#define glWaitSync __mgGLAPI->WaitSync +#define glGetInternalformativ __mgGLAPI->GetInternalformativ +#define glGetAttachedShaders __mgGLAPI->GetAttachedShaders +#define glVertexAttrib2sv __mgGLAPI->VertexAttrib2sv +#define glVertexAttribI4sv __mgGLAPI->VertexAttribI4sv +#define glDrawElementsInstanced __mgGLAPI->DrawElementsInstanced +#define glVertexAttribL4dv __mgGLAPI->VertexAttribL4dv +#define glCreateShaderProgramv __mgGLAPI->CreateShaderProgramv +#define glUniformMatrix4x3dv __mgGLAPI->UniformMatrix4x3dv +#define glCreateShader __mgGLAPI->CreateShader +#define glReadnPixels __mgGLAPI->ReadnPixels +#define glProgramUniformMatrix2dv __mgGLAPI->ProgramUniformMatrix2dv +#define glVertexAttrib4fv __mgGLAPI->VertexAttrib4fv +#define glGetActiveUniformsiv __mgGLAPI->GetActiveUniformsiv +#define glUniformMatrix2dv __mgGLAPI->UniformMatrix2dv +#define glUniform1dv __mgGLAPI->Uniform1dv +#define glGetBufferParameteriv __mgGLAPI->GetBufferParameteriv +#define glVertexAttribI3ui __mgGLAPI->VertexAttribI3ui +#define glVertexAttribLFormat __mgGLAPI->VertexAttribLFormat +#define glDrawArraysIndirect __mgGLAPI->DrawArraysIndirect +#define glTextureView __mgGLAPI->TextureView +#define glUniform4iv __mgGLAPI->Uniform4iv +#define glPixelStorei __mgGLAPI->PixelStorei +#define glFinish __mgGLAPI->Finish +#define glClearDepth __mgGLAPI->ClearDepth +#define glProgramUniformMatrix2x3dv __mgGLAPI->ProgramUniformMatrix2x3dv +#define glProgramUniformMatrix3x4dv __mgGLAPI->ProgramUniformMatrix3x4dv +#define glStencilFuncSeparate __mgGLAPI->StencilFuncSeparate +#define glFramebufferTexture2D __mgGLAPI->FramebufferTexture2D +#define glPopDebugGroup __mgGLAPI->PopDebugGroup +#define glBeginTransformFeedback __mgGLAPI->BeginTransformFeedback +#define glMemoryBarrier __mgGLAPI->MemoryBarrier +#define glCompressedTexSubImage1D __mgGLAPI->CompressedTexSubImage1D +#define glBindVertexBuffer __mgGLAPI->BindVertexBuffer +#define glDisable __mgGLAPI->Disable +#define glGetFloatv __mgGLAPI->GetFloatv +#define glDrawBuffer __mgGLAPI->DrawBuffer +#define glPrimitiveBoundingBox __mgGLAPI->PrimitiveBoundingBox +#define glVertexAttrib4dv __mgGLAPI->VertexAttrib4dv +#define glGetProgramBinary __mgGLAPI->GetProgramBinary +#define glGetFramebufferParameteriv __mgGLAPI->GetFramebufferParameteriv +#define glVertexAttrib1dv __mgGLAPI->VertexAttrib1dv +#define glDeleteShader __mgGLAPI->DeleteShader +#define glGetTexParameterIuiv __mgGLAPI->GetTexParameterIuiv +#define glClear __mgGLAPI->Clear +#define glGetShaderSource __mgGLAPI->GetShaderSource +#define glPointParameterf __mgGLAPI->PointParameterf +#define glVertexAttribI4uiv __mgGLAPI->VertexAttribI4uiv +#define glVertexAttrib3fv __mgGLAPI->VertexAttrib3fv +#define glCopyBufferSubData __mgGLAPI->CopyBufferSubData +#define glVertexAttrib3d __mgGLAPI->VertexAttrib3d +#define glDrawArrays __mgGLAPI->DrawArrays +#define glIsBuffer __mgGLAPI->IsBuffer +#define glMinSampleShading __mgGLAPI->MinSampleShading +#define glUniform4dv __mgGLAPI->Uniform4dv +#define glCompressedTexSubImage2D __mgGLAPI->CompressedTexSubImage2D +#define glGetFramebufferAttachmentParameteriv __mgGLAPI->GetFramebufferAttachmentParameteriv +#define glUniform3d __mgGLAPI->Uniform3d +#define glDeleteQueries __mgGLAPI->DeleteQueries +#define glViewportIndexedf __mgGLAPI->ViewportIndexedf +#define glVertexAttribI1ui __mgGLAPI->VertexAttribI1ui +#define glClearBufferfv __mgGLAPI->ClearBufferfv +#define glDrawRangeElementsBaseVertex __mgGLAPI->DrawRangeElementsBaseVertex +#define glProgramUniform2f __mgGLAPI->ProgramUniform2f +#define glViewport __mgGLAPI->Viewport +#define glProgramUniform3i __mgGLAPI->ProgramUniform3i +#define glGetAttribLocation __mgGLAPI->GetAttribLocation +#define glProgramUniformMatrix3fv __mgGLAPI->ProgramUniformMatrix3fv +#define glVertexAttribP4ui __mgGLAPI->VertexAttribP4ui +#define glVertexAttribLPointer __mgGLAPI->VertexAttribLPointer +#define glGetSynciv __mgGLAPI->GetSynciv +#define glVertexAttribL1dv __mgGLAPI->VertexAttribL1dv +#define glUniform1iv __mgGLAPI->Uniform1iv +#define glDrawBuffers __mgGLAPI->DrawBuffers +#define glGetVertexAttribIiv __mgGLAPI->GetVertexAttribIiv +#define glBindBufferRange __mgGLAPI->BindBufferRange +#define glProgramUniform3iv __mgGLAPI->ProgramUniform3iv +#define glPrimitiveRestartIndex __mgGLAPI->PrimitiveRestartIndex +#define glGetActiveSubroutineUniformName __mgGLAPI->GetActiveSubroutineUniformName +#define glSamplerParameterIiv __mgGLAPI->SamplerParameterIiv +#define glTexStorage3D __mgGLAPI->TexStorage3D +#define glUniform2ui __mgGLAPI->Uniform2ui +#define glGetGraphicsResetStatus __mgGLAPI->GetGraphicsResetStatus +#define glBlendFunci __mgGLAPI->BlendFunci +#define glVertexAttribP4uiv __mgGLAPI->VertexAttribP4uiv +#define glInvalidateSubFramebuffer __mgGLAPI->InvalidateSubFramebuffer +#define glIsVertexArray __mgGLAPI->IsVertexArray +#define glGetTransformFeedbackVarying __mgGLAPI->GetTransformFeedbackVarying +#define glGetStringi __mgGLAPI->GetStringi +#define glProgramUniform1iv __mgGLAPI->ProgramUniform1iv +#define glDeleteSamplers __mgGLAPI->DeleteSamplers +#define glUnmapBuffer __mgGLAPI->UnmapBuffer +#define glInvalidateTexImage __mgGLAPI->InvalidateTexImage +#define glIsProgramPipeline __mgGLAPI->IsProgramPipeline +#define glLineWidth __mgGLAPI->LineWidth +#define glUniform1i __mgGLAPI->Uniform1i +#define glProgramUniformMatrix4fv __mgGLAPI->ProgramUniformMatrix4fv +#define glGetQueryObjectiv __mgGLAPI->GetQueryObjectiv +#define glPatchParameteri __mgGLAPI->PatchParameteri +#define glBindImageTexture __mgGLAPI->BindImageTexture +#define glUniformMatrix3x2fv __mgGLAPI->UniformMatrix3x2fv +#define glMultiDrawElements __mgGLAPI->MultiDrawElements +#define glVertexAttrib1d __mgGLAPI->VertexAttrib1d +#define glVertexAttribI2ui __mgGLAPI->VertexAttribI2ui +#define glGetnUniformiv __mgGLAPI->GetnUniformiv +#define glGetString __mgGLAPI->GetString +#define glTexImage2D __mgGLAPI->TexImage2D +#define glProgramUniform4uiv __mgGLAPI->ProgramUniform4uiv +#define glGenerateMipmap __mgGLAPI->GenerateMipmap +#define glGetUniformSubroutineuiv __mgGLAPI->GetUniformSubroutineuiv +#define glIsEnabled __mgGLAPI->IsEnabled +#define glVertexAttribI3uiv __mgGLAPI->VertexAttribI3uiv +#define glProgramUniform4d __mgGLAPI->ProgramUniform4d +#define glVertexAttrib4Nsv __mgGLAPI->VertexAttrib4Nsv +#define glPolygonOffset __mgGLAPI->PolygonOffset +#define glGetQueryiv __mgGLAPI->GetQueryiv +#define glClientWaitSync __mgGLAPI->ClientWaitSync +#define glDebugMessageInsert __mgGLAPI->DebugMessageInsert +#define glGetProgramPipelineiv __mgGLAPI->GetProgramPipelineiv +#define glGetCompressedTexImage __mgGLAPI->GetCompressedTexImage +#define glProgramUniform3fv __mgGLAPI->ProgramUniform3fv +#define glDepthRangeIndexed __mgGLAPI->DepthRangeIndexed +#define glCullFace __mgGLAPI->CullFace +#define glTransformFeedbackVaryings __mgGLAPI->TransformFeedbackVaryings +#define glUniformMatrix3fv __mgGLAPI->UniformMatrix3fv +#define glBlendColor __mgGLAPI->BlendColor +#define glIsProgram __mgGLAPI->IsProgram +#define glVertexAttribP2uiv __mgGLAPI->VertexAttribP2uiv +#define glProgramUniformMatrix4x2dv __mgGLAPI->ProgramUniformMatrix4x2dv +#define glVertexAttrib3s __mgGLAPI->VertexAttrib3s +#define glMultiDrawArrays __mgGLAPI->MultiDrawArrays +#define glPointParameteriv __mgGLAPI->PointParameteriv +#define glGetSubroutineIndex __mgGLAPI->GetSubroutineIndex +#define glUniformMatrix3dv __mgGLAPI->UniformMatrix3dv +#define glGetSamplerParameterIiv __mgGLAPI->GetSamplerParameterIiv +#define glClampColor __mgGLAPI->ClampColor +#define glVertexAttrib4f __mgGLAPI->VertexAttrib4f +#define glResumeTransformFeedback __mgGLAPI->ResumeTransformFeedback +#define glQueryCounter __mgGLAPI->QueryCounter +#define glIsShader __mgGLAPI->IsShader +#define glUniformMatrix4x2dv __mgGLAPI->UniformMatrix4x2dv +#define glIsSampler __mgGLAPI->IsSampler +#define glIsEnabledi __mgGLAPI->IsEnabledi +#define glVertexAttrib4ubv __mgGLAPI->VertexAttrib4ubv +#define glVertexAttrib4Nbv __mgGLAPI->VertexAttrib4Nbv +#define glGetSubroutineUniformLocation __mgGLAPI->GetSubroutineUniformLocation +#define glGetQueryObjectuiv __mgGLAPI->GetQueryObjectuiv +#define glValidateProgramPipeline __mgGLAPI->ValidateProgramPipeline +#define glTexParameteri __mgGLAPI->TexParameteri +#define glUniform1f __mgGLAPI->Uniform1f +#define glUniformMatrix3x2dv __mgGLAPI->UniformMatrix3x2dv +#define glEndConditionalRender __mgGLAPI->EndConditionalRender +#define glVertexAttribP1ui __mgGLAPI->VertexAttribP1ui +#define glDispatchCompute __mgGLAPI->DispatchCompute +#define glFramebufferTexture1D __mgGLAPI->FramebufferTexture1D +#define glDrawTransformFeedbackInstanced __mgGLAPI->DrawTransformFeedbackInstanced +#define glTexParameterIiv __mgGLAPI->TexParameterIiv +#define glVertexAttrib1s __mgGLAPI->VertexAttrib1s +#define glGetPointerv __mgGLAPI->GetPointerv +#define glLinkProgram __mgGLAPI->LinkProgram +#define glGetSamplerParameterfv __mgGLAPI->GetSamplerParameterfv +#define glGetBufferParameteri64v __mgGLAPI->GetBufferParameteri64v +#define glStencilFunc __mgGLAPI->StencilFunc +#define glPointParameteri __mgGLAPI->PointParameteri +#define glDebugMessageCallback __mgGLAPI->DebugMessageCallback +#define glUniform3i __mgGLAPI->Uniform3i +#define glVertexAttribI2iv __mgGLAPI->VertexAttribI2iv +#define glHint __mgGLAPI->Hint +#define glCompressedTexImage3D __mgGLAPI->CompressedTexImage3D +#define glUniformMatrix3x4dv __mgGLAPI->UniformMatrix3x4dv +#define glScissorIndexed __mgGLAPI->ScissorIndexed +#define glDeleteRenderbuffers __mgGLAPI->DeleteRenderbuffers +#define glProgramUniform1dv __mgGLAPI->ProgramUniform1dv +#define glEnableVertexAttribArray __mgGLAPI->EnableVertexAttribArray +#define glVertexAttribL1d __mgGLAPI->VertexAttribL1d +#define glEndQueryIndexed __mgGLAPI->EndQueryIndexed +#define glProgramUniformMatrix4x3fv __mgGLAPI->ProgramUniformMatrix4x3fv +#define glVertexAttribI3iv __mgGLAPI->VertexAttribI3iv +#define glGetActiveSubroutineUniformiv __mgGLAPI->GetActiveSubroutineUniformiv +#define glProgramUniform2fv __mgGLAPI->ProgramUniform2fv +#define glStencilOp __mgGLAPI->StencilOp +#define glDepthFunc __mgGLAPI->DepthFunc +#define glTexStorage1D __mgGLAPI->TexStorage1D +#define glVertexAttribFormat __mgGLAPI->VertexAttribFormat +#define glUniformMatrix2x3dv __mgGLAPI->UniformMatrix2x3dv +#define glUniform4i __mgGLAPI->Uniform4i +#define glUniform3fv __mgGLAPI->Uniform3fv +#define glDisablei __mgGLAPI->Disablei +#define glBindTexture __mgGLAPI->BindTexture +#define glVertexAttribL3dv __mgGLAPI->VertexAttribL3dv +#define glEndTransformFeedback __mgGLAPI->EndTransformFeedback +#define glMemoryBarrierByRegion __mgGLAPI->MemoryBarrierByRegion +#define glBlendEquationSeparate __mgGLAPI->BlendEquationSeparate +#define glVertexAttribI3i __mgGLAPI->VertexAttribI3i +#define glGetTexImage __mgGLAPI->GetTexImage +#define glGetIntegeri_v __mgGLAPI->GetIntegeri_v +#define glClearBufferfi __mgGLAPI->ClearBufferfi +#define glSampleMaski __mgGLAPI->SampleMaski +#define glMapBuffer __mgGLAPI->MapBuffer +#define glVertexAttribP2ui __mgGLAPI->VertexAttribP2ui +#define glProgramUniform4dv __mgGLAPI->ProgramUniform4dv +#define glDeleteTextures __mgGLAPI->DeleteTextures +#define glVertexAttrib4iv __mgGLAPI->VertexAttrib4iv +#define glGetQueryObjectui64v __mgGLAPI->GetQueryObjectui64v +#define glGetUniformdv __mgGLAPI->GetUniformdv +#define glUniformBlockBinding __mgGLAPI->UniformBlockBinding +#define glPolygonMode __mgGLAPI->PolygonMode +#define glGetDebugMessageLog __mgGLAPI->GetDebugMessageLog +#define glGenTransformFeedbacks __mgGLAPI->GenTransformFeedbacks +#define glBindVertexArray __mgGLAPI->BindVertexArray +#define glProgramUniformMatrix4x3dv __mgGLAPI->ProgramUniformMatrix4x3dv +#define glGetVertexAttribiv __mgGLAPI->GetVertexAttribiv +#define glBindBuffer __mgGLAPI->BindBuffer +#define glGetProgramPipelineInfoLog __mgGLAPI->GetProgramPipelineInfoLog +#define glVertexAttrib1f __mgGLAPI->VertexAttrib1f +#define glVertexAttrib4Nub __mgGLAPI->VertexAttrib4Nub +#define glBeginQueryIndexed __mgGLAPI->BeginQueryIndexed +#define glSamplerParameteriv __mgGLAPI->SamplerParameteriv +#define glFrontFace __mgGLAPI->FrontFace +#define glGetTexParameterIiv __mgGLAPI->GetTexParameterIiv +#define glStencilOpSeparate __mgGLAPI->StencilOpSeparate +#define glBlendFunc __mgGLAPI->BlendFunc +#define glBlitFramebuffer __mgGLAPI->BlitFramebuffer +#define glProgramUniform4fv __mgGLAPI->ProgramUniform4fv +#define glProgramUniformMatrix3x2fv __mgGLAPI->ProgramUniformMatrix3x2fv +#define glVertexAttribI4bv __mgGLAPI->VertexAttribI4bv +#define glCompressedTexSubImage3D __mgGLAPI->CompressedTexSubImage3D +#define glMultiDrawArraysIndirect __mgGLAPI->MultiDrawArraysIndirect +#define glGenTextures __mgGLAPI->GenTextures +#define glGetInteger64i_v __mgGLAPI->GetInteger64i_v +#define glSamplerParameteri __mgGLAPI->SamplerParameteri +#define glProgramUniform1ui __mgGLAPI->ProgramUniform1ui +#define glProgramUniformMatrix2fv __mgGLAPI->ProgramUniformMatrix2fv +#define glGetDoublev __mgGLAPI->GetDoublev +#define glCopyTexImage2D __mgGLAPI->CopyTexImage2D +#define glCopyTexSubImage1D __mgGLAPI->CopyTexSubImage1D +#define glVertexAttribI4ubv __mgGLAPI->VertexAttribI4ubv +#define glGetVertexAttribdv __mgGLAPI->GetVertexAttribdv +#define glProgramUniform1i __mgGLAPI->ProgramUniform1i +#define glGetTexLevelParameterfv __mgGLAPI->GetTexLevelParameterfv +#define glShaderSource __mgGLAPI->ShaderSource +#define glSamplerParameterIuiv __mgGLAPI->SamplerParameterIuiv +#define glBufferSubData __mgGLAPI->BufferSubData +#define glDetachShader __mgGLAPI->DetachShader +#define glDeleteProgram __mgGLAPI->DeleteProgram +#define glGetInteger64v __mgGLAPI->GetInteger64v +#define glVertexAttribI4i __mgGLAPI->VertexAttribI4i +#define glVertexAttribIFormat __mgGLAPI->VertexAttribIFormat +#define glDepthRangef __mgGLAPI->DepthRangef +#define glGetProgramiv __mgGLAPI->GetProgramiv +#define glBlendEquationSeparatei __mgGLAPI->BlendEquationSeparatei +#define glVertexAttrib4Nubv __mgGLAPI->VertexAttrib4Nubv +#define glUniform4uiv __mgGLAPI->Uniform4uiv +#define glUniformMatrix2fv __mgGLAPI->UniformMatrix2fv +#define glProgramUniformMatrix2x4fv __mgGLAPI->ProgramUniformMatrix2x4fv +#define glFramebufferRenderbuffer __mgGLAPI->FramebufferRenderbuffer +#define glVertexAttrib2dv __mgGLAPI->VertexAttrib2dv +#define glDrawRangeElements __mgGLAPI->DrawRangeElements +#define glVertexAttrib3dv __mgGLAPI->VertexAttrib3dv +#define glIsTexture __mgGLAPI->IsTexture +#define glBindProgramPipeline __mgGLAPI->BindProgramPipeline +#define glVertexAttribI4usv __mgGLAPI->VertexAttribI4usv +#define glBufferData __mgGLAPI->BufferData +#define glProgramUniform1d __mgGLAPI->ProgramUniform1d +#define glInvalidateBufferData __mgGLAPI->InvalidateBufferData +#define glVertexAttribDivisor __mgGLAPI->VertexAttribDivisor +#define glGetDoublei_v __mgGLAPI->GetDoublei_v +#define glColorMaski __mgGLAPI->ColorMaski +#define glGetProgramInfoLog __mgGLAPI->GetProgramInfoLog +#define glProgramUniform2d __mgGLAPI->ProgramUniform2d +#define glVertexAttrib4bv __mgGLAPI->VertexAttrib4bv +#define glDeleteTransformFeedbacks __mgGLAPI->DeleteTransformFeedbacks +#define glGetnUniformfv __mgGLAPI->GetnUniformfv +#define glScissor __mgGLAPI->Scissor +#define glScissorArrayv __mgGLAPI->ScissorArrayv +#define glUniform1fv __mgGLAPI->Uniform1fv +#define glUseProgram __mgGLAPI->UseProgram +#define glGetVertexAttribfv __mgGLAPI->GetVertexAttribfv +#define glInvalidateBufferSubData __mgGLAPI->InvalidateBufferSubData +#define glTexParameterIuiv __mgGLAPI->TexParameterIuiv +#define glTexImage2DMultisample __mgGLAPI->TexImage2DMultisample +#define glDrawTransformFeedbackStreamInstanced __mgGLAPI->DrawTransformFeedbackStreamInstanced +#define glViewportArrayv __mgGLAPI->ViewportArrayv +#define glDebugMessageControl __mgGLAPI->DebugMessageControl +#define glVertexAttribI4iv __mgGLAPI->VertexAttribI4iv +#define glGetTexParameteriv __mgGLAPI->GetTexParameteriv +#define glVertexAttribI4ui __mgGLAPI->VertexAttribI4ui +#define glClearBufferData __mgGLAPI->ClearBufferData +#define glGetIntegerv __mgGLAPI->GetIntegerv +#define glGenBuffers __mgGLAPI->GenBuffers +#define glTexStorage2D __mgGLAPI->TexStorage2D +#define glDepthRange __mgGLAPI->DepthRange +#define glGetUniformfv __mgGLAPI->GetUniformfv +#define glGetFragDataLocation __mgGLAPI->GetFragDataLocation +#define glUniformMatrix2x4dv __mgGLAPI->UniformMatrix2x4dv +#define glGetActiveUniformBlockiv __mgGLAPI->GetActiveUniformBlockiv +#define glProgramUniform3uiv __mgGLAPI->ProgramUniform3uiv +#define glGetProgramStageiv __mgGLAPI->GetProgramStageiv +#define glGetUniformiv __mgGLAPI->GetUniformiv +#define glBindFragDataLocationIndexed __mgGLAPI->BindFragDataLocationIndexed +#define glVertexAttrib4sv __mgGLAPI->VertexAttrib4sv +#define glVertexAttribI1iv __mgGLAPI->VertexAttribI1iv +#define glDrawArraysInstancedBaseInstance __mgGLAPI->DrawArraysInstancedBaseInstance +#define glActiveTexture __mgGLAPI->ActiveTexture +#define glObjectLabel __mgGLAPI->ObjectLabel +#define glInvalidateFramebuffer __mgGLAPI->InvalidateFramebuffer +#define glProgramUniform2i __mgGLAPI->ProgramUniform2i +#define glGetFragDataIndex __mgGLAPI->GetFragDataIndex +#define glGetQueryObjecti64v __mgGLAPI->GetQueryObjecti64v +#define glClearColor __mgGLAPI->ClearColor +#define glScissorIndexedv __mgGLAPI->ScissorIndexedv +#define glDrawArraysInstanced __mgGLAPI->DrawArraysInstanced +#define glProgramUniform2uiv __mgGLAPI->ProgramUniform2uiv +#define glAttachShader __mgGLAPI->AttachShader +#define glUniform4d __mgGLAPI->Uniform4d +#define glUniformMatrix4fv __mgGLAPI->UniformMatrix4fv +#define glShaderBinary __mgGLAPI->ShaderBinary +#define glUniform2fv __mgGLAPI->Uniform2fv +#define glViewportIndexedfv __mgGLAPI->ViewportIndexedfv +#define glUniform3uiv __mgGLAPI->Uniform3uiv +#define glGetProgramResourceLocationIndex __mgGLAPI->GetProgramResourceLocationIndex +#define glGenFramebuffers __mgGLAPI->GenFramebuffers +#define glGenQueries __mgGLAPI->GenQueries +#define glPointSize __mgGLAPI->PointSize +#define glDrawElementsIndirect __mgGLAPI->DrawElementsIndirect +#define glBlendEquation __mgGLAPI->BlendEquation +#define glVertexAttrib3sv __mgGLAPI->VertexAttrib3sv +#define glUniformMatrix2x3fv __mgGLAPI->UniformMatrix2x3fv +#define glClearDepthf __mgGLAPI->ClearDepthf +#define glGetVertexAttribPointerv __mgGLAPI->GetVertexAttribPointerv +#define glTexStorage2DMultisample __mgGLAPI->TexStorage2DMultisample +#define glValidateProgram __mgGLAPI->ValidateProgram +#define glBindFragDataLocation __mgGLAPI->BindFragDataLocation +#define glMultiDrawElementsIndirect __mgGLAPI->MultiDrawElementsIndirect +#define glProgramUniformMatrix4dv __mgGLAPI->ProgramUniformMatrix4dv +#define glGenProgramPipelines __mgGLAPI->GenProgramPipelines +#define glTexImage3D __mgGLAPI->TexImage3D +#define glIsTransformFeedback __mgGLAPI->IsTransformFeedback +#define glGetProgramResourceiv __mgGLAPI->GetProgramResourceiv +#define glGetActiveSubroutineName __mgGLAPI->GetActiveSubroutineName +#define glDrawElementsBaseVertex __mgGLAPI->DrawElementsBaseVertex +#define glProgramUniform4f __mgGLAPI->ProgramUniform4f +#define glVertexAttrib4s __mgGLAPI->VertexAttrib4s +#define glUniform4ui __mgGLAPI->Uniform4ui +#define glGetRenderbufferParameteriv __mgGLAPI->GetRenderbufferParameteriv +#define glPixelStoref __mgGLAPI->PixelStoref +#define glProgramBinary __mgGLAPI->ProgramBinary +#define glFramebufferTexture __mgGLAPI->FramebufferTexture +#define glGetBooleani_v __mgGLAPI->GetBooleani_v +#define glUniform1d __mgGLAPI->Uniform1d +#define glActiveShaderProgram __mgGLAPI->ActiveShaderProgram +#define glDrawElementsInstancedBaseInstance __mgGLAPI->DrawElementsInstancedBaseInstance +#define glGetBufferSubData __mgGLAPI->GetBufferSubData +#define glUniform3f __mgGLAPI->Uniform3f +#define glGetTexLevelParameteriv __mgGLAPI->GetTexLevelParameteriv +#define glVertexAttribI1i __mgGLAPI->VertexAttribI1i +#define glPauseTransformFeedback __mgGLAPI->PauseTransformFeedback +#define glClearBufferSubData __mgGLAPI->ClearBufferSubData +#define glMultiDrawElementsBaseVertex __mgGLAPI->MultiDrawElementsBaseVertex +#define glShaderStorageBlockBinding __mgGLAPI->ShaderStorageBlockBinding +#define glRenderbufferStorageMultisample __mgGLAPI->RenderbufferStorageMultisample +#define glReadBuffer __mgGLAPI->ReadBuffer +#define glTexImage1D __mgGLAPI->TexImage1D +#define glGetSamplerParameteriv __mgGLAPI->GetSamplerParameteriv +#define glCheckFramebufferStatus __mgGLAPI->CheckFramebufferStatus +#define glUniform3iv __mgGLAPI->Uniform3iv +#define glDrawTransformFeedbackStream __mgGLAPI->DrawTransformFeedbackStream +#define glGetProgramInterfaceiv __mgGLAPI->GetProgramInterfaceiv +#define glBeginQuery __mgGLAPI->BeginQuery +#define glProgramUniform4iv __mgGLAPI->ProgramUniform4iv +#define glDeleteProgramPipelines __mgGLAPI->DeleteProgramPipelines +#define glGetUniformBlockIndex __mgGLAPI->GetUniformBlockIndex +#define glProgramUniform1fv __mgGLAPI->ProgramUniform1fv +#endif // __GL_API_H__ diff --git a/src/gl_loader.c b/src/gl_loader.c index ccf6fa4..b89ab11 100644 --- a/src/gl_loader.c +++ b/src/gl_loader.c @@ -1,1721 +1,1722 @@ -/******************************************************** -* -* @file: gl_loader.c -* @note: auto-generated by glapi.py from gl.xml -* @date: 16/022023 -* -/********************************************************/ -#include"gl_loader.h" -#include"platform.h" - -mp_thread_local mg_gl_api* __mgGLAPI = 0; - -void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->CullFace = loadProc("glCullFace"); - api->FrontFace = loadProc("glFrontFace"); - api->Hint = loadProc("glHint"); - api->LineWidth = loadProc("glLineWidth"); - api->PointSize = loadProc("glPointSize"); - api->PolygonMode = loadProc("glPolygonMode"); - api->Scissor = loadProc("glScissor"); - api->TexParameterf = loadProc("glTexParameterf"); - api->TexParameterfv = loadProc("glTexParameterfv"); - api->TexParameteri = loadProc("glTexParameteri"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->TexImage1D = loadProc("glTexImage1D"); - api->TexImage2D = loadProc("glTexImage2D"); - api->DrawBuffer = loadProc("glDrawBuffer"); - api->Clear = loadProc("glClear"); - api->ClearColor = loadProc("glClearColor"); - api->ClearStencil = loadProc("glClearStencil"); - api->ClearDepth = loadProc("glClearDepth"); - api->StencilMask = loadProc("glStencilMask"); - api->ColorMask = loadProc("glColorMask"); - api->DepthMask = loadProc("glDepthMask"); - api->Disable = loadProc("glDisable"); - api->Enable = loadProc("glEnable"); - api->Finish = loadProc("glFinish"); - api->Flush = loadProc("glFlush"); - api->BlendFunc = loadProc("glBlendFunc"); - api->LogicOp = loadProc("glLogicOp"); - api->StencilFunc = loadProc("glStencilFunc"); - api->StencilOp = loadProc("glStencilOp"); - api->DepthFunc = loadProc("glDepthFunc"); - api->PixelStoref = loadProc("glPixelStoref"); - api->PixelStorei = loadProc("glPixelStorei"); - api->ReadBuffer = loadProc("glReadBuffer"); - api->ReadPixels = loadProc("glReadPixels"); - api->GetBooleanv = loadProc("glGetBooleanv"); - api->GetDoublev = loadProc("glGetDoublev"); - api->GetError = loadProc("glGetError"); - api->GetFloatv = loadProc("glGetFloatv"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetString = loadProc("glGetString"); - api->GetTexImage = loadProc("glGetTexImage"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->IsEnabled = loadProc("glIsEnabled"); - api->DepthRange = loadProc("glDepthRange"); - api->Viewport = loadProc("glViewport"); - api->DrawArrays = loadProc("glDrawArrays"); - api->DrawElements = loadProc("glDrawElements"); - api->PolygonOffset = loadProc("glPolygonOffset"); - api->CopyTexImage1D = loadProc("glCopyTexImage1D"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->TexSubImage1D = loadProc("glTexSubImage1D"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->BindTexture = loadProc("glBindTexture"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->GenTextures = loadProc("glGenTextures"); - api->IsTexture = loadProc("glIsTexture"); - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->TexImage3D = loadProc("glTexImage3D"); - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->ActiveTexture = loadProc("glActiveTexture"); - api->SampleCoverage = loadProc("glSampleCoverage"); - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); - api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->MultiDrawArrays = loadProc("glMultiDrawArrays"); - api->MultiDrawElements = loadProc("glMultiDrawElements"); - api->PointParameterf = loadProc("glPointParameterf"); - api->PointParameterfv = loadProc("glPointParameterfv"); - api->PointParameteri = loadProc("glPointParameteri"); - api->PointParameteriv = loadProc("glPointParameteriv"); - api->BlendColor = loadProc("glBlendColor"); - api->BlendEquation = loadProc("glBlendEquation"); - api->GenQueries = loadProc("glGenQueries"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->IsQuery = loadProc("glIsQuery"); - api->BeginQuery = loadProc("glBeginQuery"); - api->EndQuery = loadProc("glEndQuery"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->BindBuffer = loadProc("glBindBuffer"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->GenBuffers = loadProc("glGenBuffers"); - api->IsBuffer = loadProc("glIsBuffer"); - api->BufferData = loadProc("glBufferData"); - api->BufferSubData = loadProc("glBufferSubData"); - api->GetBufferSubData = loadProc("glGetBufferSubData"); - api->MapBuffer = loadProc("glMapBuffer"); - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->DrawBuffers = loadProc("glDrawBuffers"); - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->AttachShader = loadProc("glAttachShader"); - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->CompileShader = loadProc("glCompileShader"); - api->CreateProgram = loadProc("glCreateProgram"); - api->CreateShader = loadProc("glCreateShader"); - api->DeleteProgram = loadProc("glDeleteProgram"); - api->DeleteShader = loadProc("glDeleteShader"); - api->DetachShader = loadProc("glDetachShader"); - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->GetUniformfv = loadProc("glGetUniformfv"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->IsProgram = loadProc("glIsProgram"); - api->IsShader = loadProc("glIsShader"); - api->LinkProgram = loadProc("glLinkProgram"); - api->ShaderSource = loadProc("glShaderSource"); - api->UseProgram = loadProc("glUseProgram"); - api->Uniform1f = loadProc("glUniform1f"); - api->Uniform2f = loadProc("glUniform2f"); - api->Uniform3f = loadProc("glUniform3f"); - api->Uniform4f = loadProc("glUniform4f"); - api->Uniform1i = loadProc("glUniform1i"); - api->Uniform2i = loadProc("glUniform2i"); - api->Uniform3i = loadProc("glUniform3i"); - api->Uniform4i = loadProc("glUniform4i"); - api->Uniform1fv = loadProc("glUniform1fv"); - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Uniform1iv = loadProc("glUniform1iv"); - api->Uniform2iv = loadProc("glUniform2iv"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->ValidateProgram = loadProc("glValidateProgram"); - api->VertexAttrib1d = loadProc("glVertexAttrib1d"); - api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->VertexAttrib1s = loadProc("glVertexAttrib1s"); - api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); - api->VertexAttrib2d = loadProc("glVertexAttrib2d"); - api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->VertexAttrib2s = loadProc("glVertexAttrib2s"); - api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); - api->VertexAttrib3d = loadProc("glVertexAttrib3d"); - api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->VertexAttrib3s = loadProc("glVertexAttrib3s"); - api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); - api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); - api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); - api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); - api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); - api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); - api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); - api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); - api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); - api->VertexAttrib4d = loadProc("glVertexAttrib4d"); - api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); - api->VertexAttrib4s = loadProc("glVertexAttrib4s"); - api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); - api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); - api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); - api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->ColorMaski = loadProc("glColorMaski"); - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->Enablei = loadProc("glEnablei"); - api->Disablei = loadProc("glDisablei"); - api->IsEnabledi = loadProc("glIsEnabledi"); - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->ClampColor = loadProc("glClampColor"); - api->BeginConditionalRender = loadProc("glBeginConditionalRender"); - api->EndConditionalRender = loadProc("glEndConditionalRender"); - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->VertexAttribI1i = loadProc("glVertexAttribI1i"); - api->VertexAttribI2i = loadProc("glVertexAttribI2i"); - api->VertexAttribI3i = loadProc("glVertexAttribI3i"); - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); - api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); - api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); - api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); - api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); - api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); - api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); - api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); - api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); - api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->BindFragDataLocation = loadProc("glBindFragDataLocation"); - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->Uniform1ui = loadProc("glUniform1ui"); - api->Uniform2ui = loadProc("glUniform2ui"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->TexParameterIiv = loadProc("glTexParameterIiv"); - api->TexParameterIuiv = loadProc("glTexParameterIuiv"); - api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); - api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetStringi = loadProc("glGetStringi"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->IsVertexArray = loadProc("glIsVertexArray"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->TexBuffer = loadProc("glTexBuffer"); - api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->GetActiveUniformName = loadProc("glGetActiveUniformName"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); - api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); - api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); - api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); - api->ProvokingVertex = loadProc("glProvokingVertex"); - api->FenceSync = loadProc("glFenceSync"); - api->IsSync = loadProc("glIsSync"); - api->DeleteSync = loadProc("glDeleteSync"); - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->WaitSync = loadProc("glWaitSync"); - api->GetInteger64v = loadProc("glGetInteger64v"); - api->GetSynciv = loadProc("glGetSynciv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->FramebufferTexture = loadProc("glFramebufferTexture"); - api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); - api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->SampleMaski = loadProc("glSampleMaski"); - api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); - api->GetFragDataIndex = loadProc("glGetFragDataIndex"); - api->GenSamplers = loadProc("glGenSamplers"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->IsSampler = loadProc("glIsSampler"); - api->BindSampler = loadProc("glBindSampler"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); - api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); - api->QueryCounter = loadProc("glQueryCounter"); - api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); - api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); - api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); - api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); - api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); - api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); - api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); - api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); - api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); - api->MinSampleShading = loadProc("glMinSampleShading"); - api->BlendEquationi = loadProc("glBlendEquationi"); - api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); - api->BlendFunci = loadProc("glBlendFunci"); - api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->Uniform1d = loadProc("glUniform1d"); - api->Uniform2d = loadProc("glUniform2d"); - api->Uniform3d = loadProc("glUniform3d"); - api->Uniform4d = loadProc("glUniform4d"); - api->Uniform1dv = loadProc("glUniform1dv"); - api->Uniform2dv = loadProc("glUniform2dv"); - api->Uniform3dv = loadProc("glUniform3dv"); - api->Uniform4dv = loadProc("glUniform4dv"); - api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); - api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); - api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); - api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); - api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); - api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); - api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); - api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); - api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); - api->GetUniformdv = loadProc("glGetUniformdv"); - api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); - api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); - api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); - api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); - api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); - api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); - api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); - api->GetProgramStageiv = loadProc("glGetProgramStageiv"); - api->PatchParameteri = loadProc("glPatchParameteri"); - api->PatchParameterfv = loadProc("glPatchParameterfv"); - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); - api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); - api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); - api->EndQueryIndexed = loadProc("glEndQueryIndexed"); - api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->ShaderBinary = loadProc("glShaderBinary"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->DepthRangef = loadProc("glDepthRangef"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->ProgramUniform1d = loadProc("glProgramUniform1d"); - api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->ProgramUniform2d = loadProc("glProgramUniform2d"); - api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->ProgramUniform3d = loadProc("glProgramUniform3d"); - api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->ProgramUniform4d = loadProc("glProgramUniform4d"); - api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); - api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); - api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); - api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); - api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); - api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); - api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); - api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->VertexAttribL1d = loadProc("glVertexAttribL1d"); - api->VertexAttribL2d = loadProc("glVertexAttribL2d"); - api->VertexAttribL3d = loadProc("glVertexAttribL3d"); - api->VertexAttribL4d = loadProc("glVertexAttribL4d"); - api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); - api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); - api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); - api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); - api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); - api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); - api->ViewportArrayv = loadProc("glViewportArrayv"); - api->ViewportIndexedf = loadProc("glViewportIndexedf"); - api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); - api->ScissorArrayv = loadProc("glScissorArrayv"); - api->ScissorIndexed = loadProc("glScissorIndexed"); - api->ScissorIndexedv = loadProc("glScissorIndexedv"); - api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); - api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); - api->GetFloati_v = loadProc("glGetFloati_v"); - api->GetDoublei_v = loadProc("glGetDoublei_v"); -} - -void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->CullFace = loadProc("glCullFace"); - api->FrontFace = loadProc("glFrontFace"); - api->Hint = loadProc("glHint"); - api->LineWidth = loadProc("glLineWidth"); - api->PointSize = loadProc("glPointSize"); - api->PolygonMode = loadProc("glPolygonMode"); - api->Scissor = loadProc("glScissor"); - api->TexParameterf = loadProc("glTexParameterf"); - api->TexParameterfv = loadProc("glTexParameterfv"); - api->TexParameteri = loadProc("glTexParameteri"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->TexImage1D = loadProc("glTexImage1D"); - api->TexImage2D = loadProc("glTexImage2D"); - api->DrawBuffer = loadProc("glDrawBuffer"); - api->Clear = loadProc("glClear"); - api->ClearColor = loadProc("glClearColor"); - api->ClearStencil = loadProc("glClearStencil"); - api->ClearDepth = loadProc("glClearDepth"); - api->StencilMask = loadProc("glStencilMask"); - api->ColorMask = loadProc("glColorMask"); - api->DepthMask = loadProc("glDepthMask"); - api->Disable = loadProc("glDisable"); - api->Enable = loadProc("glEnable"); - api->Finish = loadProc("glFinish"); - api->Flush = loadProc("glFlush"); - api->BlendFunc = loadProc("glBlendFunc"); - api->LogicOp = loadProc("glLogicOp"); - api->StencilFunc = loadProc("glStencilFunc"); - api->StencilOp = loadProc("glStencilOp"); - api->DepthFunc = loadProc("glDepthFunc"); - api->PixelStoref = loadProc("glPixelStoref"); - api->PixelStorei = loadProc("glPixelStorei"); - api->ReadBuffer = loadProc("glReadBuffer"); - api->ReadPixels = loadProc("glReadPixels"); - api->GetBooleanv = loadProc("glGetBooleanv"); - api->GetDoublev = loadProc("glGetDoublev"); - api->GetError = loadProc("glGetError"); - api->GetFloatv = loadProc("glGetFloatv"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetString = loadProc("glGetString"); - api->GetTexImage = loadProc("glGetTexImage"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->IsEnabled = loadProc("glIsEnabled"); - api->DepthRange = loadProc("glDepthRange"); - api->Viewport = loadProc("glViewport"); - api->DrawArrays = loadProc("glDrawArrays"); - api->DrawElements = loadProc("glDrawElements"); - api->PolygonOffset = loadProc("glPolygonOffset"); - api->CopyTexImage1D = loadProc("glCopyTexImage1D"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->TexSubImage1D = loadProc("glTexSubImage1D"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->BindTexture = loadProc("glBindTexture"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->GenTextures = loadProc("glGenTextures"); - api->IsTexture = loadProc("glIsTexture"); - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->TexImage3D = loadProc("glTexImage3D"); - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->ActiveTexture = loadProc("glActiveTexture"); - api->SampleCoverage = loadProc("glSampleCoverage"); - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); - api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->MultiDrawArrays = loadProc("glMultiDrawArrays"); - api->MultiDrawElements = loadProc("glMultiDrawElements"); - api->PointParameterf = loadProc("glPointParameterf"); - api->PointParameterfv = loadProc("glPointParameterfv"); - api->PointParameteri = loadProc("glPointParameteri"); - api->PointParameteriv = loadProc("glPointParameteriv"); - api->BlendColor = loadProc("glBlendColor"); - api->BlendEquation = loadProc("glBlendEquation"); - api->GenQueries = loadProc("glGenQueries"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->IsQuery = loadProc("glIsQuery"); - api->BeginQuery = loadProc("glBeginQuery"); - api->EndQuery = loadProc("glEndQuery"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->BindBuffer = loadProc("glBindBuffer"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->GenBuffers = loadProc("glGenBuffers"); - api->IsBuffer = loadProc("glIsBuffer"); - api->BufferData = loadProc("glBufferData"); - api->BufferSubData = loadProc("glBufferSubData"); - api->GetBufferSubData = loadProc("glGetBufferSubData"); - api->MapBuffer = loadProc("glMapBuffer"); - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->DrawBuffers = loadProc("glDrawBuffers"); - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->AttachShader = loadProc("glAttachShader"); - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->CompileShader = loadProc("glCompileShader"); - api->CreateProgram = loadProc("glCreateProgram"); - api->CreateShader = loadProc("glCreateShader"); - api->DeleteProgram = loadProc("glDeleteProgram"); - api->DeleteShader = loadProc("glDeleteShader"); - api->DetachShader = loadProc("glDetachShader"); - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->GetUniformfv = loadProc("glGetUniformfv"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->IsProgram = loadProc("glIsProgram"); - api->IsShader = loadProc("glIsShader"); - api->LinkProgram = loadProc("glLinkProgram"); - api->ShaderSource = loadProc("glShaderSource"); - api->UseProgram = loadProc("glUseProgram"); - api->Uniform1f = loadProc("glUniform1f"); - api->Uniform2f = loadProc("glUniform2f"); - api->Uniform3f = loadProc("glUniform3f"); - api->Uniform4f = loadProc("glUniform4f"); - api->Uniform1i = loadProc("glUniform1i"); - api->Uniform2i = loadProc("glUniform2i"); - api->Uniform3i = loadProc("glUniform3i"); - api->Uniform4i = loadProc("glUniform4i"); - api->Uniform1fv = loadProc("glUniform1fv"); - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Uniform1iv = loadProc("glUniform1iv"); - api->Uniform2iv = loadProc("glUniform2iv"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->ValidateProgram = loadProc("glValidateProgram"); - api->VertexAttrib1d = loadProc("glVertexAttrib1d"); - api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->VertexAttrib1s = loadProc("glVertexAttrib1s"); - api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); - api->VertexAttrib2d = loadProc("glVertexAttrib2d"); - api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->VertexAttrib2s = loadProc("glVertexAttrib2s"); - api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); - api->VertexAttrib3d = loadProc("glVertexAttrib3d"); - api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->VertexAttrib3s = loadProc("glVertexAttrib3s"); - api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); - api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); - api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); - api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); - api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); - api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); - api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); - api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); - api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); - api->VertexAttrib4d = loadProc("glVertexAttrib4d"); - api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); - api->VertexAttrib4s = loadProc("glVertexAttrib4s"); - api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); - api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); - api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); - api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->ColorMaski = loadProc("glColorMaski"); - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->Enablei = loadProc("glEnablei"); - api->Disablei = loadProc("glDisablei"); - api->IsEnabledi = loadProc("glIsEnabledi"); - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->ClampColor = loadProc("glClampColor"); - api->BeginConditionalRender = loadProc("glBeginConditionalRender"); - api->EndConditionalRender = loadProc("glEndConditionalRender"); - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->VertexAttribI1i = loadProc("glVertexAttribI1i"); - api->VertexAttribI2i = loadProc("glVertexAttribI2i"); - api->VertexAttribI3i = loadProc("glVertexAttribI3i"); - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); - api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); - api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); - api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); - api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); - api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); - api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); - api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); - api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); - api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->BindFragDataLocation = loadProc("glBindFragDataLocation"); - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->Uniform1ui = loadProc("glUniform1ui"); - api->Uniform2ui = loadProc("glUniform2ui"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->TexParameterIiv = loadProc("glTexParameterIiv"); - api->TexParameterIuiv = loadProc("glTexParameterIuiv"); - api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); - api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetStringi = loadProc("glGetStringi"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->IsVertexArray = loadProc("glIsVertexArray"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->TexBuffer = loadProc("glTexBuffer"); - api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->GetActiveUniformName = loadProc("glGetActiveUniformName"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); - api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); - api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); - api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); - api->ProvokingVertex = loadProc("glProvokingVertex"); - api->FenceSync = loadProc("glFenceSync"); - api->IsSync = loadProc("glIsSync"); - api->DeleteSync = loadProc("glDeleteSync"); - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->WaitSync = loadProc("glWaitSync"); - api->GetInteger64v = loadProc("glGetInteger64v"); - api->GetSynciv = loadProc("glGetSynciv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->FramebufferTexture = loadProc("glFramebufferTexture"); - api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); - api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->SampleMaski = loadProc("glSampleMaski"); - api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); - api->GetFragDataIndex = loadProc("glGetFragDataIndex"); - api->GenSamplers = loadProc("glGenSamplers"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->IsSampler = loadProc("glIsSampler"); - api->BindSampler = loadProc("glBindSampler"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); - api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); - api->QueryCounter = loadProc("glQueryCounter"); - api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); - api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); - api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); - api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); - api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); - api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); - api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); - api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); - api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); - api->MinSampleShading = loadProc("glMinSampleShading"); - api->BlendEquationi = loadProc("glBlendEquationi"); - api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); - api->BlendFunci = loadProc("glBlendFunci"); - api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->Uniform1d = loadProc("glUniform1d"); - api->Uniform2d = loadProc("glUniform2d"); - api->Uniform3d = loadProc("glUniform3d"); - api->Uniform4d = loadProc("glUniform4d"); - api->Uniform1dv = loadProc("glUniform1dv"); - api->Uniform2dv = loadProc("glUniform2dv"); - api->Uniform3dv = loadProc("glUniform3dv"); - api->Uniform4dv = loadProc("glUniform4dv"); - api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); - api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); - api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); - api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); - api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); - api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); - api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); - api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); - api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); - api->GetUniformdv = loadProc("glGetUniformdv"); - api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); - api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); - api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); - api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); - api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); - api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); - api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); - api->GetProgramStageiv = loadProc("glGetProgramStageiv"); - api->PatchParameteri = loadProc("glPatchParameteri"); - api->PatchParameterfv = loadProc("glPatchParameterfv"); - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); - api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); - api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); - api->EndQueryIndexed = loadProc("glEndQueryIndexed"); - api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->ShaderBinary = loadProc("glShaderBinary"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->DepthRangef = loadProc("glDepthRangef"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->ProgramUniform1d = loadProc("glProgramUniform1d"); - api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->ProgramUniform2d = loadProc("glProgramUniform2d"); - api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->ProgramUniform3d = loadProc("glProgramUniform3d"); - api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->ProgramUniform4d = loadProc("glProgramUniform4d"); - api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); - api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); - api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); - api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); - api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); - api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); - api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); - api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->VertexAttribL1d = loadProc("glVertexAttribL1d"); - api->VertexAttribL2d = loadProc("glVertexAttribL2d"); - api->VertexAttribL3d = loadProc("glVertexAttribL3d"); - api->VertexAttribL4d = loadProc("glVertexAttribL4d"); - api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); - api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); - api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); - api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); - api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); - api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); - api->ViewportArrayv = loadProc("glViewportArrayv"); - api->ViewportIndexedf = loadProc("glViewportIndexedf"); - api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); - api->ScissorArrayv = loadProc("glScissorArrayv"); - api->ScissorIndexed = loadProc("glScissorIndexed"); - api->ScissorIndexedv = loadProc("glScissorIndexedv"); - api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); - api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); - api->GetFloati_v = loadProc("glGetFloati_v"); - api->GetDoublei_v = loadProc("glGetDoublei_v"); - api->DrawArraysInstancedBaseInstance = loadProc("glDrawArraysInstancedBaseInstance"); - api->DrawElementsInstancedBaseInstance = loadProc("glDrawElementsInstancedBaseInstance"); - api->DrawElementsInstancedBaseVertexBaseInstance = loadProc("glDrawElementsInstancedBaseVertexBaseInstance"); - api->GetInternalformativ = loadProc("glGetInternalformativ"); - api->GetActiveAtomicCounterBufferiv = loadProc("glGetActiveAtomicCounterBufferiv"); - api->BindImageTexture = loadProc("glBindImageTexture"); - api->MemoryBarrier = loadProc("glMemoryBarrier"); - api->TexStorage1D = loadProc("glTexStorage1D"); - api->TexStorage2D = loadProc("glTexStorage2D"); - api->TexStorage3D = loadProc("glTexStorage3D"); - api->DrawTransformFeedbackInstanced = loadProc("glDrawTransformFeedbackInstanced"); - api->DrawTransformFeedbackStreamInstanced = loadProc("glDrawTransformFeedbackStreamInstanced"); - api->ClearBufferData = loadProc("glClearBufferData"); - api->ClearBufferSubData = loadProc("glClearBufferSubData"); - api->DispatchCompute = loadProc("glDispatchCompute"); - api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); - api->CopyImageSubData = loadProc("glCopyImageSubData"); - api->FramebufferParameteri = loadProc("glFramebufferParameteri"); - api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); - api->GetInternalformati64v = loadProc("glGetInternalformati64v"); - api->InvalidateTexSubImage = loadProc("glInvalidateTexSubImage"); - api->InvalidateTexImage = loadProc("glInvalidateTexImage"); - api->InvalidateBufferSubData = loadProc("glInvalidateBufferSubData"); - api->InvalidateBufferData = loadProc("glInvalidateBufferData"); - api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); - api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); - api->MultiDrawArraysIndirect = loadProc("glMultiDrawArraysIndirect"); - api->MultiDrawElementsIndirect = loadProc("glMultiDrawElementsIndirect"); - api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); - api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); - api->GetProgramResourceName = loadProc("glGetProgramResourceName"); - api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); - api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); - api->GetProgramResourceLocationIndex = loadProc("glGetProgramResourceLocationIndex"); - api->ShaderStorageBlockBinding = loadProc("glShaderStorageBlockBinding"); - api->TexBufferRange = loadProc("glTexBufferRange"); - api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); - api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); - api->TextureView = loadProc("glTextureView"); - api->BindVertexBuffer = loadProc("glBindVertexBuffer"); - api->VertexAttribFormat = loadProc("glVertexAttribFormat"); - api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); - api->VertexAttribLFormat = loadProc("glVertexAttribLFormat"); - api->VertexAttribBinding = loadProc("glVertexAttribBinding"); - api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); - api->DebugMessageControl = loadProc("glDebugMessageControl"); - api->DebugMessageInsert = loadProc("glDebugMessageInsert"); - api->DebugMessageCallback = loadProc("glDebugMessageCallback"); - api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); - api->PushDebugGroup = loadProc("glPushDebugGroup"); - api->PopDebugGroup = loadProc("glPopDebugGroup"); - api->ObjectLabel = loadProc("glObjectLabel"); - api->GetObjectLabel = loadProc("glGetObjectLabel"); - api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); - api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); - api->GetPointerv = loadProc("glGetPointerv"); -} - -void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->ActiveTexture = loadProc("glActiveTexture"); - api->AttachShader = loadProc("glAttachShader"); - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->BindBuffer = loadProc("glBindBuffer"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->BindTexture = loadProc("glBindTexture"); - api->BlendColor = loadProc("glBlendColor"); - api->BlendEquation = loadProc("glBlendEquation"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->BlendFunc = loadProc("glBlendFunc"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->BufferData = loadProc("glBufferData"); - api->BufferSubData = loadProc("glBufferSubData"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->Clear = loadProc("glClear"); - api->ClearColor = loadProc("glClearColor"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->ClearStencil = loadProc("glClearStencil"); - api->ColorMask = loadProc("glColorMask"); - api->CompileShader = loadProc("glCompileShader"); - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->CreateProgram = loadProc("glCreateProgram"); - api->CreateShader = loadProc("glCreateShader"); - api->CullFace = loadProc("glCullFace"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->DeleteProgram = loadProc("glDeleteProgram"); - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->DeleteShader = loadProc("glDeleteShader"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->DepthFunc = loadProc("glDepthFunc"); - api->DepthMask = loadProc("glDepthMask"); - api->DepthRangef = loadProc("glDepthRangef"); - api->DetachShader = loadProc("glDetachShader"); - api->Disable = loadProc("glDisable"); - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->DrawArrays = loadProc("glDrawArrays"); - api->DrawElements = loadProc("glDrawElements"); - api->Enable = loadProc("glEnable"); - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->Finish = loadProc("glFinish"); - api->Flush = loadProc("glFlush"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->FrontFace = loadProc("glFrontFace"); - api->GenBuffers = loadProc("glGenBuffers"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->GenTextures = loadProc("glGenTextures"); - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetBooleanv = loadProc("glGetBooleanv"); - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->GetError = loadProc("glGetError"); - api->GetFloatv = loadProc("glGetFloatv"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->GetString = loadProc("glGetString"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->GetUniformfv = loadProc("glGetUniformfv"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->Hint = loadProc("glHint"); - api->IsBuffer = loadProc("glIsBuffer"); - api->IsEnabled = loadProc("glIsEnabled"); - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->IsProgram = loadProc("glIsProgram"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->IsShader = loadProc("glIsShader"); - api->IsTexture = loadProc("glIsTexture"); - api->LineWidth = loadProc("glLineWidth"); - api->LinkProgram = loadProc("glLinkProgram"); - api->PixelStorei = loadProc("glPixelStorei"); - api->PolygonOffset = loadProc("glPolygonOffset"); - api->ReadPixels = loadProc("glReadPixels"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->SampleCoverage = loadProc("glSampleCoverage"); - api->Scissor = loadProc("glScissor"); - api->ShaderBinary = loadProc("glShaderBinary"); - api->ShaderSource = loadProc("glShaderSource"); - api->StencilFunc = loadProc("glStencilFunc"); - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->StencilMask = loadProc("glStencilMask"); - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->StencilOp = loadProc("glStencilOp"); - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->TexImage2D = loadProc("glTexImage2D"); - api->TexParameterf = loadProc("glTexParameterf"); - api->TexParameterfv = loadProc("glTexParameterfv"); - api->TexParameteri = loadProc("glTexParameteri"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->Uniform1f = loadProc("glUniform1f"); - api->Uniform1fv = loadProc("glUniform1fv"); - api->Uniform1i = loadProc("glUniform1i"); - api->Uniform1iv = loadProc("glUniform1iv"); - api->Uniform2f = loadProc("glUniform2f"); - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform2i = loadProc("glUniform2i"); - api->Uniform2iv = loadProc("glUniform2iv"); - api->Uniform3f = loadProc("glUniform3f"); - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform3i = loadProc("glUniform3i"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4f = loadProc("glUniform4f"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Uniform4i = loadProc("glUniform4i"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->UseProgram = loadProc("glUseProgram"); - api->ValidateProgram = loadProc("glValidateProgram"); - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->Viewport = loadProc("glViewport"); - api->ReadBuffer = loadProc("glReadBuffer"); - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->TexImage3D = loadProc("glTexImage3D"); - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->GenQueries = loadProc("glGenQueries"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->IsQuery = loadProc("glIsQuery"); - api->BeginQuery = loadProc("glBeginQuery"); - api->EndQuery = loadProc("glEndQuery"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->DrawBuffers = loadProc("glDrawBuffers"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->IsVertexArray = loadProc("glIsVertexArray"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->Uniform1ui = loadProc("glUniform1ui"); - api->Uniform2ui = loadProc("glUniform2ui"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetStringi = loadProc("glGetStringi"); - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->FenceSync = loadProc("glFenceSync"); - api->IsSync = loadProc("glIsSync"); - api->DeleteSync = loadProc("glDeleteSync"); - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->WaitSync = loadProc("glWaitSync"); - api->GetInteger64v = loadProc("glGetInteger64v"); - api->GetSynciv = loadProc("glGetSynciv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->GenSamplers = loadProc("glGenSamplers"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->IsSampler = loadProc("glIsSampler"); - api->BindSampler = loadProc("glBindSampler"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); - api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); - api->TexStorage2D = loadProc("glTexStorage2D"); - api->TexStorage3D = loadProc("glTexStorage3D"); - api->GetInternalformativ = loadProc("glGetInternalformativ"); - api->DispatchCompute = loadProc("glDispatchCompute"); - api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->FramebufferParameteri = loadProc("glFramebufferParameteri"); - api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); - api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); - api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); - api->GetProgramResourceName = loadProc("glGetProgramResourceName"); - api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); - api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->BindImageTexture = loadProc("glBindImageTexture"); - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->MemoryBarrier = loadProc("glMemoryBarrier"); - api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); - api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->SampleMaski = loadProc("glSampleMaski"); - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->BindVertexBuffer = loadProc("glBindVertexBuffer"); - api->VertexAttribFormat = loadProc("glVertexAttribFormat"); - api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); - api->VertexAttribBinding = loadProc("glVertexAttribBinding"); - api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); -} - -void mg_gl_load_gles32(mg_gl_api* api, mg_gl_load_proc loadProc) -{ - api->ActiveTexture = loadProc("glActiveTexture"); - api->AttachShader = loadProc("glAttachShader"); - api->BindAttribLocation = loadProc("glBindAttribLocation"); - api->BindBuffer = loadProc("glBindBuffer"); - api->BindFramebuffer = loadProc("glBindFramebuffer"); - api->BindRenderbuffer = loadProc("glBindRenderbuffer"); - api->BindTexture = loadProc("glBindTexture"); - api->BlendColor = loadProc("glBlendColor"); - api->BlendEquation = loadProc("glBlendEquation"); - api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); - api->BlendFunc = loadProc("glBlendFunc"); - api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); - api->BufferData = loadProc("glBufferData"); - api->BufferSubData = loadProc("glBufferSubData"); - api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); - api->Clear = loadProc("glClear"); - api->ClearColor = loadProc("glClearColor"); - api->ClearDepthf = loadProc("glClearDepthf"); - api->ClearStencil = loadProc("glClearStencil"); - api->ColorMask = loadProc("glColorMask"); - api->CompileShader = loadProc("glCompileShader"); - api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); - api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); - api->CopyTexImage2D = loadProc("glCopyTexImage2D"); - api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); - api->CreateProgram = loadProc("glCreateProgram"); - api->CreateShader = loadProc("glCreateShader"); - api->CullFace = loadProc("glCullFace"); - api->DeleteBuffers = loadProc("glDeleteBuffers"); - api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); - api->DeleteProgram = loadProc("glDeleteProgram"); - api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); - api->DeleteShader = loadProc("glDeleteShader"); - api->DeleteTextures = loadProc("glDeleteTextures"); - api->DepthFunc = loadProc("glDepthFunc"); - api->DepthMask = loadProc("glDepthMask"); - api->DepthRangef = loadProc("glDepthRangef"); - api->DetachShader = loadProc("glDetachShader"); - api->Disable = loadProc("glDisable"); - api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); - api->DrawArrays = loadProc("glDrawArrays"); - api->DrawElements = loadProc("glDrawElements"); - api->Enable = loadProc("glEnable"); - api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); - api->Finish = loadProc("glFinish"); - api->Flush = loadProc("glFlush"); - api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); - api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); - api->FrontFace = loadProc("glFrontFace"); - api->GenBuffers = loadProc("glGenBuffers"); - api->GenerateMipmap = loadProc("glGenerateMipmap"); - api->GenFramebuffers = loadProc("glGenFramebuffers"); - api->GenRenderbuffers = loadProc("glGenRenderbuffers"); - api->GenTextures = loadProc("glGenTextures"); - api->GetActiveAttrib = loadProc("glGetActiveAttrib"); - api->GetActiveUniform = loadProc("glGetActiveUniform"); - api->GetAttachedShaders = loadProc("glGetAttachedShaders"); - api->GetAttribLocation = loadProc("glGetAttribLocation"); - api->GetBooleanv = loadProc("glGetBooleanv"); - api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); - api->GetError = loadProc("glGetError"); - api->GetFloatv = loadProc("glGetFloatv"); - api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); - api->GetIntegerv = loadProc("glGetIntegerv"); - api->GetProgramiv = loadProc("glGetProgramiv"); - api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); - api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); - api->GetShaderiv = loadProc("glGetShaderiv"); - api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); - api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); - api->GetShaderSource = loadProc("glGetShaderSource"); - api->GetString = loadProc("glGetString"); - api->GetTexParameterfv = loadProc("glGetTexParameterfv"); - api->GetTexParameteriv = loadProc("glGetTexParameteriv"); - api->GetUniformfv = loadProc("glGetUniformfv"); - api->GetUniformiv = loadProc("glGetUniformiv"); - api->GetUniformLocation = loadProc("glGetUniformLocation"); - api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); - api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); - api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); - api->Hint = loadProc("glHint"); - api->IsBuffer = loadProc("glIsBuffer"); - api->IsEnabled = loadProc("glIsEnabled"); - api->IsFramebuffer = loadProc("glIsFramebuffer"); - api->IsProgram = loadProc("glIsProgram"); - api->IsRenderbuffer = loadProc("glIsRenderbuffer"); - api->IsShader = loadProc("glIsShader"); - api->IsTexture = loadProc("glIsTexture"); - api->LineWidth = loadProc("glLineWidth"); - api->LinkProgram = loadProc("glLinkProgram"); - api->PixelStorei = loadProc("glPixelStorei"); - api->PolygonOffset = loadProc("glPolygonOffset"); - api->ReadPixels = loadProc("glReadPixels"); - api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); - api->RenderbufferStorage = loadProc("glRenderbufferStorage"); - api->SampleCoverage = loadProc("glSampleCoverage"); - api->Scissor = loadProc("glScissor"); - api->ShaderBinary = loadProc("glShaderBinary"); - api->ShaderSource = loadProc("glShaderSource"); - api->StencilFunc = loadProc("glStencilFunc"); - api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); - api->StencilMask = loadProc("glStencilMask"); - api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); - api->StencilOp = loadProc("glStencilOp"); - api->StencilOpSeparate = loadProc("glStencilOpSeparate"); - api->TexImage2D = loadProc("glTexImage2D"); - api->TexParameterf = loadProc("glTexParameterf"); - api->TexParameterfv = loadProc("glTexParameterfv"); - api->TexParameteri = loadProc("glTexParameteri"); - api->TexParameteriv = loadProc("glTexParameteriv"); - api->TexSubImage2D = loadProc("glTexSubImage2D"); - api->Uniform1f = loadProc("glUniform1f"); - api->Uniform1fv = loadProc("glUniform1fv"); - api->Uniform1i = loadProc("glUniform1i"); - api->Uniform1iv = loadProc("glUniform1iv"); - api->Uniform2f = loadProc("glUniform2f"); - api->Uniform2fv = loadProc("glUniform2fv"); - api->Uniform2i = loadProc("glUniform2i"); - api->Uniform2iv = loadProc("glUniform2iv"); - api->Uniform3f = loadProc("glUniform3f"); - api->Uniform3fv = loadProc("glUniform3fv"); - api->Uniform3i = loadProc("glUniform3i"); - api->Uniform3iv = loadProc("glUniform3iv"); - api->Uniform4f = loadProc("glUniform4f"); - api->Uniform4fv = loadProc("glUniform4fv"); - api->Uniform4i = loadProc("glUniform4i"); - api->Uniform4iv = loadProc("glUniform4iv"); - api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); - api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); - api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); - api->UseProgram = loadProc("glUseProgram"); - api->ValidateProgram = loadProc("glValidateProgram"); - api->VertexAttrib1f = loadProc("glVertexAttrib1f"); - api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); - api->VertexAttrib2f = loadProc("glVertexAttrib2f"); - api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); - api->VertexAttrib3f = loadProc("glVertexAttrib3f"); - api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); - api->VertexAttrib4f = loadProc("glVertexAttrib4f"); - api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); - api->VertexAttribPointer = loadProc("glVertexAttribPointer"); - api->Viewport = loadProc("glViewport"); - api->ReadBuffer = loadProc("glReadBuffer"); - api->DrawRangeElements = loadProc("glDrawRangeElements"); - api->TexImage3D = loadProc("glTexImage3D"); - api->TexSubImage3D = loadProc("glTexSubImage3D"); - api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); - api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); - api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); - api->GenQueries = loadProc("glGenQueries"); - api->DeleteQueries = loadProc("glDeleteQueries"); - api->IsQuery = loadProc("glIsQuery"); - api->BeginQuery = loadProc("glBeginQuery"); - api->EndQuery = loadProc("glEndQuery"); - api->GetQueryiv = loadProc("glGetQueryiv"); - api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); - api->UnmapBuffer = loadProc("glUnmapBuffer"); - api->GetBufferPointerv = loadProc("glGetBufferPointerv"); - api->DrawBuffers = loadProc("glDrawBuffers"); - api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); - api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); - api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); - api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); - api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); - api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); - api->BlitFramebuffer = loadProc("glBlitFramebuffer"); - api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); - api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); - api->MapBufferRange = loadProc("glMapBufferRange"); - api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); - api->BindVertexArray = loadProc("glBindVertexArray"); - api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); - api->GenVertexArrays = loadProc("glGenVertexArrays"); - api->IsVertexArray = loadProc("glIsVertexArray"); - api->GetIntegeri_v = loadProc("glGetIntegeri_v"); - api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); - api->EndTransformFeedback = loadProc("glEndTransformFeedback"); - api->BindBufferRange = loadProc("glBindBufferRange"); - api->BindBufferBase = loadProc("glBindBufferBase"); - api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); - api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); - api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); - api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); - api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); - api->VertexAttribI4i = loadProc("glVertexAttribI4i"); - api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); - api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); - api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); - api->GetUniformuiv = loadProc("glGetUniformuiv"); - api->GetFragDataLocation = loadProc("glGetFragDataLocation"); - api->Uniform1ui = loadProc("glUniform1ui"); - api->Uniform2ui = loadProc("glUniform2ui"); - api->Uniform3ui = loadProc("glUniform3ui"); - api->Uniform4ui = loadProc("glUniform4ui"); - api->Uniform1uiv = loadProc("glUniform1uiv"); - api->Uniform2uiv = loadProc("glUniform2uiv"); - api->Uniform3uiv = loadProc("glUniform3uiv"); - api->Uniform4uiv = loadProc("glUniform4uiv"); - api->ClearBufferiv = loadProc("glClearBufferiv"); - api->ClearBufferuiv = loadProc("glClearBufferuiv"); - api->ClearBufferfv = loadProc("glClearBufferfv"); - api->ClearBufferfi = loadProc("glClearBufferfi"); - api->GetStringi = loadProc("glGetStringi"); - api->CopyBufferSubData = loadProc("glCopyBufferSubData"); - api->GetUniformIndices = loadProc("glGetUniformIndices"); - api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); - api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); - api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); - api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); - api->UniformBlockBinding = loadProc("glUniformBlockBinding"); - api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); - api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); - api->FenceSync = loadProc("glFenceSync"); - api->IsSync = loadProc("glIsSync"); - api->DeleteSync = loadProc("glDeleteSync"); - api->ClientWaitSync = loadProc("glClientWaitSync"); - api->WaitSync = loadProc("glWaitSync"); - api->GetInteger64v = loadProc("glGetInteger64v"); - api->GetSynciv = loadProc("glGetSynciv"); - api->GetInteger64i_v = loadProc("glGetInteger64i_v"); - api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); - api->GenSamplers = loadProc("glGenSamplers"); - api->DeleteSamplers = loadProc("glDeleteSamplers"); - api->IsSampler = loadProc("glIsSampler"); - api->BindSampler = loadProc("glBindSampler"); - api->SamplerParameteri = loadProc("glSamplerParameteri"); - api->SamplerParameteriv = loadProc("glSamplerParameteriv"); - api->SamplerParameterf = loadProc("glSamplerParameterf"); - api->SamplerParameterfv = loadProc("glSamplerParameterfv"); - api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); - api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); - api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); - api->BindTransformFeedback = loadProc("glBindTransformFeedback"); - api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); - api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); - api->IsTransformFeedback = loadProc("glIsTransformFeedback"); - api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); - api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); - api->GetProgramBinary = loadProc("glGetProgramBinary"); - api->ProgramBinary = loadProc("glProgramBinary"); - api->ProgramParameteri = loadProc("glProgramParameteri"); - api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); - api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); - api->TexStorage2D = loadProc("glTexStorage2D"); - api->TexStorage3D = loadProc("glTexStorage3D"); - api->GetInternalformativ = loadProc("glGetInternalformativ"); - api->DispatchCompute = loadProc("glDispatchCompute"); - api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); - api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); - api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); - api->FramebufferParameteri = loadProc("glFramebufferParameteri"); - api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); - api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); - api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); - api->GetProgramResourceName = loadProc("glGetProgramResourceName"); - api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); - api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); - api->UseProgramStages = loadProc("glUseProgramStages"); - api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); - api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); - api->BindProgramPipeline = loadProc("glBindProgramPipeline"); - api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); - api->GenProgramPipelines = loadProc("glGenProgramPipelines"); - api->IsProgramPipeline = loadProc("glIsProgramPipeline"); - api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); - api->ProgramUniform1i = loadProc("glProgramUniform1i"); - api->ProgramUniform2i = loadProc("glProgramUniform2i"); - api->ProgramUniform3i = loadProc("glProgramUniform3i"); - api->ProgramUniform4i = loadProc("glProgramUniform4i"); - api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); - api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); - api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); - api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); - api->ProgramUniform1f = loadProc("glProgramUniform1f"); - api->ProgramUniform2f = loadProc("glProgramUniform2f"); - api->ProgramUniform3f = loadProc("glProgramUniform3f"); - api->ProgramUniform4f = loadProc("glProgramUniform4f"); - api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); - api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); - api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); - api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); - api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); - api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); - api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); - api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); - api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); - api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); - api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); - api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); - api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); - api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); - api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); - api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); - api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); - api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); - api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); - api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); - api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); - api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); - api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); - api->BindImageTexture = loadProc("glBindImageTexture"); - api->GetBooleani_v = loadProc("glGetBooleani_v"); - api->MemoryBarrier = loadProc("glMemoryBarrier"); - api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); - api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); - api->GetMultisamplefv = loadProc("glGetMultisamplefv"); - api->SampleMaski = loadProc("glSampleMaski"); - api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); - api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); - api->BindVertexBuffer = loadProc("glBindVertexBuffer"); - api->VertexAttribFormat = loadProc("glVertexAttribFormat"); - api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); - api->VertexAttribBinding = loadProc("glVertexAttribBinding"); - api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); - api->BlendBarrier = loadProc("glBlendBarrier"); - api->CopyImageSubData = loadProc("glCopyImageSubData"); - api->DebugMessageControl = loadProc("glDebugMessageControl"); - api->DebugMessageInsert = loadProc("glDebugMessageInsert"); - api->DebugMessageCallback = loadProc("glDebugMessageCallback"); - api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); - api->PushDebugGroup = loadProc("glPushDebugGroup"); - api->PopDebugGroup = loadProc("glPopDebugGroup"); - api->ObjectLabel = loadProc("glObjectLabel"); - api->GetObjectLabel = loadProc("glGetObjectLabel"); - api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); - api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); - api->GetPointerv = loadProc("glGetPointerv"); - api->Enablei = loadProc("glEnablei"); - api->Disablei = loadProc("glDisablei"); - api->BlendEquationi = loadProc("glBlendEquationi"); - api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); - api->BlendFunci = loadProc("glBlendFunci"); - api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); - api->ColorMaski = loadProc("glColorMaski"); - api->IsEnabledi = loadProc("glIsEnabledi"); - api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); - api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); - api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); - api->FramebufferTexture = loadProc("glFramebufferTexture"); - api->PrimitiveBoundingBox = loadProc("glPrimitiveBoundingBox"); - api->GetGraphicsResetStatus = loadProc("glGetGraphicsResetStatus"); - api->ReadnPixels = loadProc("glReadnPixels"); - api->GetnUniformfv = loadProc("glGetnUniformfv"); - api->GetnUniformiv = loadProc("glGetnUniformiv"); - api->GetnUniformuiv = loadProc("glGetnUniformuiv"); - api->MinSampleShading = loadProc("glMinSampleShading"); - api->PatchParameteri = loadProc("glPatchParameteri"); - api->TexParameterIiv = loadProc("glTexParameterIiv"); - api->TexParameterIuiv = loadProc("glTexParameterIuiv"); - api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); - api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); - api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); - api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); - api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); - api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); - api->TexBuffer = loadProc("glTexBuffer"); - api->TexBufferRange = loadProc("glTexBufferRange"); - api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); -} - -void mg_gl_select_api(mg_gl_api* api){ __mgGLAPI = api; } +/******************************************************** +* +* @file: gl_loader.c +* @note: auto-generated by glapi.py from gl.xml +* @date: 20/022023 +* +*********************************************************/ +#include"gl_loader.h" +#include"platform.h" + +mp_thread_local mg_gl_api* __mgGLAPI = 0; + +void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->CullFace = loadProc("glCullFace"); + api->FrontFace = loadProc("glFrontFace"); + api->Hint = loadProc("glHint"); + api->LineWidth = loadProc("glLineWidth"); + api->PointSize = loadProc("glPointSize"); + api->PolygonMode = loadProc("glPolygonMode"); + api->Scissor = loadProc("glScissor"); + api->TexParameterf = loadProc("glTexParameterf"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->TexParameteri = loadProc("glTexParameteri"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->TexImage1D = loadProc("glTexImage1D"); + api->TexImage2D = loadProc("glTexImage2D"); + api->DrawBuffer = loadProc("glDrawBuffer"); + api->Clear = loadProc("glClear"); + api->ClearColor = loadProc("glClearColor"); + api->ClearStencil = loadProc("glClearStencil"); + api->ClearDepth = loadProc("glClearDepth"); + api->StencilMask = loadProc("glStencilMask"); + api->ColorMask = loadProc("glColorMask"); + api->DepthMask = loadProc("glDepthMask"); + api->Disable = loadProc("glDisable"); + api->Enable = loadProc("glEnable"); + api->Finish = loadProc("glFinish"); + api->Flush = loadProc("glFlush"); + api->BlendFunc = loadProc("glBlendFunc"); + api->LogicOp = loadProc("glLogicOp"); + api->StencilFunc = loadProc("glStencilFunc"); + api->StencilOp = loadProc("glStencilOp"); + api->DepthFunc = loadProc("glDepthFunc"); + api->PixelStoref = loadProc("glPixelStoref"); + api->PixelStorei = loadProc("glPixelStorei"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->ReadPixels = loadProc("glReadPixels"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->GetDoublev = loadProc("glGetDoublev"); + api->GetError = loadProc("glGetError"); + api->GetFloatv = loadProc("glGetFloatv"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetString = loadProc("glGetString"); + api->GetTexImage = loadProc("glGetTexImage"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->IsEnabled = loadProc("glIsEnabled"); + api->DepthRange = loadProc("glDepthRange"); + api->Viewport = loadProc("glViewport"); + api->DrawArrays = loadProc("glDrawArrays"); + api->DrawElements = loadProc("glDrawElements"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->CopyTexImage1D = loadProc("glCopyTexImage1D"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->TexSubImage1D = loadProc("glTexSubImage1D"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->BindTexture = loadProc("glBindTexture"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->GenTextures = loadProc("glGenTextures"); + api->IsTexture = loadProc("glIsTexture"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->TexImage3D = loadProc("glTexImage3D"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); + api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->MultiDrawArrays = loadProc("glMultiDrawArrays"); + api->MultiDrawElements = loadProc("glMultiDrawElements"); + api->PointParameterf = loadProc("glPointParameterf"); + api->PointParameterfv = loadProc("glPointParameterfv"); + api->PointParameteri = loadProc("glPointParameteri"); + api->PointParameteriv = loadProc("glPointParameteriv"); + api->BlendColor = loadProc("glBlendColor"); + api->BlendEquation = loadProc("glBlendEquation"); + api->GenQueries = loadProc("glGenQueries"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->IsQuery = loadProc("glIsQuery"); + api->BeginQuery = loadProc("glBeginQuery"); + api->EndQuery = loadProc("glEndQuery"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->BindBuffer = loadProc("glBindBuffer"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GenBuffers = loadProc("glGenBuffers"); + api->IsBuffer = loadProc("glIsBuffer"); + api->BufferData = loadProc("glBufferData"); + api->BufferSubData = loadProc("glBufferSubData"); + api->GetBufferSubData = loadProc("glGetBufferSubData"); + api->MapBuffer = loadProc("glMapBuffer"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->AttachShader = loadProc("glAttachShader"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->CompileShader = loadProc("glCompileShader"); + api->CreateProgram = loadProc("glCreateProgram"); + api->CreateShader = loadProc("glCreateShader"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->DeleteShader = loadProc("glDeleteShader"); + api->DetachShader = loadProc("glDetachShader"); + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->IsProgram = loadProc("glIsProgram"); + api->IsShader = loadProc("glIsShader"); + api->LinkProgram = loadProc("glLinkProgram"); + api->ShaderSource = loadProc("glShaderSource"); + api->UseProgram = loadProc("glUseProgram"); + api->Uniform1f = loadProc("glUniform1f"); + api->Uniform2f = loadProc("glUniform2f"); + api->Uniform3f = loadProc("glUniform3f"); + api->Uniform4f = loadProc("glUniform4f"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform2i = loadProc("glUniform2i"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform4i = loadProc("glUniform4i"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->VertexAttrib1d = loadProc("glVertexAttrib1d"); + api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->VertexAttrib1s = loadProc("glVertexAttrib1s"); + api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); + api->VertexAttrib2d = loadProc("glVertexAttrib2d"); + api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->VertexAttrib2s = loadProc("glVertexAttrib2s"); + api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); + api->VertexAttrib3d = loadProc("glVertexAttrib3d"); + api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->VertexAttrib3s = loadProc("glVertexAttrib3s"); + api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); + api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); + api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); + api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); + api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); + api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); + api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); + api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); + api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); + api->VertexAttrib4d = loadProc("glVertexAttrib4d"); + api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); + api->VertexAttrib4s = loadProc("glVertexAttrib4s"); + api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); + api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); + api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); + api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->ColorMaski = loadProc("glColorMaski"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->Enablei = loadProc("glEnablei"); + api->Disablei = loadProc("glDisablei"); + api->IsEnabledi = loadProc("glIsEnabledi"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->ClampColor = loadProc("glClampColor"); + api->BeginConditionalRender = loadProc("glBeginConditionalRender"); + api->EndConditionalRender = loadProc("glEndConditionalRender"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->VertexAttribI1i = loadProc("glVertexAttribI1i"); + api->VertexAttribI2i = loadProc("glVertexAttribI2i"); + api->VertexAttribI3i = loadProc("glVertexAttribI3i"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); + api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); + api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); + api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); + api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); + api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); + api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); + api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); + api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); + api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->BindFragDataLocation = loadProc("glBindFragDataLocation"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetStringi = loadProc("glGetStringi"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->TexBuffer = loadProc("glTexBuffer"); + api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->GetActiveUniformName = loadProc("glGetActiveUniformName"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); + api->ProvokingVertex = loadProc("glProvokingVertex"); + api->FenceSync = loadProc("glFenceSync"); + api->IsSync = loadProc("glIsSync"); + api->DeleteSync = loadProc("glDeleteSync"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->WaitSync = loadProc("glWaitSync"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetSynciv = loadProc("glGetSynciv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); + api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->SampleMaski = loadProc("glSampleMaski"); + api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); + api->GetFragDataIndex = loadProc("glGetFragDataIndex"); + api->GenSamplers = loadProc("glGenSamplers"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->IsSampler = loadProc("glIsSampler"); + api->BindSampler = loadProc("glBindSampler"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->QueryCounter = loadProc("glQueryCounter"); + api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); + api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); + api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); + api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); + api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); + api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); + api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); + api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); + api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->BlendFunci = loadProc("glBlendFunci"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->Uniform1d = loadProc("glUniform1d"); + api->Uniform2d = loadProc("glUniform2d"); + api->Uniform3d = loadProc("glUniform3d"); + api->Uniform4d = loadProc("glUniform4d"); + api->Uniform1dv = loadProc("glUniform1dv"); + api->Uniform2dv = loadProc("glUniform2dv"); + api->Uniform3dv = loadProc("glUniform3dv"); + api->Uniform4dv = loadProc("glUniform4dv"); + api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); + api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); + api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); + api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); + api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); + api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); + api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); + api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); + api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); + api->GetUniformdv = loadProc("glGetUniformdv"); + api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); + api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); + api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); + api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); + api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); + api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); + api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); + api->GetProgramStageiv = loadProc("glGetProgramStageiv"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->PatchParameterfv = loadProc("glPatchParameterfv"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); + api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); + api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); + api->EndQueryIndexed = loadProc("glEndQueryIndexed"); + api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->ShaderBinary = loadProc("glShaderBinary"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->DepthRangef = loadProc("glDepthRangef"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ProgramUniform1d = loadProc("glProgramUniform1d"); + api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->ProgramUniform2d = loadProc("glProgramUniform2d"); + api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->ProgramUniform3d = loadProc("glProgramUniform3d"); + api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->ProgramUniform4d = loadProc("glProgramUniform4d"); + api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); + api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); + api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); + api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); + api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); + api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); + api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); + api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->VertexAttribL1d = loadProc("glVertexAttribL1d"); + api->VertexAttribL2d = loadProc("glVertexAttribL2d"); + api->VertexAttribL3d = loadProc("glVertexAttribL3d"); + api->VertexAttribL4d = loadProc("glVertexAttribL4d"); + api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); + api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); + api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); + api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); + api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); + api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); + api->ViewportArrayv = loadProc("glViewportArrayv"); + api->ViewportIndexedf = loadProc("glViewportIndexedf"); + api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); + api->ScissorArrayv = loadProc("glScissorArrayv"); + api->ScissorIndexed = loadProc("glScissorIndexed"); + api->ScissorIndexedv = loadProc("glScissorIndexedv"); + api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); + api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); + api->GetFloati_v = loadProc("glGetFloati_v"); + api->GetDoublei_v = loadProc("glGetDoublei_v"); +} + +void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->CullFace = loadProc("glCullFace"); + api->FrontFace = loadProc("glFrontFace"); + api->Hint = loadProc("glHint"); + api->LineWidth = loadProc("glLineWidth"); + api->PointSize = loadProc("glPointSize"); + api->PolygonMode = loadProc("glPolygonMode"); + api->Scissor = loadProc("glScissor"); + api->TexParameterf = loadProc("glTexParameterf"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->TexParameteri = loadProc("glTexParameteri"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->TexImage1D = loadProc("glTexImage1D"); + api->TexImage2D = loadProc("glTexImage2D"); + api->DrawBuffer = loadProc("glDrawBuffer"); + api->Clear = loadProc("glClear"); + api->ClearColor = loadProc("glClearColor"); + api->ClearStencil = loadProc("glClearStencil"); + api->ClearDepth = loadProc("glClearDepth"); + api->StencilMask = loadProc("glStencilMask"); + api->ColorMask = loadProc("glColorMask"); + api->DepthMask = loadProc("glDepthMask"); + api->Disable = loadProc("glDisable"); + api->Enable = loadProc("glEnable"); + api->Finish = loadProc("glFinish"); + api->Flush = loadProc("glFlush"); + api->BlendFunc = loadProc("glBlendFunc"); + api->LogicOp = loadProc("glLogicOp"); + api->StencilFunc = loadProc("glStencilFunc"); + api->StencilOp = loadProc("glStencilOp"); + api->DepthFunc = loadProc("glDepthFunc"); + api->PixelStoref = loadProc("glPixelStoref"); + api->PixelStorei = loadProc("glPixelStorei"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->ReadPixels = loadProc("glReadPixels"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->GetDoublev = loadProc("glGetDoublev"); + api->GetError = loadProc("glGetError"); + api->GetFloatv = loadProc("glGetFloatv"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetString = loadProc("glGetString"); + api->GetTexImage = loadProc("glGetTexImage"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->IsEnabled = loadProc("glIsEnabled"); + api->DepthRange = loadProc("glDepthRange"); + api->Viewport = loadProc("glViewport"); + api->DrawArrays = loadProc("glDrawArrays"); + api->DrawElements = loadProc("glDrawElements"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->CopyTexImage1D = loadProc("glCopyTexImage1D"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->TexSubImage1D = loadProc("glTexSubImage1D"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->BindTexture = loadProc("glBindTexture"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->GenTextures = loadProc("glGenTextures"); + api->IsTexture = loadProc("glIsTexture"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->TexImage3D = loadProc("glTexImage3D"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); + api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->MultiDrawArrays = loadProc("glMultiDrawArrays"); + api->MultiDrawElements = loadProc("glMultiDrawElements"); + api->PointParameterf = loadProc("glPointParameterf"); + api->PointParameterfv = loadProc("glPointParameterfv"); + api->PointParameteri = loadProc("glPointParameteri"); + api->PointParameteriv = loadProc("glPointParameteriv"); + api->BlendColor = loadProc("glBlendColor"); + api->BlendEquation = loadProc("glBlendEquation"); + api->GenQueries = loadProc("glGenQueries"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->IsQuery = loadProc("glIsQuery"); + api->BeginQuery = loadProc("glBeginQuery"); + api->EndQuery = loadProc("glEndQuery"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->BindBuffer = loadProc("glBindBuffer"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GenBuffers = loadProc("glGenBuffers"); + api->IsBuffer = loadProc("glIsBuffer"); + api->BufferData = loadProc("glBufferData"); + api->BufferSubData = loadProc("glBufferSubData"); + api->GetBufferSubData = loadProc("glGetBufferSubData"); + api->MapBuffer = loadProc("glMapBuffer"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->AttachShader = loadProc("glAttachShader"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->CompileShader = loadProc("glCompileShader"); + api->CreateProgram = loadProc("glCreateProgram"); + api->CreateShader = loadProc("glCreateShader"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->DeleteShader = loadProc("glDeleteShader"); + api->DetachShader = loadProc("glDetachShader"); + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->IsProgram = loadProc("glIsProgram"); + api->IsShader = loadProc("glIsShader"); + api->LinkProgram = loadProc("glLinkProgram"); + api->ShaderSource = loadProc("glShaderSource"); + api->UseProgram = loadProc("glUseProgram"); + api->Uniform1f = loadProc("glUniform1f"); + api->Uniform2f = loadProc("glUniform2f"); + api->Uniform3f = loadProc("glUniform3f"); + api->Uniform4f = loadProc("glUniform4f"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform2i = loadProc("glUniform2i"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform4i = loadProc("glUniform4i"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->VertexAttrib1d = loadProc("glVertexAttrib1d"); + api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->VertexAttrib1s = loadProc("glVertexAttrib1s"); + api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); + api->VertexAttrib2d = loadProc("glVertexAttrib2d"); + api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->VertexAttrib2s = loadProc("glVertexAttrib2s"); + api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); + api->VertexAttrib3d = loadProc("glVertexAttrib3d"); + api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->VertexAttrib3s = loadProc("glVertexAttrib3s"); + api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); + api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); + api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); + api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); + api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); + api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); + api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); + api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); + api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); + api->VertexAttrib4d = loadProc("glVertexAttrib4d"); + api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); + api->VertexAttrib4s = loadProc("glVertexAttrib4s"); + api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); + api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); + api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); + api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->ColorMaski = loadProc("glColorMaski"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->Enablei = loadProc("glEnablei"); + api->Disablei = loadProc("glDisablei"); + api->IsEnabledi = loadProc("glIsEnabledi"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->ClampColor = loadProc("glClampColor"); + api->BeginConditionalRender = loadProc("glBeginConditionalRender"); + api->EndConditionalRender = loadProc("glEndConditionalRender"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->VertexAttribI1i = loadProc("glVertexAttribI1i"); + api->VertexAttribI2i = loadProc("glVertexAttribI2i"); + api->VertexAttribI3i = loadProc("glVertexAttribI3i"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); + api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); + api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); + api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); + api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); + api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); + api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); + api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); + api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); + api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->BindFragDataLocation = loadProc("glBindFragDataLocation"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetStringi = loadProc("glGetStringi"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->TexBuffer = loadProc("glTexBuffer"); + api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->GetActiveUniformName = loadProc("glGetActiveUniformName"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); + api->ProvokingVertex = loadProc("glProvokingVertex"); + api->FenceSync = loadProc("glFenceSync"); + api->IsSync = loadProc("glIsSync"); + api->DeleteSync = loadProc("glDeleteSync"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->WaitSync = loadProc("glWaitSync"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetSynciv = loadProc("glGetSynciv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); + api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->SampleMaski = loadProc("glSampleMaski"); + api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); + api->GetFragDataIndex = loadProc("glGetFragDataIndex"); + api->GenSamplers = loadProc("glGenSamplers"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->IsSampler = loadProc("glIsSampler"); + api->BindSampler = loadProc("glBindSampler"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->QueryCounter = loadProc("glQueryCounter"); + api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); + api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); + api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); + api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); + api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); + api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); + api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); + api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); + api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->BlendFunci = loadProc("glBlendFunci"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->Uniform1d = loadProc("glUniform1d"); + api->Uniform2d = loadProc("glUniform2d"); + api->Uniform3d = loadProc("glUniform3d"); + api->Uniform4d = loadProc("glUniform4d"); + api->Uniform1dv = loadProc("glUniform1dv"); + api->Uniform2dv = loadProc("glUniform2dv"); + api->Uniform3dv = loadProc("glUniform3dv"); + api->Uniform4dv = loadProc("glUniform4dv"); + api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); + api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); + api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); + api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); + api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); + api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); + api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); + api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); + api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); + api->GetUniformdv = loadProc("glGetUniformdv"); + api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); + api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); + api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); + api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); + api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); + api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); + api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); + api->GetProgramStageiv = loadProc("glGetProgramStageiv"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->PatchParameterfv = loadProc("glPatchParameterfv"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); + api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); + api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); + api->EndQueryIndexed = loadProc("glEndQueryIndexed"); + api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->ShaderBinary = loadProc("glShaderBinary"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->DepthRangef = loadProc("glDepthRangef"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ProgramUniform1d = loadProc("glProgramUniform1d"); + api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->ProgramUniform2d = loadProc("glProgramUniform2d"); + api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->ProgramUniform3d = loadProc("glProgramUniform3d"); + api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->ProgramUniform4d = loadProc("glProgramUniform4d"); + api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); + api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); + api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); + api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); + api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); + api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); + api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); + api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->VertexAttribL1d = loadProc("glVertexAttribL1d"); + api->VertexAttribL2d = loadProc("glVertexAttribL2d"); + api->VertexAttribL3d = loadProc("glVertexAttribL3d"); + api->VertexAttribL4d = loadProc("glVertexAttribL4d"); + api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); + api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); + api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); + api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); + api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); + api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); + api->ViewportArrayv = loadProc("glViewportArrayv"); + api->ViewportIndexedf = loadProc("glViewportIndexedf"); + api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); + api->ScissorArrayv = loadProc("glScissorArrayv"); + api->ScissorIndexed = loadProc("glScissorIndexed"); + api->ScissorIndexedv = loadProc("glScissorIndexedv"); + api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); + api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); + api->GetFloati_v = loadProc("glGetFloati_v"); + api->GetDoublei_v = loadProc("glGetDoublei_v"); + api->DrawArraysInstancedBaseInstance = loadProc("glDrawArraysInstancedBaseInstance"); + api->DrawElementsInstancedBaseInstance = loadProc("glDrawElementsInstancedBaseInstance"); + api->DrawElementsInstancedBaseVertexBaseInstance = loadProc("glDrawElementsInstancedBaseVertexBaseInstance"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->GetActiveAtomicCounterBufferiv = loadProc("glGetActiveAtomicCounterBufferiv"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->TexStorage1D = loadProc("glTexStorage1D"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->DrawTransformFeedbackInstanced = loadProc("glDrawTransformFeedbackInstanced"); + api->DrawTransformFeedbackStreamInstanced = loadProc("glDrawTransformFeedbackStreamInstanced"); + api->ClearBufferData = loadProc("glClearBufferData"); + api->ClearBufferSubData = loadProc("glClearBufferSubData"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->CopyImageSubData = loadProc("glCopyImageSubData"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->GetInternalformati64v = loadProc("glGetInternalformati64v"); + api->InvalidateTexSubImage = loadProc("glInvalidateTexSubImage"); + api->InvalidateTexImage = loadProc("glInvalidateTexImage"); + api->InvalidateBufferSubData = loadProc("glInvalidateBufferSubData"); + api->InvalidateBufferData = loadProc("glInvalidateBufferData"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->MultiDrawArraysIndirect = loadProc("glMultiDrawArraysIndirect"); + api->MultiDrawElementsIndirect = loadProc("glMultiDrawElementsIndirect"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->GetProgramResourceLocationIndex = loadProc("glGetProgramResourceLocationIndex"); + api->ShaderStorageBlockBinding = loadProc("glShaderStorageBlockBinding"); + api->TexBufferRange = loadProc("glTexBufferRange"); + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); + api->TextureView = loadProc("glTextureView"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->VertexAttribLFormat = loadProc("glVertexAttribLFormat"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->DebugMessageControl = loadProc("glDebugMessageControl"); + api->DebugMessageInsert = loadProc("glDebugMessageInsert"); + api->DebugMessageCallback = loadProc("glDebugMessageCallback"); + api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); + api->PushDebugGroup = loadProc("glPushDebugGroup"); + api->PopDebugGroup = loadProc("glPopDebugGroup"); + api->ObjectLabel = loadProc("glObjectLabel"); + api->GetObjectLabel = loadProc("glGetObjectLabel"); + api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); + api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); + api->GetPointerv = loadProc("glGetPointerv"); +} + +void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->ActiveTexture = loadProc("glActiveTexture"); + api->AttachShader = loadProc("glAttachShader"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->BindBuffer = loadProc("glBindBuffer"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->BindTexture = loadProc("glBindTexture"); + api->BlendColor = loadProc("glBlendColor"); + api->BlendEquation = loadProc("glBlendEquation"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->BlendFunc = loadProc("glBlendFunc"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->BufferData = loadProc("glBufferData"); + api->BufferSubData = loadProc("glBufferSubData"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->Clear = loadProc("glClear"); + api->ClearColor = loadProc("glClearColor"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->ClearStencil = loadProc("glClearStencil"); + api->ColorMask = loadProc("glColorMask"); + api->CompileShader = loadProc("glCompileShader"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->CreateProgram = loadProc("glCreateProgram"); + api->CreateShader = loadProc("glCreateShader"); + api->CullFace = loadProc("glCullFace"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->DeleteShader = loadProc("glDeleteShader"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->DepthFunc = loadProc("glDepthFunc"); + api->DepthMask = loadProc("glDepthMask"); + api->DepthRangef = loadProc("glDepthRangef"); + api->DetachShader = loadProc("glDetachShader"); + api->Disable = loadProc("glDisable"); + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->DrawArrays = loadProc("glDrawArrays"); + api->DrawElements = loadProc("glDrawElements"); + api->Enable = loadProc("glEnable"); + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->Finish = loadProc("glFinish"); + api->Flush = loadProc("glFlush"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->FrontFace = loadProc("glFrontFace"); + api->GenBuffers = loadProc("glGenBuffers"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->GenTextures = loadProc("glGenTextures"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetError = loadProc("glGetError"); + api->GetFloatv = loadProc("glGetFloatv"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->GetString = loadProc("glGetString"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->Hint = loadProc("glHint"); + api->IsBuffer = loadProc("glIsBuffer"); + api->IsEnabled = loadProc("glIsEnabled"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->IsProgram = loadProc("glIsProgram"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->IsShader = loadProc("glIsShader"); + api->IsTexture = loadProc("glIsTexture"); + api->LineWidth = loadProc("glLineWidth"); + api->LinkProgram = loadProc("glLinkProgram"); + api->PixelStorei = loadProc("glPixelStorei"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->ReadPixels = loadProc("glReadPixels"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->Scissor = loadProc("glScissor"); + api->ShaderBinary = loadProc("glShaderBinary"); + api->ShaderSource = loadProc("glShaderSource"); + api->StencilFunc = loadProc("glStencilFunc"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->StencilMask = loadProc("glStencilMask"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->StencilOp = loadProc("glStencilOp"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->TexImage2D = loadProc("glTexImage2D"); + api->TexParameterf = loadProc("glTexParameterf"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->TexParameteri = loadProc("glTexParameteri"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->Uniform1f = loadProc("glUniform1f"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->Uniform2f = loadProc("glUniform2f"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform2i = loadProc("glUniform2i"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->Uniform3f = loadProc("glUniform3f"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4f = loadProc("glUniform4f"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Uniform4i = loadProc("glUniform4i"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->UseProgram = loadProc("glUseProgram"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->Viewport = loadProc("glViewport"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->TexImage3D = loadProc("glTexImage3D"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->GenQueries = loadProc("glGenQueries"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->IsQuery = loadProc("glIsQuery"); + api->BeginQuery = loadProc("glBeginQuery"); + api->EndQuery = loadProc("glEndQuery"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetStringi = loadProc("glGetStringi"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->FenceSync = loadProc("glFenceSync"); + api->IsSync = loadProc("glIsSync"); + api->DeleteSync = loadProc("glDeleteSync"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->WaitSync = loadProc("glWaitSync"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetSynciv = loadProc("glGetSynciv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->GenSamplers = loadProc("glGenSamplers"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->IsSampler = loadProc("glIsSampler"); + api->BindSampler = loadProc("glBindSampler"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); +} + +void mg_gl_load_gles32(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->ActiveTexture = loadProc("glActiveTexture"); + api->AttachShader = loadProc("glAttachShader"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->BindBuffer = loadProc("glBindBuffer"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->BindTexture = loadProc("glBindTexture"); + api->BlendColor = loadProc("glBlendColor"); + api->BlendEquation = loadProc("glBlendEquation"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->BlendFunc = loadProc("glBlendFunc"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->BufferData = loadProc("glBufferData"); + api->BufferSubData = loadProc("glBufferSubData"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->Clear = loadProc("glClear"); + api->ClearColor = loadProc("glClearColor"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->ClearStencil = loadProc("glClearStencil"); + api->ColorMask = loadProc("glColorMask"); + api->CompileShader = loadProc("glCompileShader"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->CreateProgram = loadProc("glCreateProgram"); + api->CreateShader = loadProc("glCreateShader"); + api->CullFace = loadProc("glCullFace"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->DeleteShader = loadProc("glDeleteShader"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->DepthFunc = loadProc("glDepthFunc"); + api->DepthMask = loadProc("glDepthMask"); + api->DepthRangef = loadProc("glDepthRangef"); + api->DetachShader = loadProc("glDetachShader"); + api->Disable = loadProc("glDisable"); + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->DrawArrays = loadProc("glDrawArrays"); + api->DrawElements = loadProc("glDrawElements"); + api->Enable = loadProc("glEnable"); + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->Finish = loadProc("glFinish"); + api->Flush = loadProc("glFlush"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->FrontFace = loadProc("glFrontFace"); + api->GenBuffers = loadProc("glGenBuffers"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->GenTextures = loadProc("glGenTextures"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->GetError = loadProc("glGetError"); + api->GetFloatv = loadProc("glGetFloatv"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->GetString = loadProc("glGetString"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->Hint = loadProc("glHint"); + api->IsBuffer = loadProc("glIsBuffer"); + api->IsEnabled = loadProc("glIsEnabled"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->IsProgram = loadProc("glIsProgram"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->IsShader = loadProc("glIsShader"); + api->IsTexture = loadProc("glIsTexture"); + api->LineWidth = loadProc("glLineWidth"); + api->LinkProgram = loadProc("glLinkProgram"); + api->PixelStorei = loadProc("glPixelStorei"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->ReadPixels = loadProc("glReadPixels"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->Scissor = loadProc("glScissor"); + api->ShaderBinary = loadProc("glShaderBinary"); + api->ShaderSource = loadProc("glShaderSource"); + api->StencilFunc = loadProc("glStencilFunc"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->StencilMask = loadProc("glStencilMask"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->StencilOp = loadProc("glStencilOp"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->TexImage2D = loadProc("glTexImage2D"); + api->TexParameterf = loadProc("glTexParameterf"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->TexParameteri = loadProc("glTexParameteri"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->Uniform1f = loadProc("glUniform1f"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->Uniform1i = loadProc("glUniform1i"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->Uniform2f = loadProc("glUniform2f"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform2i = loadProc("glUniform2i"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->Uniform3f = loadProc("glUniform3f"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform3i = loadProc("glUniform3i"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4f = loadProc("glUniform4f"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Uniform4i = loadProc("glUniform4i"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->UseProgram = loadProc("glUseProgram"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->Viewport = loadProc("glViewport"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->TexImage3D = loadProc("glTexImage3D"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->GenQueries = loadProc("glGenQueries"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->IsQuery = loadProc("glIsQuery"); + api->BeginQuery = loadProc("glBeginQuery"); + api->EndQuery = loadProc("glEndQuery"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetStringi = loadProc("glGetStringi"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->FenceSync = loadProc("glFenceSync"); + api->IsSync = loadProc("glIsSync"); + api->DeleteSync = loadProc("glDeleteSync"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->WaitSync = loadProc("glWaitSync"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->GetSynciv = loadProc("glGetSynciv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->GenSamplers = loadProc("glGenSamplers"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->IsSampler = loadProc("glIsSampler"); + api->BindSampler = loadProc("glBindSampler"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->BlendBarrier = loadProc("glBlendBarrier"); + api->CopyImageSubData = loadProc("glCopyImageSubData"); + api->DebugMessageControl = loadProc("glDebugMessageControl"); + api->DebugMessageInsert = loadProc("glDebugMessageInsert"); + api->DebugMessageCallback = loadProc("glDebugMessageCallback"); + api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); + api->PushDebugGroup = loadProc("glPushDebugGroup"); + api->PopDebugGroup = loadProc("glPopDebugGroup"); + api->ObjectLabel = loadProc("glObjectLabel"); + api->GetObjectLabel = loadProc("glGetObjectLabel"); + api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); + api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); + api->GetPointerv = loadProc("glGetPointerv"); + api->Enablei = loadProc("glEnablei"); + api->Disablei = loadProc("glDisablei"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->BlendFunci = loadProc("glBlendFunci"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->ColorMaski = loadProc("glColorMaski"); + api->IsEnabledi = loadProc("glIsEnabledi"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->PrimitiveBoundingBox = loadProc("glPrimitiveBoundingBox"); + api->GetGraphicsResetStatus = loadProc("glGetGraphicsResetStatus"); + api->ReadnPixels = loadProc("glReadnPixels"); + api->GetnUniformfv = loadProc("glGetnUniformfv"); + api->GetnUniformiv = loadProc("glGetnUniformiv"); + api->GetnUniformuiv = loadProc("glGetnUniformuiv"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->TexBuffer = loadProc("glTexBuffer"); + api->TexBufferRange = loadProc("glTexBufferRange"); + api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); +} + +void mg_gl_select_api(mg_gl_api* api){ __mgGLAPI = api; } + diff --git a/src/gl_loader.h b/src/gl_loader.h index 2acd50b..4e91371 100644 --- a/src/gl_loader.h +++ b/src/gl_loader.h @@ -1,22 +1,22 @@ -/******************************************************** -* -* @file: gl_loader.h -* @note: auto-generated by glapi.py from gl.xml -* @date: 16/022023 -* -/********************************************************/ -#ifndef __GL_LOADER_H__ -#define __GL_LOADER_H__ - -#include"gl_api.h" - -typedef void*(*mg_gl_load_proc)(const char* name); - -void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc); -void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc); -void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc); -void mg_gl_load_gles32(mg_gl_api* api, mg_gl_load_proc loadProc); - -void mg_gl_select_api(mg_gl_api* api); - -#endif // __GL_LOADER_H__ +/******************************************************** +* +* @file: gl_loader.h +* @note: auto-generated by glapi.py from gl.xml +* @date: 20/022023 +* +*********************************************************/ +#ifndef __GL_LOADER_H__ +#define __GL_LOADER_H__ + +#include"gl_api.h" + +typedef void*(*mg_gl_load_proc)(const char* name); + +void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc); +void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc); +void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc); +void mg_gl_load_gles32(mg_gl_api* api, mg_gl_load_proc loadProc); + +void mg_gl_select_api(mg_gl_api* api); + +#endif // __GL_LOADER_H__ diff --git a/src/graphics.c b/src/graphics.c index 74c2bce..f10153b 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -372,7 +372,7 @@ mg_surface mg_surface_create_for_window(mp_window window, mg_backend_id backend) #endif #if MG_COMPILE_BACKEND_METAL - case MG_METAL_BACKEND: + case MG_BACKEND_METAL: surface = mg_mtl_surface_create_for_window(window); break; #endif @@ -2656,11 +2656,11 @@ mp_rect mg_text_bounding_box(mg_font font, f32 fontSize, str8 text) //NOTE(martin): graphics canvas API //------------------------------------------------------------------------------------------ -#ifdef MG_COMPILE_BACKEND_METAL +#if MG_COMPILE_BACKEND_METAL mg_canvas_backend* mg_mtl_canvas_create(mg_surface surface); #endif -#ifdef MG_COMPILE_BACKEND_GL +#if MG_COMPILE_BACKEND_GL mg_canvas_backend* mg_gl_canvas_create(mg_surface surface); #endif @@ -2673,13 +2673,13 @@ mg_canvas mg_canvas_create(mg_surface surface) mg_canvas_backend* backend = 0; switch(surfaceData->backend) { - #ifdef MG_COMPILE_BACKEND_METAL + #if MG_COMPILE_BACKEND_METAL case MG_BACKEND_METAL: backend = mg_mtl_canvas_create(surface); break; #endif - #ifdef MG_COMPILE_BACKEND_GL + #if MG_COMPILE_BACKEND_GL case MG_BACKEND_GL: backend = mg_gl_canvas_create(surface); break; diff --git a/src/graphics.h b/src/graphics.h index 4f1dee8..0f9faeb 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -11,6 +11,7 @@ #include"typedefs.h" #include"platform.h" +#include"mp_app.h" //------------------------------------------------------------------------------------------ //NOTE(martin): backends selection @@ -29,10 +30,12 @@ typedef enum { #define MG_COMPILE_BACKEND_METAL 1 #endif - #ifndef MG_COMPILE_BACKEND_GL - #define MG_COMPILE_BACKEND_GL 1 + #ifndef MG_COMPILE_BACKEND_GLES + #define MG_COMPILE_BACKEND_GLES 1 #endif + #define MG_COMPILE_BACKEND_GL 0 + #if MG_COMPILE_BACKEND_METAL #define MG_BACKEND_DEFAULT MG_BACKEND_METAL #elif MG_COMPILE_BACKEND_GL diff --git a/src/milepost.c b/src/milepost.c index 1430f6a..b1e7562 100644 --- a/src/milepost.c +++ b/src/milepost.c @@ -70,7 +70,6 @@ #elif defined(OS_MACOS) //NOTE: macos application layer and graphics backends are defined in milepost.m - #include"graphics.c" #else #error "Unsupported platform" #endif diff --git a/src/milepost.h b/src/milepost.h index 5ff356f..b918560 100644 --- a/src/milepost.h +++ b/src/milepost.h @@ -38,10 +38,8 @@ #include"mp_app.h" #include"graphics.h" -#if defined(OS_WIN64) - #ifdef MG_INCLUDE_GL_API - #include"gl_api.h" - #endif +#ifdef MG_INCLUDE_GL_API + #include"gl_api.h" #endif //#include"ui.h" diff --git a/src/milepost.m b/src/milepost.m index 3a6e3a4..3c41b2b 100644 --- a/src/milepost.m +++ b/src/milepost.m @@ -8,13 +8,18 @@ *****************************************************************/ #include"osx_app.m" -#include"graphics.h" +#include"graphics.c" #if MG_COMPILE_BACKEND_METAL #include"mtl_surface.m" #include"mtl_canvas.m" #endif +#if MG_COMPILE_BACKEND_GLES + #include"gl_loader.c" + #include"egl_surface.c" +#endif + /* #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" diff --git a/src/mp_app_internal.h b/src/mp_app_internal.h index 8a64756..2a7a5a3 100644 --- a/src/mp_app_internal.h +++ b/src/mp_app_internal.h @@ -148,5 +148,6 @@ typedef struct mp_app MP_PLATFORM_APP_DATA } mp_app; +mp_window_data* mp_window_ptr_from_handle(mp_window handle); #endif // __MP_APP_INTERNAL_H_ diff --git a/src/mtl_canvas.m b/src/mtl_canvas.m index 215b558..13b3c01 100644 --- a/src/mtl_canvas.m +++ b/src/mtl_canvas.m @@ -91,7 +91,7 @@ void mg_mtl_canvas_draw_batch(mg_canvas_backend* interface, u32 vertexCount, u32 ASSERT(indexCount * sizeof(i32) < [backend->indexBuffer length]); - f32 scale = surface->metalLayer.contentsScale; + f32 scale = surface->mtlLayer.contentsScale; vector_uint2 viewportSize = {backend->viewPort.w * scale, backend->viewPort.h * scale}; //----------------------------------------------------------- @@ -218,7 +218,7 @@ void mg_mtl_canvas_viewport(mg_canvas_backend* interface, mp_rect viewPort) @autoreleasepool { - f32 scale = surface->metalLayer.contentsScale; + f32 scale = surface->mtlLayer.contentsScale; CGSize drawableSize = (CGSize){.width = viewPort.w * scale, .height = viewPort.h * scale}; [backend->outTexture release]; @@ -249,8 +249,8 @@ void mg_mtl_canvas_update_vertex_layout(mg_mtl_canvas_backend* backend) .cubicStride = sizeof(mg_vertex), .posBuffer = vertexBase + offsetof(mg_vertex, pos), .posStride = sizeof(mg_vertex), - .zIndexBuffer = vertexBase + offsetof(mg_vertex, zIndex), - .zIndexStride = sizeof(mg_vertex), + .shapeIndexBuffer = vertexBase + offsetof(mg_vertex, shapeIndex), + .shapeIndexStride = sizeof(mg_vertex), .colorBuffer = shapeBase + offsetof(mg_shape, color), .colorStride = sizeof(mg_shape), @@ -316,7 +316,7 @@ mg_canvas_backend* mg_mtl_canvas_create(mg_surface surface) @autoreleasepool { - f32 scale = metalSurface->metalLayer.contentsScale; + f32 scale = metalSurface->mtlLayer.contentsScale; CGSize drawableSize = (CGSize){.width = backend->viewPort.w * scale, .height = backend->viewPort.h * scale}; //----------------------------------------------------------- @@ -446,7 +446,7 @@ mg_canvas_backend* mg_mtl_canvas_create(mg_surface surface) pipelineStateDescriptor.label = @"My simple pipeline"; pipelineStateDescriptor.vertexFunction = vertexFunction; pipelineStateDescriptor.fragmentFunction = fragmentFunction; - pipelineStateDescriptor.colorAttachments[0].pixelFormat = metalSurface->metalLayer.pixelFormat; + pipelineStateDescriptor.colorAttachments[0].pixelFormat = metalSurface->mtlLayer.pixelFormat; // create render pipeline backend->renderPipeline = [metalSurface->device newRenderPipelineStateWithDescriptor: pipelineStateDescriptor error:&err]; diff --git a/src/mtl_shader.h b/src/mtl_shader.h index 0e473ad..767fff5 100644 --- a/src/mtl_shader.h +++ b/src/mtl_shader.h @@ -22,7 +22,7 @@ typedef struct mg_vertex { vector_float4 cubic; // canonical implicit curve space coordinates vector_float2 pos; // position - int zIndex; + int shapeIndex; } mg_vertex; typedef struct mg_shape @@ -38,7 +38,7 @@ typedef struct mg_triangle_data uint i0; uint i1; uint i2; - uint zIndex; + uint shapeIndex; vector_float2 p0; vector_float2 p1; diff --git a/src/mtl_shader.metal b/src/mtl_shader.metal index 7d4919a..2cefb30 100644 --- a/src/mtl_shader.metal +++ b/src/mtl_shader.metal @@ -57,11 +57,9 @@ kernel void BoundingBoxKernel(constant mg_vertex* vertexBuffer [[buffer(0)]], float2 boxMax = max(max(p0, p1), p2); //NOTE(martin): clip bounding box against clip rect - int shapeIndex = vertexBuffer[i0].zIndex; + int shapeIndex = vertexBuffer[i0].shapeIndex; vector_float4 clip = contentsScaling[0]*shapeBuffer[shapeIndex].clip; - float2 clipMin(clip.x, clip.y); - float2 clipMax(clip.x + clip.z-1, clip.y + clip.w-1); //NOTE(martin): intersect with current clip boxMin = max(boxMin, clip.xy); @@ -86,7 +84,7 @@ kernel void BoundingBoxKernel(constant mg_vertex* vertexBuffer [[buffer(0)]], //NOTE(martin): fill triangle data boxArray[triangleIndex] = float4(boxMin.x, boxMin.y, boxMax.x, boxMax.y); - triangleArray[triangleIndex].zIndex = shapeIndex; + triangleArray[triangleIndex].shapeIndex = shapeIndex; triangleArray[triangleIndex].i0 = i0; triangleArray[triangleIndex].i1 = i1; triangleArray[triangleIndex].i2 = i2; @@ -140,13 +138,13 @@ kernel void SortKernel(const device uint* tileCounters [[buffer(0)]], for(int eltIndex=0; eltIndex < (int)tileBufferSize; eltIndex++) { uint elt = tileBuffer[eltIndex]; - uint eltZIndex = triangleArray[elt].zIndex; + uint eltZIndex = triangleArray[elt].shapeIndex; int backIndex = eltIndex-1; for(; backIndex >= 0; backIndex--) { uint backElt = tileBuffer[backIndex]; - uint backEltZIndex = triangleArray[backElt].zIndex; + uint backEltZIndex = triangleArray[backElt].shapeIndex; if(eltZIndex >= backEltZIndex) { break; @@ -278,12 +276,12 @@ kernel void RenderKernel(texture2d outTexture [[texture(0) float4 cubic1 = v1->cubic; float4 cubic2 = v2->cubic; - int zIndex = v0->zIndex; - float4 color = shapeBuffer[zIndex].color; + int shapeIndex = v0->shapeIndex; + float4 color = shapeBuffer[shapeIndex].color; ///////////////////////////////////////////////////////////////////////// //TODO: dummy uv while we figure out image handling. - float2 uv0 = shapeBuffer[zIndex].uv; + float2 uv0 = shapeBuffer[shapeIndex].uv; float2 uv1 = uv0; float2 uv2 = uv0; ///////////////////////////////////////////////////////////////////////// @@ -322,7 +320,7 @@ kernel void RenderKernel(texture2d outTexture [[texture(0) float eps = 0.0001; if(cubic.w*(cubic.x*cubic.x*cubic.x - cubic.y*cubic.z) <= eps) { - if(zIndex == zIndices[i]) + if(shapeIndex == zIndices[i]) { flipCounts[i]++; } @@ -336,7 +334,7 @@ kernel void RenderKernel(texture2d outTexture [[texture(0) float4 nextCol = color*texColor; nextColors[i] = pixelColors[i]*(1-nextCol.a) +nextCol.a*nextCol; - zIndices[i] = zIndex; + zIndices[i] = shapeIndex; flipCounts[i] = 1; } } diff --git a/src/mtl_surface.h b/src/mtl_surface.h index b9e8a76..dc075dc 100644 --- a/src/mtl_surface.h +++ b/src/mtl_surface.h @@ -12,7 +12,7 @@ #include"graphics.h" #ifdef __OBJC__ - #import + #import #endif mg_surface mg_mtl_surface_create_for_window(mp_window window); diff --git a/src/mtl_surface.m b/src/mtl_surface.m index 6d1ed36..d8179b2 100644 --- a/src/mtl_surface.m +++ b/src/mtl_surface.m @@ -197,7 +197,7 @@ mg_surface mg_mtl_surface_create_for_window(mp_window window) mg_mtl_surface* surface = (mg_mtl_surface*)malloc(sizeof(mg_mtl_surface)); //NOTE(martin): setup interface functions - surface->interface.backend = MG_BACKEND_MTL; + surface->interface.backend = MG_BACKEND_METAL; surface->interface.destroy = mg_mtl_surface_destroy; surface->interface.prepare = mg_mtl_surface_prepare; surface->interface.present = mg_mtl_surface_present; @@ -222,7 +222,7 @@ mg_surface mg_mtl_surface_create_for_window(mp_window window) //----------------------------------------------------------- surface->device = MTLCreateSystemDefaultDevice(); [surface->device retain]; - surface->mtlLayer = [CAMtlLayer layer]; + surface->mtlLayer = [CAMetalLayer layer]; [surface->mtlLayer retain]; [surface->mtlLayer setOpaque:NO]; @@ -266,7 +266,7 @@ mg_surface mg_mtl_surface_create_for_window(mp_window window) void* mg_mtl_surface_layer(mg_surface surface) { mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->backend == MG_BACKEND_MTL) + if(surfaceData && surfaceData->backend == MG_BACKEND_METAL) { mg_mtl_surface* mtlSurface = (mg_mtl_surface*)surfaceData; return(mtlSurface->mtlLayer); @@ -280,7 +280,7 @@ void* mg_mtl_surface_layer(mg_surface surface) void* mg_mtl_surface_drawable(mg_surface surface) { mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->backend == MG_BACKEND_MTL) + if(surfaceData && surfaceData->backend == MG_BACKEND_METAL) { mg_mtl_surface* mtlSurface = (mg_mtl_surface*)surfaceData; return(mtlSurface->drawable); @@ -294,7 +294,7 @@ void* mg_mtl_surface_drawable(mg_surface surface) void* mg_mtl_surface_command_buffer(mg_surface surface) { mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->backend == MG_BACKEND_MTL) + if(surfaceData && surfaceData->backend == MG_BACKEND_METAL) { mg_mtl_surface* mtlSurface = (mg_mtl_surface*)surfaceData; return(mtlSurface->commandBuffer); diff --git a/src/osx_app.m b/src/osx_app.m index b05a70d..5d3f689 100644 --- a/src/osx_app.m +++ b/src/osx_app.m @@ -728,6 +728,7 @@ static void mp_update_key_mods(mp_key_mods mods) { window = mpWindow; mpWindow->osx.nsView = self; + [mpWindow->osx.nsView setWantsLayer:YES]; NSTrackingAreaOptions trackingOptions = NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved diff --git a/todo.txt b/todo.txt index 5e128cc..2187116 100644 --- a/todo.txt +++ b/todo.txt @@ -23,13 +23,18 @@ Overview [/] Keep dummy window/dummy context around for gl context creation, and don't reload wgl functions every time -[>] Reintroduce GLES surface +[.] Reintroduce GLES surface + [ ] See how we can isolate platform-specific stuff and just deal with egl there.. + [>] Back surface by child windows and implement moving frame/hiding/overlay + [>] Check that we can make GLES and GL surfaces co-exist in the app [?] Backport canvas to GLES - +[!] Fix canvas shader precision issue on OSX +[!] Fix canvas perf issue on OSX +[!] osx: Remove need to include objc defs from osx_app.h in egl impl. Also properly guard angle backend attribute (must be metal on osx and default on win32) [ ] Delegated drawing API+Impl