From 64d7b31e5c08d50bc895218665445dcb90596c99 Mon Sep 17 00:00:00 2001 From: martinfouilleul Date: Mon, 20 Feb 2023 19:38:24 +0100 Subject: [PATCH] destroy gles surfaces resources --- scripts/glapi.py | 6 +- src/gl_api.h | 2208 ++++++++++++------------- src/gl_loader.c | 3445 ++++++++++++++++++++------------------- src/gl_loader.h | 45 +- src/osx_egl_surface.m | 15 +- src/win32_egl_surface.c | 14 +- todo.txt | 1 - 7 files changed, 2877 insertions(+), 2857 deletions(-) diff --git a/scripts/glapi.py b/scripts/glapi.py index ce553df..aedb554 100644 --- a/scripts/glapi.py +++ b/scripts/glapi.py @@ -124,7 +124,8 @@ f.write("void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc);\n") f.write("void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc);\n") f.write("void mg_gl_load_gles32(mg_gl_api* api, mg_gl_load_proc loadProc);\n\n") -f.write("void mg_gl_select_api(mg_gl_api* api);\n\n") +f.write("void mg_gl_select_api(mg_gl_api* api);\n") +f.write("mg_gl_api* mg_gl_get_api(void);\n\n") emit_end_guard(f, loaderName) f.close() @@ -153,6 +154,7 @@ emit_loader(f, 'gl43', gl43) emit_loader(f, 'gles31', gles31) emit_loader(f, 'gles32', gles32) -f.write("void mg_gl_select_api(mg_gl_api* api){ __mgGLAPI = api; }\n\n") +f.write("void mg_gl_select_api(mg_gl_api* api){ __mgGLAPI = api; }\n") +f.write("mg_gl_api* mg_gl_get_api(void) { return(__mgGLAPI); }\n\n") f.close() diff --git a/src/gl_api.h b/src/gl_api.h index 52b904a..3b08393 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: 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__ +/******************************************************** +* +* @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 +{ + PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv; + PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName; + PFNGLQUERYCOUNTERPROC QueryCounter; + PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv; + PFNGLFRONTFACEPROC FrontFace; + PFNGLUNIFORM4UIVPROC Uniform4uiv; + PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat; + PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks; + PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv; + PFNGLCULLFACEPROC CullFace; + PFNGLBUFFERSUBDATAPROC BufferSubData; + PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample; + PFNGLFINISHPROC Finish; + PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv; + PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying; + PFNGLBINDRENDERBUFFERPROC BindRenderbuffer; + PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer; + PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage; + PFNGLLOGICOPPROC LogicOp; + PFNGLVERTEXATTRIB4DPROC VertexAttrib4d; + PFNGLDELETESAMPLERSPROC DeleteSamplers; + PFNGLSAMPLERPARAMETERIPROC SamplerParameteri; + PFNGLVIEWPORTARRAYVPROC ViewportArrayv; + PFNGLDISABLEPROC Disable; + PFNGLUNIFORM3FPROC Uniform3f; + PFNGLOBJECTPTRLABELPROC ObjectPtrLabel; + PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i; + PFNGLMAPBUFFERPROC MapBuffer; + PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv; + PFNGLDELETESYNCPROC DeleteSync; + PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d; + PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv; + PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D; + PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv; + PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv; + PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex; + PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; + PFNGLPATCHPARAMETERIPROC PatchParameteri; + PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv; + PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv; + PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui; + PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D; + PFNGLPROGRAMBINARYPROC ProgramBinary; + PFNGLPUSHDEBUGGROUPPROC PushDebugGroup; + PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed; + PFNGLGETSHADERSOURCEPROC GetShaderSource; + PFNGLENABLEIPROC Enablei; + PFNGLGETNUNIFORMUIVPROC GetnUniformuiv; + PFNGLUNIFORM3IPROC Uniform3i; + PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline; + PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv; + PFNGLBINDTEXTUREPROC BindTexture; + PFNGLBINDBUFFERRANGEPROC BindBufferRange; + PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion; + PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline; + PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv; + PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed; + PFNGLPOLYGONOFFSETPROC PolygonOffset; + PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d; + PFNGLGETSTRINGPROC GetString; + PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv; + PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage; + PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage; + PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f; + PFNGLSTENCILMASKPROC StencilMask; + PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer; + PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation; + PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings; + PFNGLTEXTUREVIEWPROC TextureView; + PFNGLBLENDEQUATIONPROC BlendEquation; + PFNGLUNIFORM3IVPROC Uniform3iv; + PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv; + PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex; + PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv; + PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced; + PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex; + PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv; + PFNGLCLEARSTENCILPROC ClearStencil; + PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i; + PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D; + PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines; + PFNGLPOINTPARAMETERFVPROC PointParameterfv; + PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv; + PFNGLGETFLOATI_VPROC GetFloati_v; + PFNGLGETNUNIFORMIVPROC GetnUniformiv; + PFNGLDETACHSHADERPROC DetachShader; + PFNGLPIXELSTOREIPROC PixelStorei; + PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f; + PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv; + PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream; + PFNGLDELETEQUERIESPROC DeleteQueries; + PFNGLCLEARBUFFERDATAPROC ClearBufferData; + PFNGLCLEARBUFFERFIPROC ClearBufferfi; + PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv; + PFNGLSTENCILFUNCPROC StencilFunc; + PFNGLREADNPIXELSPROC ReadnPixels; + PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D; + PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced; + PFNGLGETACTIVEATTRIBPROC GetActiveAttrib; + PFNGLGENERATEMIPMAPPROC GenerateMipmap; + PFNGLDEPTHMASKPROC DepthMask; + PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor; + PFNGLFENCESYNCPROC FenceSync; + PFNGLDRAWARRAYSPROC DrawArrays; + PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat; + PFNGLTEXPARAMETERIVPROC TexParameteriv; + PFNGLBLENDFUNCIPROC BlendFunci; + PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv; + PFNGLGETUNIFORMUIVPROC GetUniformuiv; + PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; + PFNGLUNIFORM4IVPROC Uniform4iv; + PFNGLUNIFORM2IPROC Uniform2i; + PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed; + PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv; + PFNGLISTEXTUREPROC IsTexture; + PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv; + PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv; + PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName; + PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv; + PFNGLPOPDEBUGGROUPPROC PopDebugGroup; + PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv; + PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv; + PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect; + PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv; + PFNGLUNIFORM4FVPROC Uniform4fv; + PFNGLTEXBUFFERPROC TexBuffer; + PFNGLVERTEXATTRIB3SPROC VertexAttrib3s; + PFNGLPOINTPARAMETERIPROC PointParameteri; + PFNGLISFRAMEBUFFERPROC IsFramebuffer; + PFNGLGENTEXTURESPROC GenTextures; + PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv; + PFNGLSHADERBINARYPROC ShaderBinary; + PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv; + PFNGLTEXSTORAGE3DPROC TexStorage3D; + PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv; + PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri; + PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv; + PFNGLVIEWPORTPROC Viewport; + PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv; + PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender; + PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv; + PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv; + PFNGLBEGINQUERYPROC BeginQuery; + PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback; + PFNGLVERTEXATTRIB1DPROC VertexAttrib1d; + PFNGLDELETEPROGRAMPROC DeleteProgram; + PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced; + PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv; + PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv; + PFNGLTEXPARAMETERIIVPROC TexParameterIiv; + PFNGLPRIMITIVEBOUNDINGBOXPROC PrimitiveBoundingBox; + PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv; + PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv; + PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv; + PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv; + PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv; + PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D; + PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv; + PFNGLPOINTPARAMETERIVPROC PointParameteriv; + PFNGLUNMAPBUFFERPROC UnmapBuffer; + PFNGLGETACTIVEUNIFORMPROC GetActiveUniform; + PFNGLUNIFORM1FVPROC Uniform1fv; + PFNGLWAITSYNCPROC WaitSync; + PFNGLUNIFORM4DVPROC Uniform4dv; + PFNGLTEXIMAGE1DPROC TexImage1D; + PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D; + PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; + PFNGLREADPIXELSPROC ReadPixels; + PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer; + PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData; + PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding; + PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex; + PFNGLUNIFORM2DVPROC Uniform2dv; + PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays; + PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv; + PFNGLSHADERSOURCEPROC ShaderSource; + PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat; + PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv; + PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv; + PFNGLTEXPARAMETERFVPROC TexParameterfv; + PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui; + PFNGLUNIFORM2UIPROC Uniform2ui; + PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d; + PFNGLDISPATCHCOMPUTEPROC DispatchCompute; + PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i; + PFNGLDRAWBUFFERPROC DrawBuffer; + PFNGLGETPROGRAMBINARYPROC GetProgramBinary; + PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample; + PFNGLBINDBUFFERPROC BindBuffer; + PFNGLPIXELSTOREFPROC PixelStoref; + PFNGLCREATEPROGRAMPROC CreateProgram; + PFNGLVERTEXATTRIB2FPROC VertexAttrib2f; + PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler; + PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv; + PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i; + PFNGLUNIFORM3UIPROC Uniform3ui; + PFNGLISBUFFERPROC IsBuffer; + PFNGLACTIVETEXTUREPROC ActiveTexture; + PFNGLUNIFORM4IPROC Uniform4i; + PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv; + PFNGLHINTPROC Hint; + PFNGLTEXIMAGE2DPROC TexImage2D; + PFNGLDEPTHRANGEPROC DepthRange; + PFNGLTEXSUBIMAGE1DPROC TexSubImage1D; + PFNGLGETDOUBLEI_VPROC GetDoublei_v; + PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D; + PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers; + PFNGLDISABLEIPROC Disablei; + PFNGLDELETESHADERPROC DeleteShader; + PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D; + PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv; + PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv; + PFNGLENDQUERYPROC EndQuery; + PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv; + PFNGLSTENCILOPPROC StencilOp; + PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines; + PFNGLGETBUFFERSUBDATAPROC GetBufferSubData; + PFNGLUNIFORM2DPROC Uniform2d; + PFNGLGETINTEGERI_VPROC GetIntegeri_v; + PFNGLBLENDFUNCPROC BlendFunc; + PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui; + PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv; + PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv; + PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv; + PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui; + PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName; + PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv; + PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer; + PFNGLGETQUERYIVPROC GetQueryiv; + PFNGLGENSAMPLERSPROC GenSamplers; + PFNGLGETSHADERIVPROC GetShaderiv; + PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; + PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding; + PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv; + PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv; + PFNGLVERTEXATTRIB3FPROC VertexAttrib3f; + PFNGLPROGRAMPARAMETERIPROC ProgramParameteri; + PFNGLGETNUNIFORMFVPROC GetnUniformfv; + PFNGLISSHADERPROC IsShader; + PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation; + PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv; + PFNGLUNIFORM2FVPROC Uniform2fv; + PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv; + PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv; + PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback; + PFNGLVERTEXATTRIB2DPROC VertexAttrib2d; + PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; + PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram; + PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv; + PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced; + PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv; + PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv; + PFNGLUNIFORM3UIVPROC Uniform3uiv; + PFNGLSCISSORINDEXEDPROC ScissorIndexed; + PFNGLISPROGRAMPROC IsProgram; + PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f; + PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv; + PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv; + PFNGLDEPTHRANGEFPROC DepthRangef; + PFNGLUSEPROGRAMSTAGESPROC UseProgramStages; + PFNGLGENVERTEXARRAYSPROC GenVertexArrays; + PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog; + PFNGLVERTEXATTRIB4SPROC VertexAttrib4s; + PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback; + PFNGLREADBUFFERPROC ReadBuffer; + PFNGLBLENDCOLORPROC BlendColor; + PFNGLISSYNCPROC IsSync; + PFNGLGETBOOLEANVPROC GetBooleanv; + PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v; + PFNGLCLEARBUFFERFVPROC ClearBufferfv; + PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance; + PFNGLGETBOOLEANI_VPROC GetBooleani_v; + PFNGLISENABLEDIPROC IsEnabledi; + PFNGLCREATESHADERPROC CreateShader; + PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex; + PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback; + PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData; + PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv; + PFNGLUNIFORM2UIVPROC Uniform2uiv; + PFNGLISSAMPLERPROC IsSampler; + PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv; + PFNGLCLEARDEPTHFPROC ClearDepthf; + PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv; + PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements; + PFNGLATTACHSHADERPROC AttachShader; + PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d; + PFNGLTEXIMAGE3DPROC TexImage3D; + PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v; + PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d; + PFNGLISVERTEXARRAYPROC IsVertexArray; + PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv; + PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv; + PFNGLTEXSTORAGE1DPROC TexStorage1D; + PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; + PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance; + PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer; + PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui; + PFNGLGETUNIFORMINDICESPROC GetUniformIndices; + PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d; + PFNGLBINDFRAMEBUFFERPROC BindFramebuffer; + PFNGLVERTEXATTRIB2SPROC VertexAttrib2s; + PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; + PFNGLCOLORMASKIPROC ColorMaski; + PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; + PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect; + PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv; + PFNGLGETOBJECTLABELPROC GetObjectLabel; + PFNGLBLENDEQUATIONIPROC BlendEquationi; + PFNGLUNIFORM3DVPROC Uniform3dv; + PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v; + PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel; + PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv; + PFNGLGETINTEGERVPROC GetIntegerv; + PFNGLBLENDBARRIERPROC BlendBarrier; + PFNGLUNIFORM2FPROC Uniform2f; + PFNGLSCISSORPROC Scissor; + PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; + PFNGLUNIFORM2IVPROC Uniform2iv; + PFNGLUNIFORM4FPROC Uniform4f; + PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv; + PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage; + PFNGLBINDVERTEXARRAYPROC BindVertexArray; + PFNGLCLIENTWAITSYNCPROC ClientWaitSync; + PFNGLGENFRAMEBUFFERSPROC GenFramebuffers; + PFNGLSCISSORARRAYVPROC ScissorArrayv; + PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i; + PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv; + PFNGLGETSYNCIVPROC GetSynciv; + PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect; + PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat; + PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv; + PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv; + PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f; + PFNGLBUFFERDATAPROC BufferData; + PFNGLUNIFORM1FPROC Uniform1f; + PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex; + PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui; + PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv; + PFNGLISENABLEDPROC IsEnabled; + PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv; + PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer; + PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv; + PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert; + PFNGLGENRENDERBUFFERSPROC GenRenderbuffers; + PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D; + PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v; + PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv; + PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui; + PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv; + PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData; + PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback; + PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate; + PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv; + PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; + PFNGLUNIFORM1IPROC Uniform1i; + PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv; + PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui; + PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv; + PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv; + PFNGLSAMPLECOVERAGEPROC SampleCoverage; + PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv; + PFNGLGENBUFFERSPROC GenBuffers; + PFNGLENDQUERYINDEXEDPROC EndQueryIndexed; + PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D; + PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample; + PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv; + PFNGLGETERRORPROC GetError; + PFNGLCOLORMASKPROC ColorMask; + PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv; + PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation; + PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv; + PFNGLTEXPARAMETERFPROC TexParameterf; + PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv; + PFNGLCLEARBUFFERIVPROC ClearBufferiv; + PFNGLGETUNIFORMFVPROC GetUniformfv; + PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei; + PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog; + PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D; + PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv; + PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers; + PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv; + PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex; + PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D; + PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv; + PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus; + PFNGLTEXSUBIMAGE3DPROC TexSubImage3D; + PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv; + PFNGLGETSTRINGIPROC GetStringi; + PFNGLBINDIMAGETEXTUREPROC BindImageTexture; + PFNGLENDCONDITIONALRENDERPROC EndConditionalRender; + PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d; + PFNGLDRAWBUFFERSPROC DrawBuffers; + PFNGLMEMORYBARRIERPROC MemoryBarrier; + PFNGLTEXPARAMETERIPROC TexParameteri; + PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv; + PFNGLDEPTHFUNCPROC DepthFunc; + PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv; + PFNGLGETINTEGER64VPROC GetInteger64v; + PFNGLPOINTSIZEPROC PointSize; + PFNGLLINKPROGRAMPROC LinkProgram; + PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange; + PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i; + PFNGLGETFLOATVPROC GetFloatv; + PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv; + PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData; + PFNGLGETPROGRAMIVPROC GetProgramiv; + PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect; + PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv; + PFNGLUNIFORM1DVPROC Uniform1dv; + PFNGLISQUERYPROC IsQuery; + PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv; + PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback; + PFNGLDRAWELEMENTSPROC DrawElements; + PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv; + PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv; + PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding; + PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui; + PFNGLUNIFORM4UIPROC Uniform4ui; + PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv; + PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv; + PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv; + PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i; + PFNGLGETUNIFORMIVPROC GetUniformiv; + PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate; + PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; + PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv; + PFNGLBINDSAMPLERPROC BindSampler; + PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv; + PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d; + PFNGLGETINTEGER64I_VPROC GetInteger64i_v; + PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex; + PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv; + PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv; + PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance; + PFNGLTEXSTORAGE2DPROC TexStorage2D; + PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv; + PFNGLSAMPLEMASKIPROC SampleMaski; + PFNGLPATCHPARAMETERFVPROC PatchParameterfv; + PFNGLBINDBUFFERBASEPROC BindBufferBase; + PFNGLCLEARPROC Clear; + PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName; + PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex; + PFNGLGENQUERIESPROC GenQueries; + PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv; + PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv; + PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv; + PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv; + PFNGLPROVOKINGVERTEXPROC ProvokingVertex; + PFNGLVERTEXATTRIB3DPROC VertexAttrib3d; + PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv; + PFNGLUNIFORM1UIVPROC Uniform1uiv; + PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub; + PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate; + PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv; + PFNGLGETUNIFORMDVPROC GetUniformdv; + PFNGLCLAMPCOLORPROC ClampColor; + PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback; + PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv; + PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv; + PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv; + PFNGLISRENDERBUFFERPROC IsRenderbuffer; + PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer; + PFNGLUNIFORM1IVPROC Uniform1iv; + PFNGLUNIFORM3FVPROC Uniform3fv; + PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor; + PFNGLCLEARCOLORPROC ClearColor; + PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; + PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv; + PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv; + PFNGLUNIFORM4DPROC Uniform4d; + PFNGLGETTEXIMAGEPROC GetTexImage; + PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D; + PFNGLOBJECTLABELPROC ObjectLabel; + PFNGLTEXBUFFERRANGEPROC TexBufferRange; + PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl; + PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv; + PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; + PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline; + PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui; + PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus; + PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv; + PFNGLSAMPLERPARAMETERFPROC SamplerParameterf; + PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer; + PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv; + PFNGLVALIDATEPROGRAMPROC ValidateProgram; + PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample; + PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback; + PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv; + PFNGLCLEARDEPTHPROC ClearDepth; + PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv; + PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation; + PFNGLLINEWIDTHPROC LineWidth; + PFNGLVERTEXATTRIB1SPROC VertexAttrib1s; + PFNGLPOINTPARAMETERFPROC PointParameterf; + PFNGLDELETETEXTURESPROC DeleteTextures; + PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv; + PFNGLENABLEPROC Enable; + PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv; + PFNGLVERTEXATTRIB4FPROC VertexAttrib4f; + PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv; + PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv; + PFNGLMAPBUFFERRANGEPROC MapBufferRange; + PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv; + PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks; + PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv; + PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv; + PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName; + PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv; + PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements; + PFNGLFLUSHPROC Flush; + PFNGLVERTEXATTRIB1FPROC VertexAttrib1f; + PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; + PFNGLCOMPILESHADERPROC CompileShader; + PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui; + PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample; + PFNGLSCISSORINDEXEDVPROC ScissorIndexedv; + PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei; + PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D; + PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders; + PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData; + PFNGLDELETEBUFFERSPROC DeleteBuffers; + PFNGLUNIFORM1UIPROC Uniform1ui; + PFNGLCLEARBUFFERUIVPROC ClearBufferuiv; + PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect; + PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture; + PFNGLGETDOUBLEVPROC GetDoublev; + PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; + PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf; + PFNGLUNIFORM3DPROC Uniform3d; + PFNGLMINSAMPLESHADINGPROC MinSampleShading; + PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv; + PFNGLGETPOINTERVPROC GetPointerv; + PFNGLUNIFORM1DPROC Uniform1d; + PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv; + PFNGLGETINTERNALFORMATIVPROC GetInternalformativ; + PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv; + PFNGLPOLYGONMODEPROC PolygonMode; + PFNGLUSEPROGRAMPROC UseProgram; + PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation; + PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui; + PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i; + PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv; +} mg_gl_api; + +extern mp_thread_local mg_gl_api* __mgGLAPI; + +#define glVertexAttribP1uiv __mgGLAPI->VertexAttribP1uiv +#define glGetActiveUniformBlockName __mgGLAPI->GetActiveUniformBlockName +#define glQueryCounter __mgGLAPI->QueryCounter +#define glProgramUniformMatrix3x4fv __mgGLAPI->ProgramUniformMatrix3x4fv +#define glFrontFace __mgGLAPI->FrontFace +#define glUniform4uiv __mgGLAPI->Uniform4uiv +#define glVertexAttribFormat __mgGLAPI->VertexAttribFormat +#define glGenTransformFeedbacks __mgGLAPI->GenTransformFeedbacks +#define glGetVertexAttribLdv __mgGLAPI->GetVertexAttribLdv +#define glCullFace __mgGLAPI->CullFace +#define glBufferSubData __mgGLAPI->BufferSubData +#define glRenderbufferStorageMultisample __mgGLAPI->RenderbufferStorageMultisample +#define glFinish __mgGLAPI->Finish +#define glGetVertexAttribIuiv __mgGLAPI->GetVertexAttribIuiv +#define glGetTransformFeedbackVarying __mgGLAPI->GetTransformFeedbackVarying +#define glBindRenderbuffer __mgGLAPI->BindRenderbuffer +#define glFramebufferRenderbuffer __mgGLAPI->FramebufferRenderbuffer +#define glGetCompressedTexImage __mgGLAPI->GetCompressedTexImage +#define glLogicOp __mgGLAPI->LogicOp +#define glVertexAttrib4d __mgGLAPI->VertexAttrib4d +#define glDeleteSamplers __mgGLAPI->DeleteSamplers +#define glSamplerParameteri __mgGLAPI->SamplerParameteri +#define glViewportArrayv __mgGLAPI->ViewportArrayv +#define glDisable __mgGLAPI->Disable +#define glUniform3f __mgGLAPI->Uniform3f +#define glObjectPtrLabel __mgGLAPI->ObjectPtrLabel +#define glVertexAttribI3i __mgGLAPI->VertexAttribI3i +#define glMapBuffer __mgGLAPI->MapBuffer +#define glGetBufferParameteriv __mgGLAPI->GetBufferParameteriv +#define glDeleteSync __mgGLAPI->DeleteSync +#define glProgramUniform1d __mgGLAPI->ProgramUniform1d +#define glVertexAttribL1dv __mgGLAPI->VertexAttribL1dv +#define glFramebufferTexture3D __mgGLAPI->FramebufferTexture3D +#define glVertexAttrib1fv __mgGLAPI->VertexAttrib1fv +#define glVertexAttrib4Niv __mgGLAPI->VertexAttrib4Niv +#define glPrimitiveRestartIndex __mgGLAPI->PrimitiveRestartIndex +#define glEnableVertexAttribArray __mgGLAPI->EnableVertexAttribArray +#define glPatchParameteri __mgGLAPI->PatchParameteri +#define glVertexAttribI4uiv __mgGLAPI->VertexAttribI4uiv +#define glGetActiveAtomicCounterBufferiv __mgGLAPI->GetActiveAtomicCounterBufferiv +#define glProgramUniform4ui __mgGLAPI->ProgramUniform4ui +#define glCompressedTexImage2D __mgGLAPI->CompressedTexImage2D +#define glProgramBinary __mgGLAPI->ProgramBinary +#define glPushDebugGroup __mgGLAPI->PushDebugGroup +#define glBindFragDataLocationIndexed __mgGLAPI->BindFragDataLocationIndexed +#define glGetShaderSource __mgGLAPI->GetShaderSource +#define glEnablei __mgGLAPI->Enablei +#define glGetnUniformuiv __mgGLAPI->GetnUniformuiv +#define glUniform3i __mgGLAPI->Uniform3i +#define glIsProgramPipeline __mgGLAPI->IsProgramPipeline +#define glGetProgramStageiv __mgGLAPI->GetProgramStageiv +#define glBindTexture __mgGLAPI->BindTexture +#define glBindBufferRange __mgGLAPI->BindBufferRange +#define glMemoryBarrierByRegion __mgGLAPI->MemoryBarrierByRegion +#define glBindProgramPipeline __mgGLAPI->BindProgramPipeline +#define glProgramUniformMatrix4x2dv __mgGLAPI->ProgramUniformMatrix4x2dv +#define glBeginQueryIndexed __mgGLAPI->BeginQueryIndexed +#define glPolygonOffset __mgGLAPI->PolygonOffset +#define glProgramUniform4d __mgGLAPI->ProgramUniform4d +#define glGetString __mgGLAPI->GetString +#define glVertexAttrib4ubv __mgGLAPI->VertexAttrib4ubv +#define glRenderbufferStorage __mgGLAPI->RenderbufferStorage +#define glInvalidateTexImage __mgGLAPI->InvalidateTexImage +#define glProgramUniform2f __mgGLAPI->ProgramUniform2f +#define glStencilMask __mgGLAPI->StencilMask +#define glVertexAttribIPointer __mgGLAPI->VertexAttribIPointer +#define glGetProgramResourceLocation __mgGLAPI->GetProgramResourceLocation +#define glTransformFeedbackVaryings __mgGLAPI->TransformFeedbackVaryings +#define glTextureView __mgGLAPI->TextureView +#define glBlendEquation __mgGLAPI->BlendEquation +#define glUniform3iv __mgGLAPI->Uniform3iv +#define glVertexAttribI1iv __mgGLAPI->VertexAttribI1iv +#define glGetUniformBlockIndex __mgGLAPI->GetUniformBlockIndex +#define glVertexAttrib4usv __mgGLAPI->VertexAttrib4usv +#define glDrawElementsInstanced __mgGLAPI->DrawElementsInstanced +#define glMultiDrawElementsBaseVertex __mgGLAPI->MultiDrawElementsBaseVertex +#define glProgramUniformMatrix4dv __mgGLAPI->ProgramUniformMatrix4dv +#define glClearStencil __mgGLAPI->ClearStencil +#define glVertexAttribI1i __mgGLAPI->VertexAttribI1i +#define glCompressedTexSubImage2D __mgGLAPI->CompressedTexSubImage2D +#define glDeleteProgramPipelines __mgGLAPI->DeleteProgramPipelines +#define glPointParameterfv __mgGLAPI->PointParameterfv +#define glSamplerParameterIuiv __mgGLAPI->SamplerParameterIuiv +#define glGetFloati_v __mgGLAPI->GetFloati_v +#define glGetnUniformiv __mgGLAPI->GetnUniformiv +#define glDetachShader __mgGLAPI->DetachShader +#define glPixelStorei __mgGLAPI->PixelStorei +#define glProgramUniform1f __mgGLAPI->ProgramUniform1f +#define glGetQueryObjectiv __mgGLAPI->GetQueryObjectiv +#define glDrawTransformFeedbackStream __mgGLAPI->DrawTransformFeedbackStream +#define glDeleteQueries __mgGLAPI->DeleteQueries +#define glClearBufferData __mgGLAPI->ClearBufferData +#define glClearBufferfi __mgGLAPI->ClearBufferfi +#define glProgramUniformMatrix4fv __mgGLAPI->ProgramUniformMatrix4fv +#define glStencilFunc __mgGLAPI->StencilFunc +#define glReadnPixels __mgGLAPI->ReadnPixels +#define glFramebufferTexture2D __mgGLAPI->FramebufferTexture2D +#define glDrawArraysInstanced __mgGLAPI->DrawArraysInstanced +#define glGetActiveAttrib __mgGLAPI->GetActiveAttrib +#define glGenerateMipmap __mgGLAPI->GenerateMipmap +#define glDepthMask __mgGLAPI->DepthMask +#define glVertexBindingDivisor __mgGLAPI->VertexBindingDivisor +#define glFenceSync __mgGLAPI->FenceSync +#define glDrawArrays __mgGLAPI->DrawArrays +#define glVertexAttribIFormat __mgGLAPI->VertexAttribIFormat +#define glTexParameteriv __mgGLAPI->TexParameteriv +#define glBlendFunci __mgGLAPI->BlendFunci +#define glGetVertexAttribdv __mgGLAPI->GetVertexAttribdv +#define glGetUniformuiv __mgGLAPI->GetUniformuiv +#define glGetUniformLocation __mgGLAPI->GetUniformLocation +#define glUniform4iv __mgGLAPI->Uniform4iv +#define glUniform2i __mgGLAPI->Uniform2i +#define glDepthRangeIndexed __mgGLAPI->DepthRangeIndexed +#define glDepthRangeArrayv __mgGLAPI->DepthRangeArrayv +#define glIsTexture __mgGLAPI->IsTexture +#define glProgramUniform2fv __mgGLAPI->ProgramUniform2fv +#define glUniformMatrix2x3fv __mgGLAPI->UniformMatrix2x3fv +#define glGetActiveUniformName __mgGLAPI->GetActiveUniformName +#define glGetQueryObjectuiv __mgGLAPI->GetQueryObjectuiv +#define glPopDebugGroup __mgGLAPI->PopDebugGroup +#define glVertexAttribP2uiv __mgGLAPI->VertexAttribP2uiv +#define glGetActiveUniformsiv __mgGLAPI->GetActiveUniformsiv +#define glMultiDrawArraysIndirect __mgGLAPI->MultiDrawArraysIndirect +#define glUniformMatrix2dv __mgGLAPI->UniformMatrix2dv +#define glUniform4fv __mgGLAPI->Uniform4fv +#define glTexBuffer __mgGLAPI->TexBuffer +#define glVertexAttrib3s __mgGLAPI->VertexAttrib3s +#define glPointParameteri __mgGLAPI->PointParameteri +#define glIsFramebuffer __mgGLAPI->IsFramebuffer +#define glGenTextures __mgGLAPI->GenTextures +#define glUniformMatrix3x2fv __mgGLAPI->UniformMatrix3x2fv +#define glShaderBinary __mgGLAPI->ShaderBinary +#define glUniformMatrix4x3dv __mgGLAPI->UniformMatrix4x3dv +#define glTexStorage3D __mgGLAPI->TexStorage3D +#define glVertexAttrib4Nubv __mgGLAPI->VertexAttrib4Nubv +#define glFramebufferParameteri __mgGLAPI->FramebufferParameteri +#define glProgramUniformMatrix2x3fv __mgGLAPI->ProgramUniformMatrix2x3fv +#define glViewport __mgGLAPI->Viewport +#define glProgramUniform2uiv __mgGLAPI->ProgramUniform2uiv +#define glBeginConditionalRender __mgGLAPI->BeginConditionalRender +#define glProgramUniform4iv __mgGLAPI->ProgramUniform4iv +#define glGetActiveUniformBlockiv __mgGLAPI->GetActiveUniformBlockiv +#define glBeginQuery __mgGLAPI->BeginQuery +#define glBindTransformFeedback __mgGLAPI->BindTransformFeedback +#define glVertexAttrib1d __mgGLAPI->VertexAttrib1d +#define glDeleteProgram __mgGLAPI->DeleteProgram +#define glDrawTransformFeedbackInstanced __mgGLAPI->DrawTransformFeedbackInstanced +#define glGetSamplerParameteriv __mgGLAPI->GetSamplerParameteriv +#define glVertexAttrib4Nsv __mgGLAPI->VertexAttrib4Nsv +#define glTexParameterIiv __mgGLAPI->TexParameterIiv +#define glPrimitiveBoundingBox __mgGLAPI->PrimitiveBoundingBox +#define glProgramUniformMatrix3fv __mgGLAPI->ProgramUniformMatrix3fv +#define glProgramUniform1fv __mgGLAPI->ProgramUniform1fv +#define glVertexAttribI2iv __mgGLAPI->VertexAttribI2iv +#define glProgramUniform3uiv __mgGLAPI->ProgramUniform3uiv +#define glGetTexParameterIiv __mgGLAPI->GetTexParameterIiv +#define glFramebufferTexture1D __mgGLAPI->FramebufferTexture1D +#define glCreateShaderProgramv __mgGLAPI->CreateShaderProgramv +#define glPointParameteriv __mgGLAPI->PointParameteriv +#define glUnmapBuffer __mgGLAPI->UnmapBuffer +#define glGetActiveUniform __mgGLAPI->GetActiveUniform +#define glUniform1fv __mgGLAPI->Uniform1fv +#define glWaitSync __mgGLAPI->WaitSync +#define glUniform4dv __mgGLAPI->Uniform4dv +#define glTexImage1D __mgGLAPI->TexImage1D +#define glCopyTexSubImage3D __mgGLAPI->CopyTexSubImage3D +#define glGetShaderInfoLog __mgGLAPI->GetShaderInfoLog +#define glReadPixels __mgGLAPI->ReadPixels +#define glFramebufferTextureLayer __mgGLAPI->FramebufferTextureLayer +#define glInvalidateBufferData __mgGLAPI->InvalidateBufferData +#define glUniformBlockBinding __mgGLAPI->UniformBlockBinding +#define glDrawRangeElementsBaseVertex __mgGLAPI->DrawRangeElementsBaseVertex +#define glUniform2dv __mgGLAPI->Uniform2dv +#define glMultiDrawArrays __mgGLAPI->MultiDrawArrays +#define glVertexAttribL3dv __mgGLAPI->VertexAttribL3dv +#define glShaderSource __mgGLAPI->ShaderSource +#define glGetShaderPrecisionFormat __mgGLAPI->GetShaderPrecisionFormat +#define glGetProgramPipelineiv __mgGLAPI->GetProgramPipelineiv +#define glVertexAttribP4uiv __mgGLAPI->VertexAttribP4uiv +#define glTexParameterfv __mgGLAPI->TexParameterfv +#define glProgramUniform3ui __mgGLAPI->ProgramUniform3ui +#define glUniform2ui __mgGLAPI->Uniform2ui +#define glVertexAttribL3d __mgGLAPI->VertexAttribL3d +#define glDispatchCompute __mgGLAPI->DispatchCompute +#define glProgramUniform1i __mgGLAPI->ProgramUniform1i +#define glDrawBuffer __mgGLAPI->DrawBuffer +#define glGetProgramBinary __mgGLAPI->GetProgramBinary +#define glTexStorage2DMultisample __mgGLAPI->TexStorage2DMultisample +#define glBindBuffer __mgGLAPI->BindBuffer +#define glPixelStoref __mgGLAPI->PixelStoref +#define glCreateProgram __mgGLAPI->CreateProgram +#define glVertexAttrib2f __mgGLAPI->VertexAttrib2f +#define glReleaseShaderCompiler __mgGLAPI->ReleaseShaderCompiler +#define glProgramUniform3iv __mgGLAPI->ProgramUniform3iv +#define glProgramUniform4i __mgGLAPI->ProgramUniform4i +#define glUniform3ui __mgGLAPI->Uniform3ui +#define glIsBuffer __mgGLAPI->IsBuffer +#define glActiveTexture __mgGLAPI->ActiveTexture +#define glUniform4i __mgGLAPI->Uniform4i +#define glVertexAttrib4Nbv __mgGLAPI->VertexAttrib4Nbv +#define glHint __mgGLAPI->Hint +#define glTexImage2D __mgGLAPI->TexImage2D +#define glDepthRange __mgGLAPI->DepthRange +#define glTexSubImage1D __mgGLAPI->TexSubImage1D +#define glGetDoublei_v __mgGLAPI->GetDoublei_v +#define glCopyTexSubImage2D __mgGLAPI->CopyTexSubImage2D +#define glDeleteRenderbuffers __mgGLAPI->DeleteRenderbuffers +#define glDisablei __mgGLAPI->Disablei +#define glDeleteShader __mgGLAPI->DeleteShader +#define glCompressedTexSubImage3D __mgGLAPI->CompressedTexSubImage3D +#define glUniformMatrix2x3dv __mgGLAPI->UniformMatrix2x3dv +#define glProgramUniform1dv __mgGLAPI->ProgramUniform1dv +#define glEndQuery __mgGLAPI->EndQuery +#define glProgramUniformMatrix4x3fv __mgGLAPI->ProgramUniformMatrix4x3fv +#define glStencilOp __mgGLAPI->StencilOp +#define glGenProgramPipelines __mgGLAPI->GenProgramPipelines +#define glGetBufferSubData __mgGLAPI->GetBufferSubData +#define glUniform2d __mgGLAPI->Uniform2d +#define glGetIntegeri_v __mgGLAPI->GetIntegeri_v +#define glBlendFunc __mgGLAPI->BlendFunc +#define glProgramUniform1ui __mgGLAPI->ProgramUniform1ui +#define glGetVertexAttribfv __mgGLAPI->GetVertexAttribfv +#define glProgramUniform1iv __mgGLAPI->ProgramUniform1iv +#define glGetRenderbufferParameteriv __mgGLAPI->GetRenderbufferParameteriv +#define glVertexAttribI3ui __mgGLAPI->VertexAttribI3ui +#define glGetActiveSubroutineUniformName __mgGLAPI->GetActiveSubroutineUniformName +#define glVertexAttrib4Nuiv __mgGLAPI->VertexAttrib4Nuiv +#define glVertexAttribLPointer __mgGLAPI->VertexAttribLPointer +#define glGetQueryiv __mgGLAPI->GetQueryiv +#define glGenSamplers __mgGLAPI->GenSamplers +#define glGetShaderiv __mgGLAPI->GetShaderiv +#define glGetVertexAttribiv __mgGLAPI->GetVertexAttribiv +#define glShaderStorageBlockBinding __mgGLAPI->ShaderStorageBlockBinding +#define glGetTexLevelParameterfv __mgGLAPI->GetTexLevelParameterfv +#define glGetQueryIndexediv __mgGLAPI->GetQueryIndexediv +#define glVertexAttrib3f __mgGLAPI->VertexAttrib3f +#define glProgramParameteri __mgGLAPI->ProgramParameteri +#define glGetnUniformfv __mgGLAPI->GetnUniformfv +#define glIsShader __mgGLAPI->IsShader +#define glBindFragDataLocation __mgGLAPI->BindFragDataLocation +#define glProgramUniform4dv __mgGLAPI->ProgramUniform4dv +#define glUniform2fv __mgGLAPI->Uniform2fv +#define glProgramUniform3dv __mgGLAPI->ProgramUniform3dv +#define glViewportIndexedfv __mgGLAPI->ViewportIndexedfv +#define glDebugMessageCallback __mgGLAPI->DebugMessageCallback +#define glVertexAttrib2d __mgGLAPI->VertexAttrib2d +#define glGetVertexAttribPointerv __mgGLAPI->GetVertexAttribPointerv +#define glActiveShaderProgram __mgGLAPI->ActiveShaderProgram +#define glUniformMatrix4x3fv __mgGLAPI->UniformMatrix4x3fv +#define glDrawTransformFeedbackStreamInstanced __mgGLAPI->DrawTransformFeedbackStreamInstanced +#define glGetTexLevelParameteriv __mgGLAPI->GetTexLevelParameteriv +#define glUniformSubroutinesuiv __mgGLAPI->UniformSubroutinesuiv +#define glUniform3uiv __mgGLAPI->Uniform3uiv +#define glScissorIndexed __mgGLAPI->ScissorIndexed +#define glIsProgram __mgGLAPI->IsProgram +#define glProgramUniform4f __mgGLAPI->ProgramUniform4f +#define glProgramUniformMatrix3dv __mgGLAPI->ProgramUniformMatrix3dv +#define glVertexAttribI4sv __mgGLAPI->VertexAttribI4sv +#define glDepthRangef __mgGLAPI->DepthRangef +#define glUseProgramStages __mgGLAPI->UseProgramStages +#define glGenVertexArrays __mgGLAPI->GenVertexArrays +#define glGetProgramPipelineInfoLog __mgGLAPI->GetProgramPipelineInfoLog +#define glVertexAttrib4s __mgGLAPI->VertexAttrib4s +#define glDrawTransformFeedback __mgGLAPI->DrawTransformFeedback +#define glReadBuffer __mgGLAPI->ReadBuffer +#define glBlendColor __mgGLAPI->BlendColor +#define glIsSync __mgGLAPI->IsSync +#define glGetBooleanv __mgGLAPI->GetBooleanv +#define glGetBufferParameteri64v __mgGLAPI->GetBufferParameteri64v +#define glClearBufferfv __mgGLAPI->ClearBufferfv +#define glDrawElementsInstancedBaseVertexBaseInstance __mgGLAPI->DrawElementsInstancedBaseVertexBaseInstance +#define glGetBooleani_v __mgGLAPI->GetBooleani_v +#define glIsEnabledi __mgGLAPI->IsEnabledi +#define glCreateShader __mgGLAPI->CreateShader +#define glGetProgramResourceLocationIndex __mgGLAPI->GetProgramResourceLocationIndex +#define glBeginTransformFeedback __mgGLAPI->BeginTransformFeedback +#define glClearBufferSubData __mgGLAPI->ClearBufferSubData +#define glTexParameterIuiv __mgGLAPI->TexParameterIuiv +#define glUniform2uiv __mgGLAPI->Uniform2uiv +#define glIsSampler __mgGLAPI->IsSampler +#define glVertexAttrib4sv __mgGLAPI->VertexAttrib4sv +#define glClearDepthf __mgGLAPI->ClearDepthf +#define glUniformMatrix4dv __mgGLAPI->UniformMatrix4dv +#define glDrawRangeElements __mgGLAPI->DrawRangeElements +#define glAttachShader __mgGLAPI->AttachShader +#define glVertexAttribL4d __mgGLAPI->VertexAttribL4d +#define glTexImage3D __mgGLAPI->TexImage3D +#define glGetQueryObjecti64v __mgGLAPI->GetQueryObjecti64v +#define glProgramUniform2d __mgGLAPI->ProgramUniform2d +#define glIsVertexArray __mgGLAPI->IsVertexArray +#define glVertexAttrib2fv __mgGLAPI->VertexAttrib2fv +#define glUniformMatrix2x4fv __mgGLAPI->UniformMatrix2x4fv +#define glTexStorage1D __mgGLAPI->TexStorage1D +#define glBlendFuncSeparate __mgGLAPI->BlendFuncSeparate +#define glDrawArraysInstancedBaseInstance __mgGLAPI->DrawArraysInstancedBaseInstance +#define glInvalidateFramebuffer __mgGLAPI->InvalidateFramebuffer +#define glVertexAttribI2ui __mgGLAPI->VertexAttribI2ui +#define glGetUniformIndices __mgGLAPI->GetUniformIndices +#define glVertexAttribL1d __mgGLAPI->VertexAttribL1d +#define glBindFramebuffer __mgGLAPI->BindFramebuffer +#define glVertexAttrib2s __mgGLAPI->VertexAttrib2s +#define glUniformMatrix4fv __mgGLAPI->UniformMatrix4fv +#define glColorMaski __mgGLAPI->ColorMaski +#define glGetProgramInfoLog __mgGLAPI->GetProgramInfoLog +#define glMultiDrawElementsIndirect __mgGLAPI->MultiDrawElementsIndirect +#define glUniformMatrix3x4dv __mgGLAPI->UniformMatrix3x4dv +#define glGetObjectLabel __mgGLAPI->GetObjectLabel +#define glBlendEquationi __mgGLAPI->BlendEquationi +#define glUniform3dv __mgGLAPI->Uniform3dv +#define glGetInternalformati64v __mgGLAPI->GetInternalformati64v +#define glGetObjectPtrLabel __mgGLAPI->GetObjectPtrLabel +#define glProgramUniform2iv __mgGLAPI->ProgramUniform2iv +#define glGetIntegerv __mgGLAPI->GetIntegerv +#define glBlendBarrier __mgGLAPI->BlendBarrier +#define glUniform2f __mgGLAPI->Uniform2f +#define glScissor __mgGLAPI->Scissor +#define glGetAttribLocation __mgGLAPI->GetAttribLocation +#define glUniform2iv __mgGLAPI->Uniform2iv +#define glUniform4f __mgGLAPI->Uniform4f +#define glVertexAttribL2dv __mgGLAPI->VertexAttribL2dv +#define glInvalidateTexSubImage __mgGLAPI->InvalidateTexSubImage +#define glBindVertexArray __mgGLAPI->BindVertexArray +#define glClientWaitSync __mgGLAPI->ClientWaitSync +#define glGenFramebuffers __mgGLAPI->GenFramebuffers +#define glScissorArrayv __mgGLAPI->ScissorArrayv +#define glProgramUniform2i __mgGLAPI->ProgramUniform2i +#define glVertexAttrib4Nusv __mgGLAPI->VertexAttrib4Nusv +#define glGetSynciv __mgGLAPI->GetSynciv +#define glDrawArraysIndirect __mgGLAPI->DrawArraysIndirect +#define glVertexAttribLFormat __mgGLAPI->VertexAttribLFormat +#define glSamplerParameterIiv __mgGLAPI->SamplerParameterIiv +#define glVertexAttribI4usv __mgGLAPI->VertexAttribI4usv +#define glProgramUniform3f __mgGLAPI->ProgramUniform3f +#define glBufferData __mgGLAPI->BufferData +#define glUniform1f __mgGLAPI->Uniform1f +#define glGetFragDataIndex __mgGLAPI->GetFragDataIndex +#define glVertexAttribP4ui __mgGLAPI->VertexAttribP4ui +#define glProgramUniformMatrix4x3dv __mgGLAPI->ProgramUniformMatrix4x3dv +#define glIsEnabled __mgGLAPI->IsEnabled +#define glVertexAttrib4fv __mgGLAPI->VertexAttrib4fv +#define glBlitFramebuffer __mgGLAPI->BlitFramebuffer +#define glProgramUniform4uiv __mgGLAPI->ProgramUniform4uiv +#define glDebugMessageInsert __mgGLAPI->DebugMessageInsert +#define glGenRenderbuffers __mgGLAPI->GenRenderbuffers +#define glCompressedTexImage1D __mgGLAPI->CompressedTexImage1D +#define glGetQueryObjectui64v __mgGLAPI->GetQueryObjectui64v +#define glVertexAttrib4uiv __mgGLAPI->VertexAttrib4uiv +#define glVertexAttribI1ui __mgGLAPI->VertexAttribI1ui +#define glProgramUniformMatrix2x4dv __mgGLAPI->ProgramUniformMatrix2x4dv +#define glCopyBufferSubData __mgGLAPI->CopyBufferSubData +#define glPauseTransformFeedback __mgGLAPI->PauseTransformFeedback +#define glStencilFuncSeparate __mgGLAPI->StencilFuncSeparate +#define glGetTexParameterIuiv __mgGLAPI->GetTexParameterIuiv +#define glTexSubImage2D __mgGLAPI->TexSubImage2D +#define glUniform1i __mgGLAPI->Uniform1i +#define glVertexAttribI4bv __mgGLAPI->VertexAttribI4bv +#define glVertexAttribI4ui __mgGLAPI->VertexAttribI4ui +#define glUniformMatrix3x4fv __mgGLAPI->UniformMatrix3x4fv +#define glVertexAttrib2sv __mgGLAPI->VertexAttrib2sv +#define glSampleCoverage __mgGLAPI->SampleCoverage +#define glUniformMatrix4x2fv __mgGLAPI->UniformMatrix4x2fv +#define glGenBuffers __mgGLAPI->GenBuffers +#define glEndQueryIndexed __mgGLAPI->EndQueryIndexed +#define glCompressedTexImage3D __mgGLAPI->CompressedTexImage3D +#define glTexImage2DMultisample __mgGLAPI->TexImage2DMultisample +#define glGetProgramResourceiv __mgGLAPI->GetProgramResourceiv +#define glGetError __mgGLAPI->GetError +#define glColorMask __mgGLAPI->ColorMask +#define glVertexAttribP3uiv __mgGLAPI->VertexAttribP3uiv +#define glGetFragDataLocation __mgGLAPI->GetFragDataLocation +#define glVertexAttrib3sv __mgGLAPI->VertexAttrib3sv +#define glTexParameterf __mgGLAPI->TexParameterf +#define glGetFramebufferAttachmentParameteriv __mgGLAPI->GetFramebufferAttachmentParameteriv +#define glClearBufferiv __mgGLAPI->ClearBufferiv +#define glGetUniformfv __mgGLAPI->GetUniformfv +#define glBlendEquationSeparatei __mgGLAPI->BlendEquationSeparatei +#define glGetDebugMessageLog __mgGLAPI->GetDebugMessageLog +#define glCopyTexSubImage1D __mgGLAPI->CopyTexSubImage1D +#define glVertexAttribI3uiv __mgGLAPI->VertexAttribI3uiv +#define glDeleteFramebuffers __mgGLAPI->DeleteFramebuffers +#define glSamplerParameteriv __mgGLAPI->SamplerParameteriv +#define glGetProgramResourceIndex __mgGLAPI->GetProgramResourceIndex +#define glCopyTexImage2D __mgGLAPI->CopyTexImage2D +#define glVertexAttrib3fv __mgGLAPI->VertexAttrib3fv +#define glGetGraphicsResetStatus __mgGLAPI->GetGraphicsResetStatus +#define glTexSubImage3D __mgGLAPI->TexSubImage3D +#define glProgramUniformMatrix3x4dv __mgGLAPI->ProgramUniformMatrix3x4dv +#define glGetStringi __mgGLAPI->GetStringi +#define glBindImageTexture __mgGLAPI->BindImageTexture +#define glEndConditionalRender __mgGLAPI->EndConditionalRender +#define glVertexAttribL2d __mgGLAPI->VertexAttribL2d +#define glDrawBuffers __mgGLAPI->DrawBuffers +#define glMemoryBarrier __mgGLAPI->MemoryBarrier +#define glTexParameteri __mgGLAPI->TexParameteri +#define glProgramUniformMatrix4x2fv __mgGLAPI->ProgramUniformMatrix4x2fv +#define glDepthFunc __mgGLAPI->DepthFunc +#define glGetProgramInterfaceiv __mgGLAPI->GetProgramInterfaceiv +#define glGetInteger64v __mgGLAPI->GetInteger64v +#define glPointSize __mgGLAPI->PointSize +#define glLinkProgram __mgGLAPI->LinkProgram +#define glFlushMappedBufferRange __mgGLAPI->FlushMappedBufferRange +#define glVertexAttribI2i __mgGLAPI->VertexAttribI2i +#define glGetFloatv __mgGLAPI->GetFloatv +#define glVertexAttribI4iv __mgGLAPI->VertexAttribI4iv +#define glInvalidateBufferSubData __mgGLAPI->InvalidateBufferSubData +#define glGetProgramiv __mgGLAPI->GetProgramiv +#define glDrawElementsIndirect __mgGLAPI->DrawElementsIndirect +#define glVertexAttrib3dv __mgGLAPI->VertexAttrib3dv +#define glUniform1dv __mgGLAPI->Uniform1dv +#define glIsQuery __mgGLAPI->IsQuery +#define glVertexAttribI3iv __mgGLAPI->VertexAttribI3iv +#define glEndTransformFeedback __mgGLAPI->EndTransformFeedback +#define glDrawElements __mgGLAPI->DrawElements +#define glGetMultisamplefv __mgGLAPI->GetMultisamplefv +#define glSamplerParameterfv __mgGLAPI->SamplerParameterfv +#define glVertexAttribBinding __mgGLAPI->VertexAttribBinding +#define glVertexAttribP2ui __mgGLAPI->VertexAttribP2ui +#define glUniform4ui __mgGLAPI->Uniform4ui +#define glGetSamplerParameterIiv __mgGLAPI->GetSamplerParameterIiv +#define glGetActiveSubroutineUniformiv __mgGLAPI->GetActiveSubroutineUniformiv +#define glGetUniformSubroutineuiv __mgGLAPI->GetUniformSubroutineuiv +#define glVertexAttribI4i __mgGLAPI->VertexAttribI4i +#define glGetUniformiv __mgGLAPI->GetUniformiv +#define glStencilOpSeparate __mgGLAPI->StencilOpSeparate +#define glDrawElementsBaseVertex __mgGLAPI->DrawElementsBaseVertex +#define glVertexAttribL4dv __mgGLAPI->VertexAttribL4dv +#define glBindSampler __mgGLAPI->BindSampler +#define glGetTexParameterfv __mgGLAPI->GetTexParameterfv +#define glProgramUniform3d __mgGLAPI->ProgramUniform3d +#define glGetInteger64i_v __mgGLAPI->GetInteger64i_v +#define glGetSubroutineIndex __mgGLAPI->GetSubroutineIndex +#define glGetSamplerParameterfv __mgGLAPI->GetSamplerParameterfv +#define glProgramUniformMatrix2x3dv __mgGLAPI->ProgramUniformMatrix2x3dv +#define glDrawElementsInstancedBaseInstance __mgGLAPI->DrawElementsInstancedBaseInstance +#define glTexStorage2D __mgGLAPI->TexStorage2D +#define glProgramUniform3fv __mgGLAPI->ProgramUniform3fv +#define glSampleMaski __mgGLAPI->SampleMaski +#define glPatchParameterfv __mgGLAPI->PatchParameterfv +#define glBindBufferBase __mgGLAPI->BindBufferBase +#define glClear __mgGLAPI->Clear +#define glGetActiveSubroutineName __mgGLAPI->GetActiveSubroutineName +#define glDrawElementsInstancedBaseVertex __mgGLAPI->DrawElementsInstancedBaseVertex +#define glGenQueries __mgGLAPI->GenQueries +#define glUniformMatrix3fv __mgGLAPI->UniformMatrix3fv +#define glGetTexParameteriv __mgGLAPI->GetTexParameteriv +#define glUniformMatrix2fv __mgGLAPI->UniformMatrix2fv +#define glVertexAttrib1dv __mgGLAPI->VertexAttrib1dv +#define glProvokingVertex __mgGLAPI->ProvokingVertex +#define glVertexAttrib3d __mgGLAPI->VertexAttrib3d +#define glVertexAttribI1uiv __mgGLAPI->VertexAttribI1uiv +#define glUniform1uiv __mgGLAPI->Uniform1uiv +#define glVertexAttrib4Nub __mgGLAPI->VertexAttrib4Nub +#define glStencilMaskSeparate __mgGLAPI->StencilMaskSeparate +#define glVertexAttrib2dv __mgGLAPI->VertexAttrib2dv +#define glGetUniformdv __mgGLAPI->GetUniformdv +#define glClampColor __mgGLAPI->ClampColor +#define glIsTransformFeedback __mgGLAPI->IsTransformFeedback +#define glGetFramebufferParameteriv __mgGLAPI->GetFramebufferParameteriv +#define glProgramUniform1uiv __mgGLAPI->ProgramUniform1uiv +#define glVertexAttrib4iv __mgGLAPI->VertexAttrib4iv +#define glIsRenderbuffer __mgGLAPI->IsRenderbuffer +#define glInvalidateSubFramebuffer __mgGLAPI->InvalidateSubFramebuffer +#define glUniform1iv __mgGLAPI->Uniform1iv +#define glUniform3fv __mgGLAPI->Uniform3fv +#define glVertexAttribDivisor __mgGLAPI->VertexAttribDivisor +#define glClearColor __mgGLAPI->ClearColor +#define glDeleteVertexArrays __mgGLAPI->DeleteVertexArrays +#define glProgramUniform2dv __mgGLAPI->ProgramUniform2dv +#define glVertexAttrib1sv __mgGLAPI->VertexAttrib1sv +#define glUniform4d __mgGLAPI->Uniform4d +#define glGetTexImage __mgGLAPI->GetTexImage +#define glCopyTexImage1D __mgGLAPI->CopyTexImage1D +#define glObjectLabel __mgGLAPI->ObjectLabel +#define glTexBufferRange __mgGLAPI->TexBufferRange +#define glDebugMessageControl __mgGLAPI->DebugMessageControl +#define glProgramUniform4fv __mgGLAPI->ProgramUniform4fv +#define glBlendEquationSeparate __mgGLAPI->BlendEquationSeparate +#define glValidateProgramPipeline __mgGLAPI->ValidateProgramPipeline +#define glVertexAttribP1ui __mgGLAPI->VertexAttribP1ui +#define glCheckFramebufferStatus __mgGLAPI->CheckFramebufferStatus +#define glProgramUniformMatrix2x4fv __mgGLAPI->ProgramUniformMatrix2x4fv +#define glSamplerParameterf __mgGLAPI->SamplerParameterf +#define glBindVertexBuffer __mgGLAPI->BindVertexBuffer +#define glGetBufferPointerv __mgGLAPI->GetBufferPointerv +#define glValidateProgram __mgGLAPI->ValidateProgram +#define glTexStorage3DMultisample __mgGLAPI->TexStorage3DMultisample +#define glResumeTransformFeedback __mgGLAPI->ResumeTransformFeedback +#define glProgramUniformMatrix3x2fv __mgGLAPI->ProgramUniformMatrix3x2fv +#define glClearDepth __mgGLAPI->ClearDepth +#define glVertexAttribI2uiv __mgGLAPI->VertexAttribI2uiv +#define glGetSubroutineUniformLocation __mgGLAPI->GetSubroutineUniformLocation +#define glLineWidth __mgGLAPI->LineWidth +#define glVertexAttrib1s __mgGLAPI->VertexAttrib1s +#define glPointParameterf __mgGLAPI->PointParameterf +#define glDeleteTextures __mgGLAPI->DeleteTextures +#define glVertexAttribI4ubv __mgGLAPI->VertexAttribI4ubv +#define glEnable __mgGLAPI->Enable +#define glUniformMatrix2x4dv __mgGLAPI->UniformMatrix2x4dv +#define glVertexAttrib4f __mgGLAPI->VertexAttrib4f +#define glVertexAttrib4dv __mgGLAPI->VertexAttrib4dv +#define glProgramUniformMatrix2dv __mgGLAPI->ProgramUniformMatrix2dv +#define glMapBufferRange __mgGLAPI->MapBufferRange +#define glGetSamplerParameterIuiv __mgGLAPI->GetSamplerParameterIuiv +#define glDeleteTransformFeedbacks __mgGLAPI->DeleteTransformFeedbacks +#define glUniformMatrix3dv __mgGLAPI->UniformMatrix3dv +#define glProgramUniformMatrix2fv __mgGLAPI->ProgramUniformMatrix2fv +#define glGetProgramResourceName __mgGLAPI->GetProgramResourceName +#define glGetVertexAttribIiv __mgGLAPI->GetVertexAttribIiv +#define glMultiDrawElements __mgGLAPI->MultiDrawElements +#define glFlush __mgGLAPI->Flush +#define glVertexAttrib1f __mgGLAPI->VertexAttrib1f +#define glVertexAttribPointer __mgGLAPI->VertexAttribPointer +#define glCompileShader __mgGLAPI->CompileShader +#define glProgramUniform2ui __mgGLAPI->ProgramUniform2ui +#define glTexImage3DMultisample __mgGLAPI->TexImage3DMultisample +#define glScissorIndexedv __mgGLAPI->ScissorIndexedv +#define glBlendFuncSeparatei __mgGLAPI->BlendFuncSeparatei +#define glCompressedTexSubImage1D __mgGLAPI->CompressedTexSubImage1D +#define glGetAttachedShaders __mgGLAPI->GetAttachedShaders +#define glCopyImageSubData __mgGLAPI->CopyImageSubData +#define glDeleteBuffers __mgGLAPI->DeleteBuffers +#define glUniform1ui __mgGLAPI->Uniform1ui +#define glClearBufferuiv __mgGLAPI->ClearBufferuiv +#define glDispatchComputeIndirect __mgGLAPI->DispatchComputeIndirect +#define glFramebufferTexture __mgGLAPI->FramebufferTexture +#define glGetDoublev __mgGLAPI->GetDoublev +#define glDisableVertexAttribArray __mgGLAPI->DisableVertexAttribArray +#define glViewportIndexedf __mgGLAPI->ViewportIndexedf +#define glUniform3d __mgGLAPI->Uniform3d +#define glMinSampleShading __mgGLAPI->MinSampleShading +#define glVertexAttrib4bv __mgGLAPI->VertexAttrib4bv +#define glGetPointerv __mgGLAPI->GetPointerv +#define glUniform1d __mgGLAPI->Uniform1d +#define glProgramUniformMatrix3x2dv __mgGLAPI->ProgramUniformMatrix3x2dv +#define glGetInternalformativ __mgGLAPI->GetInternalformativ +#define glUniformMatrix3x2dv __mgGLAPI->UniformMatrix3x2dv +#define glPolygonMode __mgGLAPI->PolygonMode +#define glUseProgram __mgGLAPI->UseProgram +#define glBindAttribLocation __mgGLAPI->BindAttribLocation +#define glVertexAttribP3ui __mgGLAPI->VertexAttribP3ui +#define glProgramUniform3i __mgGLAPI->ProgramUniform3i +#define glUniformMatrix4x2dv __mgGLAPI->UniformMatrix4x2dv +#endif // __GL_API_H__ diff --git a/src/gl_loader.c b/src/gl_loader.c index b89ab11..57d7ad5 100644 --- a/src/gl_loader.c +++ b/src/gl_loader.c @@ -1,1722 +1,1723 @@ -/******************************************************** -* -* @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; } - +/******************************************************** +* +* @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; } +mg_gl_api* mg_gl_get_api(void) { return(__mgGLAPI); } + diff --git a/src/gl_loader.h b/src/gl_loader.h index 4e91371..039a0ff 100644 --- a/src/gl_loader.h +++ b/src/gl_loader.h @@ -1,22 +1,23 @@ -/******************************************************** -* -* @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__ +/******************************************************** +* +* @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); +mg_gl_api* mg_gl_get_api(void); + +#endif // __GL_LOADER_H__ diff --git a/src/osx_egl_surface.m b/src/osx_egl_surface.m index 6de1019..faa4d30 100644 --- a/src/osx_egl_surface.m +++ b/src/osx_egl_surface.m @@ -33,13 +33,22 @@ typedef struct mg_egl_surface void mg_egl_surface_destroy(mg_surface_data* interface) { mg_egl_surface* surface = (mg_egl_surface*)interface; + + if(&surface->api == mg_gl_get_api()) + { + mg_gl_select_api(0); + } + if(eglGetCurrentContext() == surface->eglContext) + { + eglMakeCurrent(surface->eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + } + eglDestroyContext(surface->eglDisplay, surface->eglContext); + eglDestroySurface(surface->eglDisplay, surface->eglSurface); + @autoreleasepool { [surface->layer release]; } - ////////////////////////////////////////////////// - //TODO - ////////////////////////////////////////////////// free(surface); } diff --git a/src/win32_egl_surface.c b/src/win32_egl_surface.c index 1e5663f..d7b2fd9 100644 --- a/src/win32_egl_surface.c +++ b/src/win32_egl_surface.c @@ -35,9 +35,17 @@ void mg_egl_surface_destroy(mg_surface_data* interface) { mg_egl_surface* surface = (mg_egl_surface*)interface; - ////////////////////////////////////////////////// - //TODO - ////////////////////////////////////////////////// + if(&surface->api == mg_gl_get_api()) + { + mg_gl_select_api(0); + } + if(eglGetCurrentContext() == surface->eglContext) + { + eglMakeCurrent(surface->eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + } + eglDestroyContext(surface->eglDisplay, surface->eglContext); + eglDestroySurface(surface->eglDisplay, surface->eglSurface); + DestroyWindow(surface->hWnd); free(surface); } diff --git a/todo.txt b/todo.txt index c5e27e5..8150fd1 100644 --- a/todo.txt +++ b/todo.txt @@ -25,7 +25,6 @@ Overview [/] Keep dummy window/dummy context around for gl context creation, and don't reload wgl functions every time [!] Sort out gles contents scaling for high dpi on osx -[!] Properly destroy egl surfaces [!] win32 surfaces: only register surface child window once? [!] Make linking with libEGL optional, even if EGL backend is compiled in milepost? [!] Bundle examples with their own resources?? (e.g. avoiding clashes in metal libs files in bin directory)