From d01dc832fbbc7b1e720476178a2c49a737717e0f Mon Sep 17 00:00:00 2001 From: Martin Fouilleul Date: Thu, 3 Aug 2023 11:34:19 +0200 Subject: [PATCH] [gles] Support for exposing GLES surfaces to orca apps - update gles surface example - add mp_dispatch_on_main_thread_sync() to osx threads - add /experimental:c11atomics to glesTriangle build.bat - mp_dispatch_on_main_thread_sync: win32 impl - move mp_dispatch_on_main_thread_sync() on app layer - configure dlmalloc to not assume contiguity. This allows us to reserve blocks on our end without trashing malloc-owned zones. This way we can add a block to store GL static strings when needed. - implement deselect interface - Log an error when an OpenGL function is called while no OpenGL API is selected, or if that function is not part of the selected API - avoid dispatching calls to image or canvas API if surface is not selected. However, we could later allow it and temporarily select the surface _on behalf of the user_. - Adding support for format string and optional parameters in assert macros --- .gitignore | 3 +- examples/triangleGLES/build.bat | 2 +- examples/triangleGLES/main.c | 19 +- scripts/glapi.py | 105 +- src/egl_surface.c | 14 +- src/gl_api.h | 2245 +++--- src/gl_loader.c | 11724 ++++++++++++++++++++++++------ src/gl_loader.h | 46 +- src/graphics_surface.c | 51 +- src/milepost.c | 1 + src/mp_app.h | 8 + src/osx_app.m | 20 +- src/platform/orca_malloc.c | 2 +- src/platform/win32_thread.c | 5 +- src/util/macro_helpers.h | 20 + src/wgl_surface.c | 1 + src/win32_app.c | 17 + src/win32_app.h | 5 + 18 files changed, 10832 insertions(+), 3456 deletions(-) diff --git a/.gitignore b/.gitignore index 1544a0f..4efd5e4 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ build *.sln Debug/* -src/glsl_shaders.h \ No newline at end of file +src/glsl_shaders.h +scripts/__pycache__ \ No newline at end of file diff --git a/examples/triangleGLES/build.bat b/examples/triangleGLES/build.bat index fbd4458..deab4e6 100644 --- a/examples/triangleGLES/build.bat +++ b/examples/triangleGLES/build.bat @@ -1,3 +1,3 @@ set INCLUDES=/I ..\..\src /I ..\..\src\util /I ..\..\src\platform /I ../../ext /I ../../ext/angle_headers -cl /we4013 /Zi /Zc:preprocessor /std:c11 %INCLUDES% main.c /link /LIBPATH:../../bin milepost.dll.lib /out:../../bin/example_gles_triangle.exe +cl /we4013 /Zi /Zc:preprocessor /std:c11 /experimental:c11atomics %INCLUDES% main.c /link /LIBPATH:../../bin milepost.dll.lib /out:../../bin/example_gles_triangle.exe diff --git a/examples/triangleGLES/main.c b/examples/triangleGLES/main.c index 692aad9..d66bfe2 100644 --- a/examples/triangleGLES/main.c +++ b/examples/triangleGLES/main.c @@ -6,6 +6,7 @@ * @revision: * *****************************************************************/ +#include #include #include @@ -15,8 +16,6 @@ #define MG_INCLUDE_GL_API 1 #include"milepost.h" -#define LOG_SUBSYSTEM "Main" - unsigned int program; const char* vshaderSource = @@ -60,15 +59,13 @@ void compile_shader(GLuint shader, const char* source) int main() { - LogLevel(LOG_LEVEL_DEBUG); - mp_init(); mp_rect rect = {.x = 100, .y = 100, .w = 800, .h = 600}; mp_window window = mp_window_create(rect, "test", 0); //NOTE: create surface - mg_surface surface = mg_surface_create_for_window(window, MG_BACKEND_GLES); + mg_surface surface = mg_surface_create_for_window(window, MG_GLES); mg_surface_prepare(surface); //NOTE: init shader and gl state @@ -115,10 +112,10 @@ int main() while(!mp_should_quit()) { mp_pump_events(0); - mp_event event = {0}; - while(mp_next_event(&event)) + mp_event* event = 0; + while((event = mp_next_event(mem_scratch())) != 0) { - switch(event.type) + switch(event->type) { case MP_EVENT_WINDOW_CLOSE: { @@ -130,7 +127,7 @@ int main() } } - mg_surface_prepare(surface); +// mg_surface_prepare(surface); glClearColor(0.3, 0.3, 1, 1); glClear(GL_COLOR_BUFFER_BIT); @@ -156,8 +153,12 @@ int main() glDrawArrays(GL_TRIANGLES, 0, 3); mg_surface_present(surface); + + mem_arena_clear(mem_scratch()); } + mg_surface_destroy(surface); + mp_window_destroy(window); mp_terminate(); return(0); diff --git a/scripts/glapi.py b/scripts/glapi.py index 0b28597..60c5d42 100644 --- a/scripts/glapi.py +++ b/scripts/glapi.py @@ -42,13 +42,21 @@ def gather_api(tree, api, version): tree = et.parse(args.spec) +# put all GL commands in a dict +commands = dict() +commandsSpec = tree.find('./commands') +for command in commandsSpec.iter('command'): + name = command.find('proto/name') + commands[name.text] = command + +#gather command names per API gl41 = gather_api(tree, 'gl', 4.1) gl43 = gather_api(tree, 'gl', 4.3) gl44 = gather_api(tree, 'gl', 4.4) -gles30 = gather_api(tree, 'gles2', 3.1) -gles31 = gather_api(tree, 'gles2', 3.2) +gles31 = gather_api(tree, 'gles2', 3.1) +gles32 = gather_api(tree, 'gles2', 3.2) -glall = list(set().union(gl41, gl43, gl44, gles30, gles31)) +glall = list(set().union(gl41, gl43, gl44, gles31, gles32)) #--------------------------------------------------------------- @@ -93,6 +101,8 @@ f.write('#include"GLES3/gl32.h"\n\n') # generate interface struct f.write('typedef struct mg_gl_api\n{\n') +f.write(' const char* name;\n') + for func in glall: f.write('\t' + 'PFN' + func.upper() + 'PROC ' + remove_prefix(func, 'gl') + ';\n') @@ -129,7 +139,6 @@ f.write("void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc);\n\n") f.write("void mg_gl_select_api(mg_gl_api* api);\n\n") - emit_end_guard(f, loaderName) f.close() #--------------------------------------------------------------- @@ -139,10 +148,88 @@ f.close() def emit_loader(f, name, procs): f.write('void mg_gl_load_'+ name +'(mg_gl_api* api, mg_gl_load_proc loadProc)\n') f.write("{\n") - for proc in procs: - f.write('\tapi->' + remove_prefix(proc, 'gl') + ' = loadProc("' + proc + '");\n') + f.write(' api->name = "'+ name +'";\n') + + for proc in glall: + if proc in procs: + f.write(' api->' + remove_prefix(proc, 'gl') + ' = loadProc("' + proc + '");\n') + else: + f.write(' api->' + remove_prefix(proc, 'gl') + ' = mg_' + proc + '_noimpl;\n') + f.write("}\n\n") + +def emit_null_api(f, procs): + + f.write('mg_gl_api __mgGLNoAPI;\n\n') + + for name in procs: + + command = commands.get(name) + if command == None: + print("Couldn't find definition for required command '" + name + "'") + exit(-1) + + proto = command.find("proto") + ptype = proto.find("ptype") + + retType = '' + if proto.text != None: + retType += proto.text + + if ptype != None: + if ptype.text != None: + retType += ptype.text + if ptype.tail != None: + retType += ptype.tail + + retType = retType.strip() + + f.write(retType + ' mg_' + name + '_noimpl(') + + params = command.findall('param') + for i, param in enumerate(params): + + argName = param.find('name').text + + typeNode = param.find('ptype') + typeName = '' + + if param.text != None: + typeName += param.text + + if typeNode != None: + if typeNode.text != None: + typeName += typeNode.text + if typeNode.tail != None: + typeName += typeNode.tail + + typeName = typeName.strip() + + f.write(typeName + ' ' + argName) + + if i < len(params)-1: + f.write(', ') + + f.write(')\n') + f.write('{\n') + f.write(' if(__mgGLAPI == &__mgGLNoAPI)\n') + f.write(' {\n') + f.write(' log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\\n");\n') + f.write(' }\n') + f.write(' else\n') + f.write(' {\n') + f.write(' log_error("'+ name +' is not part of currently selected %s API\\n", __mgGLAPI->name);\n') + f.write(' }\n') + if retType != 'void': + f.write(' return(('+ retType +')0);\n') + f.write('}\n') + + f.write('mg_gl_api __mgGLNoAPI = {\n') + for proc in procs: + f.write(' .' + remove_prefix(proc, 'gl') + ' = mg_' + proc + '_noimpl,\n') + f.write("};\n\n") + f = open(loaderCPath, 'w') emit_doc(f, loaderName, '.c') @@ -150,15 +237,17 @@ emit_doc(f, loaderName, '.c') f.write('#include"' + loaderName + '.h"\n') f.write('#include"platform.h"\n\n') -f.write("mp_thread_local mg_gl_api* __mgGLAPI = 0;\n\n") +f.write("mp_thread_local mg_gl_api* __mgGLAPI = 0;\n") +emit_null_api(f, glall) emit_loader(f, 'gl41', gl41) emit_loader(f, 'gl43', gl43) emit_loader(f, 'gl44', gl44) -emit_loader(f, 'gles30', gles30) emit_loader(f, 'gles31', gles31) +emit_loader(f, 'gles32', gles32) f.write("void mg_gl_select_api(mg_gl_api* api){ __mgGLAPI = api; }\n") +f.write("void mg_gl_deselect_api(){ __mgGLAPI = &__mgGLNoAPI; }\n") f.write("mg_gl_api* mg_gl_get_api(void) { return(__mgGLAPI); }\n\n") f.close() diff --git a/src/egl_surface.c b/src/egl_surface.c index 94795d6..970b2b4 100644 --- a/src/egl_surface.c +++ b/src/egl_surface.c @@ -22,12 +22,12 @@ //TODO: use version hints, once we have all api versions correctly categorized by glapi.py #define MG_GLES_VERSION_MAJOR 3 #define MG_GLES_VERSION_MINOR 0 - #define mg_gl_load_gles mg_gl_load_gles30 + #define mg_gl_load_gles mg_gl_load_gles31 #else #define MG_EGL_PLATFORM_ANGLE_TYPE EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE #define MG_GLES_VERSION_MAJOR 3 #define MG_GLES_VERSION_MINOR 1 - #define mg_gl_load_gles mg_gl_load_gles31 + #define mg_gl_load_gles mg_gl_load_gles32 #endif @@ -50,7 +50,7 @@ void mg_egl_surface_destroy(mg_surface_data* interface) if(&surface->api == mg_gl_get_api()) { - mg_gl_select_api(0); + mg_gl_deselect_api(); } if(eglGetCurrentContext() == surface->eglContext) { @@ -76,6 +76,13 @@ void mg_egl_surface_present(mg_surface_data* interface) eglSwapBuffers(surface->eglDisplay, surface->eglSurface); } +void mg_egl_surface_deselect(mg_surface_data* interface) +{ + mg_egl_surface* surface = (mg_egl_surface*)interface; + eglMakeCurrent(surface->eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + mg_gl_deselect_api(); +} + void mg_egl_surface_swap_interval(mg_surface_data* interface, int swap) { mg_egl_surface* surface = (mg_egl_surface*)interface; @@ -91,6 +98,7 @@ void mg_egl_surface_init(mg_egl_surface* surface) surface->interface.destroy = mg_egl_surface_destroy; surface->interface.prepare = mg_egl_surface_prepare; surface->interface.present = mg_egl_surface_present; + surface->interface.deselect = mg_egl_surface_deselect; surface->interface.swapInterval = mg_egl_surface_swap_interval; EGLAttrib displayAttribs[] = { diff --git a/src/gl_api.h b/src/gl_api.h index 1619812..b789fc4 100644 --- a/src/gl_api.h +++ b/src/gl_api.h @@ -1,1122 +1,1123 @@ -/******************************************************** -* -* @file: gl_api.h -* @note: auto-generated by glapi.py from gl.xml -* @date: 12/072023 -* -*********************************************************/ -#ifndef __GL_API_H__ -#define __GL_API_H__ - -#include"GL/glcorearb.h" -#include"GLES3/gl32.h" - -typedef struct mg_gl_api -{ - PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv; - PFNGLCLEARDEPTHPROC ClearDepth; - PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv; - PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv; - PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv; - PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData; - PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram; - PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines; - PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv; - PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv; - PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv; - PFNGLLOGICOPPROC LogicOp; - PFNGLCLEARBUFFERDATAPROC ClearBufferData; - PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex; - PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample; - PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i; - PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate; - PFNGLVERTEXATTRIB1DPROC VertexAttrib1d; - PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei; - PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv; - PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv; - PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv; - PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d; - PFNGLBINDBUFFERPROC BindBuffer; - PFNGLBLENDFUNCPROC BlendFunc; - PFNGLDELETEQUERIESPROC DeleteQueries; - PFNGLGETPROGRAMBINARYPROC GetProgramBinary; - PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; - PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv; - PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline; - PFNGLGENSAMPLERSPROC GenSamplers; - PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel; - PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv; - PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv; - PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv; - PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D; - PFNGLGETSHADERIVPROC GetShaderiv; - PFNGLCLEARBUFFERUIVPROC ClearBufferuiv; - PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv; - PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv; - PFNGLMEMORYBARRIERPROC MemoryBarrier; - PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv; - PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding; - PFNGLBINDTEXTURESPROC BindTextures; - PFNGLBLENDFUNCIPROC BlendFunci; - PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv; - PFNGLTEXSTORAGE1DPROC TexStorage1D; - PFNGLUNIFORM1DPROC Uniform1d; - PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv; - PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i; - PFNGLQUERYCOUNTERPROC QueryCounter; - PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog; - PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv; - PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation; - PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus; - PFNGLISFRAMEBUFFERPROC IsFramebuffer; - PFNGLTEXSTORAGE3DPROC TexStorage3D; - PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat; - PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub; - PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv; - PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv; - PFNGLGETBUFFERSUBDATAPROC GetBufferSubData; - PFNGLUNIFORM2IVPROC Uniform2iv; - PFNGLISENABLEDIPROC IsEnabledi; - PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation; - PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D; - PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D; - PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv; - PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv; - PFNGLENABLEIPROC Enablei; - PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv; - PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i; - PFNGLGETSYNCIVPROC GetSynciv; - PFNGLGENRENDERBUFFERSPROC GenRenderbuffers; - PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv; - PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i; - PFNGLUNIFORM3IVPROC Uniform3iv; - PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv; - PFNGLPROVOKINGVERTEXPROC ProvokingVertex; - PFNGLPOPDEBUGGROUPPROC PopDebugGroup; - PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; - PFNGLBINDBUFFERSRANGEPROC BindBuffersRange; - PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv; - PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui; - PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv; - PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect; - PFNGLCLEARTEXIMAGEPROC ClearTexImage; - PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui; - PFNGLSAMPLEMASKIPROC SampleMaski; - PFNGLUNIFORM4IPROC Uniform4i; - PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D; - PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation; - PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus; - PFNGLPOLYGONMODEPROC PolygonMode; - PFNGLUNIFORM4FVPROC Uniform4fv; - PFNGLPUSHDEBUGGROUPPROC PushDebugGroup; - PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect; - PFNGLCREATEPROGRAMPROC CreateProgram; - PFNGLSCISSORINDEXEDVPROC ScissorIndexedv; - PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D; - PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv; - PFNGLSHADERSOURCEPROC ShaderSource; - PFNGLUNIFORM2FPROC Uniform2f; - PFNGLBUFFERSUBDATAPROC BufferSubData; - PFNGLBINDSAMPLERSPROC BindSamplers; - PFNGLCLEARTEXSUBIMAGEPROC ClearTexSubImage; - PFNGLBLENDCOLORPROC BlendColor; - PFNGLBINDVERTEXARRAYPROC BindVertexArray; - PFNGLCLEARBUFFERFVPROC ClearBufferfv; - PFNGLTEXSUBIMAGE1DPROC TexSubImage1D; - PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui; - PFNGLGETBOOLEANI_VPROC GetBooleani_v; - PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv; - PFNGLUNIFORM2UIVPROC Uniform2uiv; - PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex; - PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender; - PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv; - PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv; - PFNGLVIEWPORTARRAYVPROC ViewportArrayv; - PFNGLUNIFORM3FPROC Uniform3f; - PFNGLVERTEXATTRIB4DPROC VertexAttrib4d; - PFNGLGETQUERYIVPROC GetQueryiv; - PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData; - PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream; - PFNGLGETPOINTERVPROC GetPointerv; - PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; - PFNGLGETACTIVEUNIFORMPROC GetActiveUniform; - PFNGLUNIFORM3UIVPROC Uniform3uiv; - PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v; - PFNGLTEXIMAGE1DPROC TexImage1D; - PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv; - PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback; - PFNGLTEXTUREVIEWPROC TextureView; - PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv; - PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; - PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer; - PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv; - PFNGLSAMPLERPARAMETERFPROC SamplerParameterf; - PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv; - PFNGLGETUNIFORMFVPROC GetUniformfv; - PFNGLSCISSORARRAYVPROC ScissorArrayv; - PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert; - PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced; - PFNGLGETDOUBLEVPROC GetDoublev; - PFNGLGETINTEGER64VPROC GetInteger64v; - PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect; - PFNGLLINEWIDTHPROC LineWidth; - PFNGLVERTEXATTRIB2SPROC VertexAttrib2s; - PFNGLGETBOOLEANVPROC GetBooleanv; - PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings; - PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv; - PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D; - PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf; - PFNGLSCISSORPROC Scissor; - PFNGLTEXPARAMETERIIVPROC TexParameterIiv; - PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage; - PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback; - PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced; - PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv; - PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv; - PFNGLCOLORMASKPROC ColorMask; - PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample; - PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D; - PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv; - PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d; - PFNGLVERTEXATTRIB1FPROC VertexAttrib1f; - PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying; - PFNGLISSHADERPROC IsShader; - PFNGLCLEARBUFFERFIPROC ClearBufferfi; - PFNGLVALIDATEPROGRAMPROC ValidateProgram; - PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f; - PFNGLGETNUNIFORMFVPROC GetnUniformfv; - PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample; - PFNGLFRONTFACEPROC FrontFace; - PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv; - PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage; - PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv; - PFNGLGETSHADERSOURCEPROC GetShaderSource; - PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv; - PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex; - PFNGLUNMAPBUFFERPROC UnmapBuffer; - PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv; - PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv; - PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv; - PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl; - PFNGLPIXELSTOREFPROC PixelStoref; - PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv; - PFNGLGETNUNIFORMIVPROC GetnUniformiv; - PFNGLGETINTEGERI_VPROC GetIntegeri_v; - PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d; - PFNGLREADNPIXELSPROC ReadnPixels; - PFNGLUSEPROGRAMPROC UseProgram; - PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv; - PFNGLDISABLEPROC Disable; - PFNGLCULLFACEPROC CullFace; - PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; - PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv; - PFNGLVIEWPORTPROC Viewport; - PFNGLATTACHSHADERPROC AttachShader; - PFNGLPROGRAMBINARYPROC ProgramBinary; - PFNGLDEPTHRANGEPROC DepthRange; - PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv; - PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv; - PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri; - PFNGLDRAWBUFFERSPROC DrawBuffers; - PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i; - PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d; - PFNGLBLENDBARRIERPROC BlendBarrier; - PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; - PFNGLUNIFORM4UIVPROC Uniform4uiv; - PFNGLBEGINQUERYPROC BeginQuery; - PFNGLENDCONDITIONALRENDERPROC EndConditionalRender; - PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding; - PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv; - PFNGLBINDBUFFERRANGEPROC BindBufferRange; - PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D; - PFNGLVERTEXATTRIB3SPROC VertexAttrib3s; - PFNGLMAPBUFFERRANGEPROC MapBufferRange; - PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui; - PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer; - PFNGLSCISSORINDEXEDPROC ScissorIndexed; - PFNGLDELETESYNCPROC DeleteSync; - PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv; - PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; - PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D; - PFNGLGETUNIFORMDVPROC GetUniformdv; - PFNGLHINTPROC Hint; - PFNGLFINISHPROC Finish; - PFNGLSAMPLERPARAMETERIPROC SamplerParameteri; - PFNGLISVERTEXARRAYPROC IsVertexArray; - PFNGLBLENDEQUATIONPROC BlendEquation; - PFNGLUNIFORM2DPROC Uniform2d; - PFNGLISSYNCPROC IsSync; - PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv; - PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv; - PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i; - PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; - PFNGLVERTEXATTRIB3DPROC VertexAttrib3d; - PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv; - PFNGLGETFLOATVPROC GetFloatv; - PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer; - PFNGLGENFRAMEBUFFERSPROC GenFramebuffers; - PFNGLVERTEXATTRIB4SPROC VertexAttrib4s; - PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv; - PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv; - PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName; - PFNGLCOMPILESHADERPROC CompileShader; - PFNGLDEPTHMASKPROC DepthMask; - PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer; - PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed; - PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv; - PFNGLUNIFORM3UIPROC Uniform3ui; - PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv; - PFNGLREADBUFFERPROC ReadBuffer; - PFNGLVERTEXATTRIB2FPROC VertexAttrib2f; - PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv; - PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv; - PFNGLUNIFORM3FVPROC Uniform3fv; - PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv; - PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog; - PFNGLUNIFORM2FVPROC Uniform2fv; - PFNGLGETERRORPROC GetError; - PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv; - PFNGLISENABLEDPROC IsEnabled; - PFNGLUNIFORM4FPROC Uniform4f; - PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced; - PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D; - PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv; - PFNGLVERTEXATTRIB3FPROC VertexAttrib3f; - PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i; - PFNGLPOINTPARAMETERFVPROC PointParameterfv; - PFNGLBINDTEXTUREPROC BindTexture; - PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv; - PFNGLBINDVERTEXBUFFERSPROC BindVertexBuffers; - PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback; - PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv; - PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed; - PFNGLSAMPLECOVERAGEPROC SampleCoverage; - PFNGLDEPTHFUNCPROC DepthFunc; - PFNGLGENBUFFERSPROC GenBuffers; - PFNGLOBJECTLABELPROC ObjectLabel; - PFNGLUNIFORM1FVPROC Uniform1fv; - PFNGLUNIFORM4UIPROC Uniform4ui; - PFNGLBINDSAMPLERPROC BindSampler; - PFNGLDRAWARRAYSPROC DrawArrays; - PFNGLDELETESHADERPROC DeleteShader; - PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays; - PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv; - PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui; - PFNGLBUFFERSTORAGEPROC BufferStorage; - PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv; - PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; - PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv; - PFNGLCOLORMASKIPROC ColorMaski; - PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v; - PFNGLGENVERTEXARRAYSPROC GenVertexArrays; - PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv; - PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers; - PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv; - PFNGLUNIFORM2DVPROC Uniform2dv; - PFNGLGETDOUBLEI_VPROC GetDoublei_v; - PFNGLUNIFORM3IPROC Uniform3i; - PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui; - PFNGLGETINTEGERVPROC GetIntegerv; - PFNGLCLAMPCOLORPROC ClampColor; - PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample; - PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData; - PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData; - PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback; - PFNGLUNIFORM3DVPROC Uniform3dv; - PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d; - PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv; - PFNGLTEXPARAMETERFVPROC TexParameterfv; - PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv; - PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv; - PFNGLGENQUERIESPROC GenQueries; - PFNGLDELETEBUFFERSPROC DeleteBuffers; - PFNGLUNIFORM1IPROC Uniform1i; - PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv; - PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f; - PFNGLSHADERBINARYPROC ShaderBinary; - PFNGLTEXPARAMETERFPROC TexParameterf; - PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv; - PFNGLGETTEXIMAGEPROC GetTexImage; - PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv; - PFNGLVERTEXATTRIB4FPROC VertexAttrib4f; - PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; - PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv; - PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv; - PFNGLCLEARDEPTHFPROC ClearDepthf; - PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer; - PFNGLPIXELSTOREIPROC PixelStorei; - PFNGLACTIVETEXTUREPROC ActiveTexture; - PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline; - PFNGLUNIFORM4IVPROC Uniform4iv; - PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation; - PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv; - PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName; - PFNGLGETINTEGER64I_VPROC GetInteger64i_v; - PFNGLPATCHPARAMETERFVPROC PatchParameterfv; - PFNGLUNIFORM1DVPROC Uniform1dv; - PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv; - PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv; - PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv; - PFNGLUSEPROGRAMSTAGESPROC UseProgramStages; - PFNGLISRENDERBUFFERPROC IsRenderbuffer; - PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation; - PFNGLUNIFORM1UIPROC Uniform1ui; - PFNGLSTENCILMASKPROC StencilMask; - PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat; - PFNGLBINDIMAGETEXTUREPROC BindImageTexture; - PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv; - PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv; - PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName; - PFNGLGETFLOATI_VPROC GetFloati_v; - PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample; - PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; - PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance; - PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui; - PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv; - PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName; - PFNGLUNIFORM1UIVPROC Uniform1uiv; - PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv; - PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv; - PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv; - PFNGLDELETETEXTURESPROC DeleteTextures; - PFNGLGENERATEMIPMAPPROC GenerateMipmap; - PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks; - PFNGLWAITSYNCPROC WaitSync; - PFNGLUNIFORM2UIPROC Uniform2ui; - PFNGLBLENDEQUATIONIPROC BlendEquationi; - PFNGLBUFFERDATAPROC BufferData; - PFNGLGETUNIFORMINDICESPROC GetUniformIndices; - PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv; - PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback; - PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback; - PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv; - PFNGLLINKPROGRAMPROC LinkProgram; - PFNGLTEXIMAGE3DPROC TexImage3D; - PFNGLCLEARPROC Clear; - PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv; - PFNGLFENCESYNCPROC FenceSync; - PFNGLGETACTIVEATTRIBPROC GetActiveAttrib; - PFNGLREADPIXELSPROC ReadPixels; - PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d; - PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv; - PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv; - PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler; - PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv; - PFNGLGETUNIFORMUIVPROC GetUniformuiv; - PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv; - PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer; - PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f; - PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui; - PFNGLDELETEPROGRAMPROC DeleteProgram; - PFNGLPOLYGONOFFSETPROC PolygonOffset; - PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv; - PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv; - PFNGLUNIFORM4DVPROC Uniform4dv; - PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; - PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv; - PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv; - PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v; - PFNGLPOINTPARAMETERIVPROC PointParameteriv; - PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv; - PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced; - PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders; - PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv; - PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv; - PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding; - PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements; - PFNGLTEXBUFFERPROC TexBuffer; - PFNGLGETSTRINGPROC GetString; - PFNGLGETNUNIFORMUIVPROC GetnUniformuiv; - PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance; - PFNGLGETUNIFORMIVPROC GetUniformiv; - PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines; - PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui; - PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv; - PFNGLTEXBUFFERRANGEPROC TexBufferRange; - PFNGLTEXPARAMETERIPROC TexParameteri; - PFNGLBINDBUFFERSBASEPROC BindBuffersBase; - PFNGLVERTEXATTRIB2DPROC VertexAttrib2d; - PFNGLCREATESHADERPROC CreateShader; - PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer; - PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D; - PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv; - PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv; - PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; - PFNGLCLEARSTENCILPROC ClearStencil; - PFNGLBINDBUFFERBASEPROC BindBufferBase; - PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage; - PFNGLOBJECTPTRLABELPROC ObjectPtrLabel; - PFNGLMINSAMPLESHADINGPROC MinSampleShading; - PFNGLENABLEPROC Enable; - PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData; - PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv; - PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat; - PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect; - PFNGLGETOBJECTLABELPROC GetObjectLabel; - PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui; - PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange; - PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex; - PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; - PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v; - PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv; - PFNGLISSAMPLERPROC IsSampler; - PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv; - PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv; - PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui; - PFNGLTEXSUBIMAGE3DPROC TexSubImage3D; - PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture; - PFNGLPOINTPARAMETERFPROC PointParameterf; - PFNGLGETINTERNALFORMATIVPROC GetInternalformativ; - PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv; - PFNGLDETACHSHADERPROC DetachShader; - PFNGLUNIFORM2IPROC Uniform2i; - PFNGLPROGRAMPARAMETERIPROC ProgramParameteri; - PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv; - PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv; - PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv; - PFNGLCLEARCOLORPROC ClearColor; - PFNGLTEXPARAMETERIVPROC TexParameteriv; - PFNGLUNIFORM3DPROC Uniform3d; - PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback; - PFNGLDRAWELEMENTSPROC DrawElements; - PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv; - PFNGLMAPBUFFERPROC MapBuffer; - PFNGLGETPROGRAMIVPROC GetProgramiv; - PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv; - PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv; - PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv; - PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance; - PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv; - PFNGLSTENCILFUNCPROC StencilFunc; - PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv; - PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate; - PFNGLSTENCILOPPROC StencilOp; - PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor; - PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback; - PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui; - PFNGLBINDFRAMEBUFFERPROC BindFramebuffer; - PFNGLISPROGRAMPROC IsProgram; - PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv; - PFNGLDELETESAMPLERSPROC DeleteSamplers; - PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D; - PFNGLFLUSHPROC Flush; - PFNGLDEPTHRANGEFPROC DepthRangef; - PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion; - PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName; - PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv; - PFNGLDISABLEIPROC Disablei; - PFNGLISTEXTUREPROC IsTexture; - PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv; - PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei; - PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; - PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D; - PFNGLISQUERYPROC IsQuery; - PFNGLTEXIMAGE2DPROC TexImage2D; - PFNGLUNIFORM1FPROC Uniform1f; - PFNGLBINDRENDERBUFFERPROC BindRenderbuffer; - PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed; - PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv; - PFNGLVERTEXATTRIB1SPROC VertexAttrib1s; - PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage; - PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv; - PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate; - PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv; - PFNGLGETSTRINGIPROC GetStringi; - PFNGLDISPATCHCOMPUTEPROC DispatchCompute; - PFNGLPOINTPARAMETERIPROC PointParameteri; - PFNGLBINDIMAGETEXTURESPROC BindImageTextures; - PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks; - PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex; - PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d; - PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i; - PFNGLDRAWBUFFERPROC DrawBuffer; - PFNGLTEXSTORAGE2DPROC TexStorage2D; - PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat; - PFNGLENDQUERYPROC EndQuery; - PFNGLPATCHPARAMETERIPROC PatchParameteri; - PFNGLCLEARBUFFERIVPROC ClearBufferiv; - PFNGLENDQUERYINDEXEDPROC EndQueryIndexed; - PFNGLPOINTSIZEPROC PointSize; - PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv; - PFNGLUNIFORM4DPROC Uniform4d; - PFNGLGENTEXTURESPROC GenTextures; - PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex; - PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex; - PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d; - PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex; - PFNGLCLIENTWAITSYNCPROC ClientWaitSync; - PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers; - PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv; - PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect; - PFNGLPRIMITIVEBOUNDINGBOXPROC PrimitiveBoundingBox; - PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D; - PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements; - PFNGLUNIFORM1IVPROC Uniform1iv; - PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv; - PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline; - PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex; - PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv; - PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv; - PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer; - PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor; - PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv; - PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f; - PFNGLISBUFFERPROC IsBuffer; - PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv; - PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv; -} mg_gl_api; - -MP_API mg_gl_api* mg_gl_get_api(void); - -#define glVertexAttrib4Nbv mg_gl_get_api()->VertexAttrib4Nbv -#define glClearDepth mg_gl_get_api()->ClearDepth -#define glSamplerParameteriv mg_gl_get_api()->SamplerParameteriv -#define glUniformSubroutinesuiv mg_gl_get_api()->UniformSubroutinesuiv -#define glVertexAttrib3sv mg_gl_get_api()->VertexAttrib3sv -#define glInvalidateBufferSubData mg_gl_get_api()->InvalidateBufferSubData -#define glActiveShaderProgram mg_gl_get_api()->ActiveShaderProgram -#define glGenProgramPipelines mg_gl_get_api()->GenProgramPipelines -#define glUniformMatrix4x3fv mg_gl_get_api()->UniformMatrix4x3fv -#define glVertexAttrib1fv mg_gl_get_api()->VertexAttrib1fv -#define glGetSamplerParameteriv mg_gl_get_api()->GetSamplerParameteriv -#define glLogicOp mg_gl_get_api()->LogicOp -#define glClearBufferData mg_gl_get_api()->ClearBufferData -#define glDrawElementsInstancedBaseVertex mg_gl_get_api()->DrawElementsInstancedBaseVertex -#define glTexStorage2DMultisample mg_gl_get_api()->TexStorage2DMultisample -#define glProgramUniform2i mg_gl_get_api()->ProgramUniform2i -#define glStencilMaskSeparate mg_gl_get_api()->StencilMaskSeparate -#define glVertexAttrib1d mg_gl_get_api()->VertexAttrib1d -#define glBlendEquationSeparatei mg_gl_get_api()->BlendEquationSeparatei -#define glVertexAttrib2fv mg_gl_get_api()->VertexAttrib2fv -#define glVertexAttribI2uiv mg_gl_get_api()->VertexAttribI2uiv -#define glVertexAttrib4usv mg_gl_get_api()->VertexAttrib4usv -#define glVertexAttribL2d mg_gl_get_api()->VertexAttribL2d -#define glBindBuffer mg_gl_get_api()->BindBuffer -#define glBlendFunc mg_gl_get_api()->BlendFunc -#define glDeleteQueries mg_gl_get_api()->DeleteQueries -#define glGetProgramBinary mg_gl_get_api()->GetProgramBinary -#define glBlendEquationSeparate mg_gl_get_api()->BlendEquationSeparate -#define glGetUniformSubroutineuiv mg_gl_get_api()->GetUniformSubroutineuiv -#define glBindProgramPipeline mg_gl_get_api()->BindProgramPipeline -#define glGenSamplers mg_gl_get_api()->GenSamplers -#define glGetObjectPtrLabel mg_gl_get_api()->GetObjectPtrLabel -#define glGetRenderbufferParameteriv mg_gl_get_api()->GetRenderbufferParameteriv -#define glGetTexParameterIuiv mg_gl_get_api()->GetTexParameterIuiv -#define glProgramUniformMatrix3fv mg_gl_get_api()->ProgramUniformMatrix3fv -#define glCopyTexImage2D mg_gl_get_api()->CopyTexImage2D -#define glGetShaderiv mg_gl_get_api()->GetShaderiv -#define glClearBufferuiv mg_gl_get_api()->ClearBufferuiv -#define glVertexAttribP1uiv mg_gl_get_api()->VertexAttribP1uiv -#define glProgramUniformMatrix3x4fv mg_gl_get_api()->ProgramUniformMatrix3x4fv -#define glMemoryBarrier mg_gl_get_api()->MemoryBarrier -#define glVertexAttribL1dv mg_gl_get_api()->VertexAttribL1dv -#define glUniformBlockBinding mg_gl_get_api()->UniformBlockBinding -#define glBindTextures mg_gl_get_api()->BindTextures -#define glBlendFunci mg_gl_get_api()->BlendFunci -#define glVertexAttribL3dv mg_gl_get_api()->VertexAttribL3dv -#define glTexStorage1D mg_gl_get_api()->TexStorage1D -#define glUniform1d mg_gl_get_api()->Uniform1d -#define glUniformMatrix2x4dv mg_gl_get_api()->UniformMatrix2x4dv -#define glProgramUniform1i mg_gl_get_api()->ProgramUniform1i -#define glQueryCounter mg_gl_get_api()->QueryCounter -#define glGetDebugMessageLog mg_gl_get_api()->GetDebugMessageLog -#define glGetMultisamplefv mg_gl_get_api()->GetMultisamplefv -#define glGetFragDataLocation mg_gl_get_api()->GetFragDataLocation -#define glCheckFramebufferStatus mg_gl_get_api()->CheckFramebufferStatus -#define glIsFramebuffer mg_gl_get_api()->IsFramebuffer -#define glTexStorage3D mg_gl_get_api()->TexStorage3D -#define glVertexAttribIFormat mg_gl_get_api()->VertexAttribIFormat -#define glVertexAttrib4Nub mg_gl_get_api()->VertexAttrib4Nub -#define glVertexAttrib4Niv mg_gl_get_api()->VertexAttrib4Niv -#define glUniformMatrix3x4fv mg_gl_get_api()->UniformMatrix3x4fv -#define glGetBufferSubData mg_gl_get_api()->GetBufferSubData -#define glUniform2iv mg_gl_get_api()->Uniform2iv -#define glIsEnabledi mg_gl_get_api()->IsEnabledi -#define glGetProgramResourceLocation mg_gl_get_api()->GetProgramResourceLocation -#define glCompressedTexImage3D mg_gl_get_api()->CompressedTexImage3D -#define glCopyTexSubImage2D mg_gl_get_api()->CopyTexSubImage2D -#define glProgramUniformMatrix4x3dv mg_gl_get_api()->ProgramUniformMatrix4x3dv -#define glViewportIndexedfv mg_gl_get_api()->ViewportIndexedfv -#define glEnablei mg_gl_get_api()->Enablei -#define glProgramUniformMatrix4x2dv mg_gl_get_api()->ProgramUniformMatrix4x2dv -#define glProgramUniform4i mg_gl_get_api()->ProgramUniform4i -#define glGetSynciv mg_gl_get_api()->GetSynciv -#define glGenRenderbuffers mg_gl_get_api()->GenRenderbuffers -#define glSamplerParameterIuiv mg_gl_get_api()->SamplerParameterIuiv -#define glProgramUniform3i mg_gl_get_api()->ProgramUniform3i -#define glUniform3iv mg_gl_get_api()->Uniform3iv -#define glVertexAttrib1sv mg_gl_get_api()->VertexAttrib1sv -#define glProvokingVertex mg_gl_get_api()->ProvokingVertex -#define glPopDebugGroup mg_gl_get_api()->PopDebugGroup -#define glTexSubImage2D mg_gl_get_api()->TexSubImage2D -#define glBindBuffersRange mg_gl_get_api()->BindBuffersRange -#define glUniformMatrix3dv mg_gl_get_api()->UniformMatrix3dv -#define glProgramUniform1ui mg_gl_get_api()->ProgramUniform1ui -#define glCreateShaderProgramv mg_gl_get_api()->CreateShaderProgramv -#define glDispatchComputeIndirect mg_gl_get_api()->DispatchComputeIndirect -#define glClearTexImage mg_gl_get_api()->ClearTexImage -#define glVertexAttribP1ui mg_gl_get_api()->VertexAttribP1ui -#define glSampleMaski mg_gl_get_api()->SampleMaski -#define glUniform4i mg_gl_get_api()->Uniform4i -#define glCopyTexImage1D mg_gl_get_api()->CopyTexImage1D -#define glGetSubroutineUniformLocation mg_gl_get_api()->GetSubroutineUniformLocation -#define glGetGraphicsResetStatus mg_gl_get_api()->GetGraphicsResetStatus -#define glPolygonMode mg_gl_get_api()->PolygonMode -#define glUniform4fv mg_gl_get_api()->Uniform4fv -#define glPushDebugGroup mg_gl_get_api()->PushDebugGroup -#define glMultiDrawArraysIndirect mg_gl_get_api()->MultiDrawArraysIndirect -#define glCreateProgram mg_gl_get_api()->CreateProgram -#define glScissorIndexedv mg_gl_get_api()->ScissorIndexedv -#define glFramebufferTexture1D mg_gl_get_api()->FramebufferTexture1D -#define glProgramUniformMatrix3dv mg_gl_get_api()->ProgramUniformMatrix3dv -#define glShaderSource mg_gl_get_api()->ShaderSource -#define glUniform2f mg_gl_get_api()->Uniform2f -#define glBufferSubData mg_gl_get_api()->BufferSubData -#define glBindSamplers mg_gl_get_api()->BindSamplers -#define glClearTexSubImage mg_gl_get_api()->ClearTexSubImage -#define glBlendColor mg_gl_get_api()->BlendColor -#define glBindVertexArray mg_gl_get_api()->BindVertexArray -#define glClearBufferfv mg_gl_get_api()->ClearBufferfv -#define glTexSubImage1D mg_gl_get_api()->TexSubImage1D -#define glVertexAttribI1ui mg_gl_get_api()->VertexAttribI1ui -#define glGetBooleani_v mg_gl_get_api()->GetBooleani_v -#define glGetActiveUniformsiv mg_gl_get_api()->GetActiveUniformsiv -#define glUniform2uiv mg_gl_get_api()->Uniform2uiv -#define glGetSubroutineIndex mg_gl_get_api()->GetSubroutineIndex -#define glBeginConditionalRender mg_gl_get_api()->BeginConditionalRender -#define glGetFramebufferAttachmentParameteriv mg_gl_get_api()->GetFramebufferAttachmentParameteriv -#define glVertexAttribI4uiv mg_gl_get_api()->VertexAttribI4uiv -#define glViewportArrayv mg_gl_get_api()->ViewportArrayv -#define glUniform3f mg_gl_get_api()->Uniform3f -#define glVertexAttrib4d mg_gl_get_api()->VertexAttrib4d -#define glGetQueryiv mg_gl_get_api()->GetQueryiv -#define glCopyBufferSubData mg_gl_get_api()->CopyBufferSubData -#define glDrawTransformFeedbackStream mg_gl_get_api()->DrawTransformFeedbackStream -#define glGetPointerv mg_gl_get_api()->GetPointerv -#define glVertexAttribPointer mg_gl_get_api()->VertexAttribPointer -#define glGetActiveUniform mg_gl_get_api()->GetActiveUniform -#define glUniform3uiv mg_gl_get_api()->Uniform3uiv -#define glGetBufferParameteri64v mg_gl_get_api()->GetBufferParameteri64v -#define glTexImage1D mg_gl_get_api()->TexImage1D -#define glProgramUniformMatrix2fv mg_gl_get_api()->ProgramUniformMatrix2fv -#define glDrawTransformFeedback mg_gl_get_api()->DrawTransformFeedback -#define glTextureView mg_gl_get_api()->TextureView -#define glVertexAttrib4sv mg_gl_get_api()->VertexAttrib4sv -#define glGetProgramInfoLog mg_gl_get_api()->GetProgramInfoLog -#define glVertexAttribLPointer mg_gl_get_api()->VertexAttribLPointer -#define glProgramUniform4iv mg_gl_get_api()->ProgramUniform4iv -#define glSamplerParameterf mg_gl_get_api()->SamplerParameterf -#define glGetTexParameterfv mg_gl_get_api()->GetTexParameterfv -#define glGetUniformfv mg_gl_get_api()->GetUniformfv -#define glScissorArrayv mg_gl_get_api()->ScissorArrayv -#define glDebugMessageInsert mg_gl_get_api()->DebugMessageInsert -#define glDrawElementsInstanced mg_gl_get_api()->DrawElementsInstanced -#define glGetDoublev mg_gl_get_api()->GetDoublev -#define glGetInteger64v mg_gl_get_api()->GetInteger64v -#define glDrawArraysIndirect mg_gl_get_api()->DrawArraysIndirect -#define glLineWidth mg_gl_get_api()->LineWidth -#define glVertexAttrib2s mg_gl_get_api()->VertexAttrib2s -#define glGetBooleanv mg_gl_get_api()->GetBooleanv -#define glTransformFeedbackVaryings mg_gl_get_api()->TransformFeedbackVaryings -#define glGetTexLevelParameterfv mg_gl_get_api()->GetTexLevelParameterfv -#define glCopyTexSubImage3D mg_gl_get_api()->CopyTexSubImage3D -#define glViewportIndexedf mg_gl_get_api()->ViewportIndexedf -#define glScissor mg_gl_get_api()->Scissor -#define glTexParameterIiv mg_gl_get_api()->TexParameterIiv -#define glInvalidateTexImage mg_gl_get_api()->InvalidateTexImage -#define glBeginTransformFeedback mg_gl_get_api()->BeginTransformFeedback -#define glDrawTransformFeedbackStreamInstanced mg_gl_get_api()->DrawTransformFeedbackStreamInstanced -#define glGetQueryObjectuiv mg_gl_get_api()->GetQueryObjectuiv -#define glUniformMatrix2dv mg_gl_get_api()->UniformMatrix2dv -#define glColorMask mg_gl_get_api()->ColorMask -#define glTexImage2DMultisample mg_gl_get_api()->TexImage2DMultisample -#define glFramebufferTexture3D mg_gl_get_api()->FramebufferTexture3D -#define glGetVertexAttribIiv mg_gl_get_api()->GetVertexAttribIiv -#define glVertexAttribL3d mg_gl_get_api()->VertexAttribL3d -#define glVertexAttrib1f mg_gl_get_api()->VertexAttrib1f -#define glGetTransformFeedbackVarying mg_gl_get_api()->GetTransformFeedbackVarying -#define glIsShader mg_gl_get_api()->IsShader -#define glClearBufferfi mg_gl_get_api()->ClearBufferfi -#define glValidateProgram mg_gl_get_api()->ValidateProgram -#define glProgramUniform2f mg_gl_get_api()->ProgramUniform2f -#define glGetnUniformfv mg_gl_get_api()->GetnUniformfv -#define glTexImage3DMultisample mg_gl_get_api()->TexImage3DMultisample -#define glFrontFace mg_gl_get_api()->FrontFace -#define glVertexAttribI2iv mg_gl_get_api()->VertexAttribI2iv -#define glRenderbufferStorage mg_gl_get_api()->RenderbufferStorage -#define glProgramUniform4dv mg_gl_get_api()->ProgramUniform4dv -#define glGetShaderSource mg_gl_get_api()->GetShaderSource -#define glGetVertexAttribdv mg_gl_get_api()->GetVertexAttribdv -#define glPrimitiveRestartIndex mg_gl_get_api()->PrimitiveRestartIndex -#define glUnmapBuffer mg_gl_get_api()->UnmapBuffer -#define glVertexAttribP2uiv mg_gl_get_api()->VertexAttribP2uiv -#define glGetBufferParameteriv mg_gl_get_api()->GetBufferParameteriv -#define glUniformMatrix2x3fv mg_gl_get_api()->UniformMatrix2x3fv -#define glDebugMessageControl mg_gl_get_api()->DebugMessageControl -#define glPixelStoref mg_gl_get_api()->PixelStoref -#define glProgramUniformMatrix3x2fv mg_gl_get_api()->ProgramUniformMatrix3x2fv -#define glGetnUniformiv mg_gl_get_api()->GetnUniformiv -#define glGetIntegeri_v mg_gl_get_api()->GetIntegeri_v -#define glVertexAttribL4d mg_gl_get_api()->VertexAttribL4d -#define glReadnPixels mg_gl_get_api()->ReadnPixels -#define glUseProgram mg_gl_get_api()->UseProgram -#define glGetActiveSubroutineUniformiv mg_gl_get_api()->GetActiveSubroutineUniformiv -#define glDisable mg_gl_get_api()->Disable -#define glCullFace mg_gl_get_api()->CullFace -#define glGetVertexAttribiv mg_gl_get_api()->GetVertexAttribiv -#define glVertexAttribI4iv mg_gl_get_api()->VertexAttribI4iv -#define glViewport mg_gl_get_api()->Viewport -#define glAttachShader mg_gl_get_api()->AttachShader -#define glProgramBinary mg_gl_get_api()->ProgramBinary -#define glDepthRange mg_gl_get_api()->DepthRange -#define glProgramUniformMatrix3x2dv mg_gl_get_api()->ProgramUniformMatrix3x2dv -#define glProgramUniform3dv mg_gl_get_api()->ProgramUniform3dv -#define glFramebufferParameteri mg_gl_get_api()->FramebufferParameteri -#define glDrawBuffers mg_gl_get_api()->DrawBuffers -#define glVertexAttribI3i mg_gl_get_api()->VertexAttribI3i -#define glVertexAttribL1d mg_gl_get_api()->VertexAttribL1d -#define glBlendBarrier mg_gl_get_api()->BlendBarrier -#define glGetVertexAttribPointerv mg_gl_get_api()->GetVertexAttribPointerv -#define glUniform4uiv mg_gl_get_api()->Uniform4uiv -#define glBeginQuery mg_gl_get_api()->BeginQuery -#define glEndConditionalRender mg_gl_get_api()->EndConditionalRender -#define glShaderStorageBlockBinding mg_gl_get_api()->ShaderStorageBlockBinding -#define glGetVertexAttribIuiv mg_gl_get_api()->GetVertexAttribIuiv -#define glBindBufferRange mg_gl_get_api()->BindBufferRange -#define glCopyTexSubImage1D mg_gl_get_api()->CopyTexSubImage1D -#define glVertexAttrib3s mg_gl_get_api()->VertexAttrib3s -#define glMapBufferRange mg_gl_get_api()->MapBufferRange -#define glProgramUniform4ui mg_gl_get_api()->ProgramUniform4ui -#define glInvalidateSubFramebuffer mg_gl_get_api()->InvalidateSubFramebuffer -#define glScissorIndexed mg_gl_get_api()->ScissorIndexed -#define glDeleteSync mg_gl_get_api()->DeleteSync -#define glVertexAttribP4uiv mg_gl_get_api()->VertexAttribP4uiv -#define glEnableVertexAttribArray mg_gl_get_api()->EnableVertexAttribArray -#define glCompressedTexSubImage2D mg_gl_get_api()->CompressedTexSubImage2D -#define glGetUniformdv mg_gl_get_api()->GetUniformdv -#define glHint mg_gl_get_api()->Hint -#define glFinish mg_gl_get_api()->Finish -#define glSamplerParameteri mg_gl_get_api()->SamplerParameteri -#define glIsVertexArray mg_gl_get_api()->IsVertexArray -#define glBlendEquation mg_gl_get_api()->BlendEquation -#define glUniform2d mg_gl_get_api()->Uniform2d -#define glIsSync mg_gl_get_api()->IsSync -#define glVertexAttribL4dv mg_gl_get_api()->VertexAttribL4dv -#define glUniformMatrix4x2fv mg_gl_get_api()->UniformMatrix4x2fv -#define glVertexAttribI2i mg_gl_get_api()->VertexAttribI2i -#define glGetAttribLocation mg_gl_get_api()->GetAttribLocation -#define glVertexAttrib3d mg_gl_get_api()->VertexAttrib3d -#define glVertexAttribP3uiv mg_gl_get_api()->VertexAttribP3uiv -#define glGetFloatv mg_gl_get_api()->GetFloatv -#define glFramebufferRenderbuffer mg_gl_get_api()->FramebufferRenderbuffer -#define glGenFramebuffers mg_gl_get_api()->GenFramebuffers -#define glVertexAttrib4s mg_gl_get_api()->VertexAttrib4s -#define glVertexAttribL2dv mg_gl_get_api()->VertexAttribL2dv -#define glUniformMatrix4x3dv mg_gl_get_api()->UniformMatrix4x3dv -#define glGetActiveUniformBlockName mg_gl_get_api()->GetActiveUniformBlockName -#define glCompileShader mg_gl_get_api()->CompileShader -#define glDepthMask mg_gl_get_api()->DepthMask -#define glVertexAttribIPointer mg_gl_get_api()->VertexAttribIPointer -#define glDepthRangeIndexed mg_gl_get_api()->DepthRangeIndexed -#define glProgramUniformMatrix4dv mg_gl_get_api()->ProgramUniformMatrix4dv -#define glUniform3ui mg_gl_get_api()->Uniform3ui -#define glGetSamplerParameterfv mg_gl_get_api()->GetSamplerParameterfv -#define glReadBuffer mg_gl_get_api()->ReadBuffer -#define glVertexAttrib2f mg_gl_get_api()->VertexAttrib2f -#define glVertexAttrib2sv mg_gl_get_api()->VertexAttrib2sv -#define glVertexAttrib4bv mg_gl_get_api()->VertexAttrib4bv -#define glUniform3fv mg_gl_get_api()->Uniform3fv -#define glGetBufferPointerv mg_gl_get_api()->GetBufferPointerv -#define glGetProgramPipelineInfoLog mg_gl_get_api()->GetProgramPipelineInfoLog -#define glUniform2fv mg_gl_get_api()->Uniform2fv -#define glGetError mg_gl_get_api()->GetError -#define glProgramUniformMatrix2dv mg_gl_get_api()->ProgramUniformMatrix2dv -#define glIsEnabled mg_gl_get_api()->IsEnabled -#define glUniform4f mg_gl_get_api()->Uniform4f -#define glDrawArraysInstanced mg_gl_get_api()->DrawArraysInstanced -#define glCompressedTexImage1D mg_gl_get_api()->CompressedTexImage1D -#define glProgramUniformMatrix2x4dv mg_gl_get_api()->ProgramUniformMatrix2x4dv -#define glVertexAttrib3f mg_gl_get_api()->VertexAttrib3f -#define glVertexAttribI1i mg_gl_get_api()->VertexAttribI1i -#define glPointParameterfv mg_gl_get_api()->PointParameterfv -#define glBindTexture mg_gl_get_api()->BindTexture -#define glProgramUniform2fv mg_gl_get_api()->ProgramUniform2fv -#define glBindVertexBuffers mg_gl_get_api()->BindVertexBuffers -#define glIsTransformFeedback mg_gl_get_api()->IsTransformFeedback -#define glProgramUniformMatrix2x3dv mg_gl_get_api()->ProgramUniformMatrix2x3dv -#define glBeginQueryIndexed mg_gl_get_api()->BeginQueryIndexed -#define glSampleCoverage mg_gl_get_api()->SampleCoverage -#define glDepthFunc mg_gl_get_api()->DepthFunc -#define glGenBuffers mg_gl_get_api()->GenBuffers -#define glObjectLabel mg_gl_get_api()->ObjectLabel -#define glUniform1fv mg_gl_get_api()->Uniform1fv -#define glUniform4ui mg_gl_get_api()->Uniform4ui -#define glBindSampler mg_gl_get_api()->BindSampler -#define glDrawArrays mg_gl_get_api()->DrawArrays -#define glDeleteShader mg_gl_get_api()->DeleteShader -#define glMultiDrawArrays mg_gl_get_api()->MultiDrawArrays -#define glProgramUniformMatrix2x3fv mg_gl_get_api()->ProgramUniformMatrix2x3fv -#define glProgramUniform2ui mg_gl_get_api()->ProgramUniform2ui -#define glBufferStorage mg_gl_get_api()->BufferStorage -#define glProgramUniformMatrix4x2fv mg_gl_get_api()->ProgramUniformMatrix4x2fv -#define glDrawElementsBaseVertex mg_gl_get_api()->DrawElementsBaseVertex -#define glProgramUniform3fv mg_gl_get_api()->ProgramUniform3fv -#define glColorMaski mg_gl_get_api()->ColorMaski -#define glGetQueryObjectui64v mg_gl_get_api()->GetQueryObjectui64v -#define glGenVertexArrays mg_gl_get_api()->GenVertexArrays -#define glUniformMatrix3x4dv mg_gl_get_api()->UniformMatrix3x4dv -#define glDeleteFramebuffers mg_gl_get_api()->DeleteFramebuffers -#define glProgramUniform3uiv mg_gl_get_api()->ProgramUniform3uiv -#define glUniform2dv mg_gl_get_api()->Uniform2dv -#define glGetDoublei_v mg_gl_get_api()->GetDoublei_v -#define glUniform3i mg_gl_get_api()->Uniform3i -#define glVertexAttribP2ui mg_gl_get_api()->VertexAttribP2ui -#define glGetIntegerv mg_gl_get_api()->GetIntegerv -#define glClampColor mg_gl_get_api()->ClampColor -#define glTexStorage3DMultisample mg_gl_get_api()->TexStorage3DMultisample -#define glClearBufferSubData mg_gl_get_api()->ClearBufferSubData -#define glCopyImageSubData mg_gl_get_api()->CopyImageSubData -#define glPauseTransformFeedback mg_gl_get_api()->PauseTransformFeedback -#define glUniform3dv mg_gl_get_api()->Uniform3dv -#define glProgramUniform1d mg_gl_get_api()->ProgramUniform1d -#define glGetTexParameterIiv mg_gl_get_api()->GetTexParameterIiv -#define glTexParameterfv mg_gl_get_api()->TexParameterfv -#define glProgramUniformMatrix3x4dv mg_gl_get_api()->ProgramUniformMatrix3x4dv -#define glGetFramebufferParameteriv mg_gl_get_api()->GetFramebufferParameteriv -#define glGenQueries mg_gl_get_api()->GenQueries -#define glDeleteBuffers mg_gl_get_api()->DeleteBuffers -#define glUniform1i mg_gl_get_api()->Uniform1i -#define glProgramUniform4fv mg_gl_get_api()->ProgramUniform4fv -#define glProgramUniform4f mg_gl_get_api()->ProgramUniform4f -#define glShaderBinary mg_gl_get_api()->ShaderBinary -#define glTexParameterf mg_gl_get_api()->TexParameterf -#define glUniformMatrix3x2fv mg_gl_get_api()->UniformMatrix3x2fv -#define glGetTexImage mg_gl_get_api()->GetTexImage -#define glProgramUniformMatrix4fv mg_gl_get_api()->ProgramUniformMatrix4fv -#define glVertexAttrib4f mg_gl_get_api()->VertexAttrib4f -#define glBlendFuncSeparate mg_gl_get_api()->BlendFuncSeparate -#define glGetVertexAttribfv mg_gl_get_api()->GetVertexAttribfv -#define glVertexAttrib4dv mg_gl_get_api()->VertexAttrib4dv -#define glClearDepthf mg_gl_get_api()->ClearDepthf -#define glInvalidateFramebuffer mg_gl_get_api()->InvalidateFramebuffer -#define glPixelStorei mg_gl_get_api()->PixelStorei -#define glActiveTexture mg_gl_get_api()->ActiveTexture -#define glIsProgramPipeline mg_gl_get_api()->IsProgramPipeline -#define glUniform4iv mg_gl_get_api()->Uniform4iv -#define glBindAttribLocation mg_gl_get_api()->BindAttribLocation -#define glGetVertexAttribLdv mg_gl_get_api()->GetVertexAttribLdv -#define glGetProgramResourceName mg_gl_get_api()->GetProgramResourceName -#define glGetInteger64i_v mg_gl_get_api()->GetInteger64i_v -#define glPatchParameterfv mg_gl_get_api()->PatchParameterfv -#define glUniform1dv mg_gl_get_api()->Uniform1dv -#define glVertexAttribI1iv mg_gl_get_api()->VertexAttribI1iv -#define glVertexAttribI3uiv mg_gl_get_api()->VertexAttribI3uiv -#define glVertexAttribI4ubv mg_gl_get_api()->VertexAttribI4ubv -#define glUseProgramStages mg_gl_get_api()->UseProgramStages -#define glIsRenderbuffer mg_gl_get_api()->IsRenderbuffer -#define glBindFragDataLocation mg_gl_get_api()->BindFragDataLocation -#define glUniform1ui mg_gl_get_api()->Uniform1ui -#define glStencilMask mg_gl_get_api()->StencilMask -#define glGetShaderPrecisionFormat mg_gl_get_api()->GetShaderPrecisionFormat -#define glBindImageTexture mg_gl_get_api()->BindImageTexture -#define glVertexAttrib2dv mg_gl_get_api()->VertexAttrib2dv -#define glProgramUniform1iv mg_gl_get_api()->ProgramUniform1iv -#define glGetActiveSubroutineName mg_gl_get_api()->GetActiveSubroutineName -#define glGetFloati_v mg_gl_get_api()->GetFloati_v -#define glRenderbufferStorageMultisample mg_gl_get_api()->RenderbufferStorageMultisample -#define glGetShaderInfoLog mg_gl_get_api()->GetShaderInfoLog -#define glDrawElementsInstancedBaseInstance mg_gl_get_api()->DrawElementsInstancedBaseInstance -#define glVertexAttribP4ui mg_gl_get_api()->VertexAttribP4ui -#define glVertexAttrib4Nusv mg_gl_get_api()->VertexAttrib4Nusv -#define glGetActiveSubroutineUniformName mg_gl_get_api()->GetActiveSubroutineUniformName -#define glUniform1uiv mg_gl_get_api()->Uniform1uiv -#define glUniformMatrix4x2dv mg_gl_get_api()->UniformMatrix4x2dv -#define glVertexAttrib4Nsv mg_gl_get_api()->VertexAttrib4Nsv -#define glVertexAttrib1dv mg_gl_get_api()->VertexAttrib1dv -#define glDeleteTextures mg_gl_get_api()->DeleteTextures -#define glGenerateMipmap mg_gl_get_api()->GenerateMipmap -#define glGenTransformFeedbacks mg_gl_get_api()->GenTransformFeedbacks -#define glWaitSync mg_gl_get_api()->WaitSync -#define glUniform2ui mg_gl_get_api()->Uniform2ui -#define glBlendEquationi mg_gl_get_api()->BlendEquationi -#define glBufferData mg_gl_get_api()->BufferData -#define glGetUniformIndices mg_gl_get_api()->GetUniformIndices -#define glVertexAttrib4fv mg_gl_get_api()->VertexAttrib4fv -#define glResumeTransformFeedback mg_gl_get_api()->ResumeTransformFeedback -#define glBindTransformFeedback mg_gl_get_api()->BindTransformFeedback -#define glVertexAttrib4iv mg_gl_get_api()->VertexAttrib4iv -#define glLinkProgram mg_gl_get_api()->LinkProgram -#define glTexImage3D mg_gl_get_api()->TexImage3D -#define glClear mg_gl_get_api()->Clear -#define glVertexAttrib3fv mg_gl_get_api()->VertexAttrib3fv -#define glFenceSync mg_gl_get_api()->FenceSync -#define glGetActiveAttrib mg_gl_get_api()->GetActiveAttrib -#define glReadPixels mg_gl_get_api()->ReadPixels -#define glProgramUniform2d mg_gl_get_api()->ProgramUniform2d -#define glGetSamplerParameterIiv mg_gl_get_api()->GetSamplerParameterIiv -#define glGetProgramStageiv mg_gl_get_api()->GetProgramStageiv -#define glReleaseShaderCompiler mg_gl_get_api()->ReleaseShaderCompiler -#define glVertexAttribI4usv mg_gl_get_api()->VertexAttribI4usv -#define glGetUniformuiv mg_gl_get_api()->GetUniformuiv -#define glProgramUniform1dv mg_gl_get_api()->ProgramUniform1dv -#define glFramebufferTextureLayer mg_gl_get_api()->FramebufferTextureLayer -#define glProgramUniform3f mg_gl_get_api()->ProgramUniform3f -#define glProgramUniform3ui mg_gl_get_api()->ProgramUniform3ui -#define glDeleteProgram mg_gl_get_api()->DeleteProgram -#define glPolygonOffset mg_gl_get_api()->PolygonOffset -#define glSamplerParameterIiv mg_gl_get_api()->SamplerParameterIiv -#define glUniformMatrix3x2dv mg_gl_get_api()->UniformMatrix3x2dv -#define glUniform4dv mg_gl_get_api()->Uniform4dv -#define glDeleteVertexArrays mg_gl_get_api()->DeleteVertexArrays -#define glGetProgramResourceiv mg_gl_get_api()->GetProgramResourceiv -#define glUniformMatrix2x4fv mg_gl_get_api()->UniformMatrix2x4fv -#define glGetInternalformati64v mg_gl_get_api()->GetInternalformati64v -#define glPointParameteriv mg_gl_get_api()->PointParameteriv -#define glVertexAttribI4sv mg_gl_get_api()->VertexAttribI4sv -#define glDrawTransformFeedbackInstanced mg_gl_get_api()->DrawTransformFeedbackInstanced -#define glGetAttachedShaders mg_gl_get_api()->GetAttachedShaders -#define glVertexAttribI3iv mg_gl_get_api()->VertexAttribI3iv -#define glTexParameterIuiv mg_gl_get_api()->TexParameterIuiv -#define glVertexAttribBinding mg_gl_get_api()->VertexAttribBinding -#define glMultiDrawElements mg_gl_get_api()->MultiDrawElements -#define glTexBuffer mg_gl_get_api()->TexBuffer -#define glGetString mg_gl_get_api()->GetString -#define glGetnUniformuiv mg_gl_get_api()->GetnUniformuiv -#define glDrawElementsInstancedBaseVertexBaseInstance mg_gl_get_api()->DrawElementsInstancedBaseVertexBaseInstance -#define glGetUniformiv mg_gl_get_api()->GetUniformiv -#define glDeleteProgramPipelines mg_gl_get_api()->DeleteProgramPipelines -#define glVertexAttribI2ui mg_gl_get_api()->VertexAttribI2ui -#define glProgramUniform2dv mg_gl_get_api()->ProgramUniform2dv -#define glTexBufferRange mg_gl_get_api()->TexBufferRange -#define glTexParameteri mg_gl_get_api()->TexParameteri -#define glBindBuffersBase mg_gl_get_api()->BindBuffersBase -#define glVertexAttrib2d mg_gl_get_api()->VertexAttrib2d -#define glCreateShader mg_gl_get_api()->CreateShader -#define glBindVertexBuffer mg_gl_get_api()->BindVertexBuffer -#define glFramebufferTexture2D mg_gl_get_api()->FramebufferTexture2D -#define glDepthRangeArrayv mg_gl_get_api()->DepthRangeArrayv -#define glVertexAttrib4Nuiv mg_gl_get_api()->VertexAttrib4Nuiv -#define glUniformMatrix4fv mg_gl_get_api()->UniformMatrix4fv -#define glClearStencil mg_gl_get_api()->ClearStencil -#define glBindBufferBase mg_gl_get_api()->BindBufferBase -#define glInvalidateTexSubImage mg_gl_get_api()->InvalidateTexSubImage -#define glObjectPtrLabel mg_gl_get_api()->ObjectPtrLabel -#define glMinSampleShading mg_gl_get_api()->MinSampleShading -#define glEnable mg_gl_get_api()->Enable -#define glInvalidateBufferData mg_gl_get_api()->InvalidateBufferData -#define glProgramUniformMatrix2x4fv mg_gl_get_api()->ProgramUniformMatrix2x4fv -#define glVertexAttribLFormat mg_gl_get_api()->VertexAttribLFormat -#define glMultiDrawElementsIndirect mg_gl_get_api()->MultiDrawElementsIndirect -#define glGetObjectLabel mg_gl_get_api()->GetObjectLabel -#define glVertexAttribI3ui mg_gl_get_api()->VertexAttribI3ui -#define glFlushMappedBufferRange mg_gl_get_api()->FlushMappedBufferRange -#define glGetUniformBlockIndex mg_gl_get_api()->GetUniformBlockIndex -#define glGetUniformLocation mg_gl_get_api()->GetUniformLocation -#define glGetQueryObjecti64v mg_gl_get_api()->GetQueryObjecti64v -#define glProgramUniform1uiv mg_gl_get_api()->ProgramUniform1uiv -#define glIsSampler mg_gl_get_api()->IsSampler -#define glProgramUniform4uiv mg_gl_get_api()->ProgramUniform4uiv -#define glVertexAttrib4Nubv mg_gl_get_api()->VertexAttrib4Nubv -#define glVertexAttribI4ui mg_gl_get_api()->VertexAttribI4ui -#define glTexSubImage3D mg_gl_get_api()->TexSubImage3D -#define glFramebufferTexture mg_gl_get_api()->FramebufferTexture -#define glPointParameterf mg_gl_get_api()->PointParameterf -#define glGetInternalformativ mg_gl_get_api()->GetInternalformativ -#define glGetActiveUniformBlockiv mg_gl_get_api()->GetActiveUniformBlockiv -#define glDetachShader mg_gl_get_api()->DetachShader -#define glUniform2i mg_gl_get_api()->Uniform2i -#define glProgramParameteri mg_gl_get_api()->ProgramParameteri -#define glGetQueryObjectiv mg_gl_get_api()->GetQueryObjectiv -#define glSamplerParameterfv mg_gl_get_api()->SamplerParameterfv -#define glVertexAttrib4ubv mg_gl_get_api()->VertexAttrib4ubv -#define glClearColor mg_gl_get_api()->ClearColor -#define glTexParameteriv mg_gl_get_api()->TexParameteriv -#define glUniform3d mg_gl_get_api()->Uniform3d -#define glEndTransformFeedback mg_gl_get_api()->EndTransformFeedback -#define glDrawElements mg_gl_get_api()->DrawElements -#define glVertexAttrib4uiv mg_gl_get_api()->VertexAttrib4uiv -#define glMapBuffer mg_gl_get_api()->MapBuffer -#define glGetProgramiv mg_gl_get_api()->GetProgramiv -#define glProgramUniform2uiv mg_gl_get_api()->ProgramUniform2uiv -#define glUniformMatrix4dv mg_gl_get_api()->UniformMatrix4dv -#define glProgramUniform1fv mg_gl_get_api()->ProgramUniform1fv -#define glDrawArraysInstancedBaseInstance mg_gl_get_api()->DrawArraysInstancedBaseInstance -#define glGetQueryIndexediv mg_gl_get_api()->GetQueryIndexediv -#define glStencilFunc mg_gl_get_api()->StencilFunc -#define glGetActiveAtomicCounterBufferiv mg_gl_get_api()->GetActiveAtomicCounterBufferiv -#define glStencilFuncSeparate mg_gl_get_api()->StencilFuncSeparate -#define glStencilOp mg_gl_get_api()->StencilOp -#define glVertexAttribDivisor mg_gl_get_api()->VertexAttribDivisor -#define glDebugMessageCallback mg_gl_get_api()->DebugMessageCallback -#define glVertexAttribP3ui mg_gl_get_api()->VertexAttribP3ui -#define glBindFramebuffer mg_gl_get_api()->BindFramebuffer -#define glIsProgram mg_gl_get_api()->IsProgram -#define glProgramUniform2iv mg_gl_get_api()->ProgramUniform2iv -#define glDeleteSamplers mg_gl_get_api()->DeleteSamplers -#define glCompressedTexSubImage1D mg_gl_get_api()->CompressedTexSubImage1D -#define glFlush mg_gl_get_api()->Flush -#define glDepthRangef mg_gl_get_api()->DepthRangef -#define glMemoryBarrierByRegion mg_gl_get_api()->MemoryBarrierByRegion -#define glGetActiveUniformName mg_gl_get_api()->GetActiveUniformName -#define glGetProgramInterfaceiv mg_gl_get_api()->GetProgramInterfaceiv -#define glDisablei mg_gl_get_api()->Disablei -#define glIsTexture mg_gl_get_api()->IsTexture -#define glUniformMatrix2x3dv mg_gl_get_api()->UniformMatrix2x3dv -#define glBlendFuncSeparatei mg_gl_get_api()->BlendFuncSeparatei -#define glDisableVertexAttribArray mg_gl_get_api()->DisableVertexAttribArray -#define glCompressedTexImage2D mg_gl_get_api()->CompressedTexImage2D -#define glIsQuery mg_gl_get_api()->IsQuery -#define glTexImage2D mg_gl_get_api()->TexImage2D -#define glUniform1f mg_gl_get_api()->Uniform1f -#define glBindRenderbuffer mg_gl_get_api()->BindRenderbuffer -#define glBindFragDataLocationIndexed mg_gl_get_api()->BindFragDataLocationIndexed -#define glVertexAttribI4bv mg_gl_get_api()->VertexAttribI4bv -#define glVertexAttrib1s mg_gl_get_api()->VertexAttrib1s -#define glGetCompressedTexImage mg_gl_get_api()->GetCompressedTexImage -#define glUniformMatrix3fv mg_gl_get_api()->UniformMatrix3fv -#define glStencilOpSeparate mg_gl_get_api()->StencilOpSeparate -#define glProgramUniformMatrix4x3fv mg_gl_get_api()->ProgramUniformMatrix4x3fv -#define glGetStringi mg_gl_get_api()->GetStringi -#define glDispatchCompute mg_gl_get_api()->DispatchCompute -#define glPointParameteri mg_gl_get_api()->PointParameteri -#define glBindImageTextures mg_gl_get_api()->BindImageTextures -#define glDeleteTransformFeedbacks mg_gl_get_api()->DeleteTransformFeedbacks -#define glDrawRangeElementsBaseVertex mg_gl_get_api()->DrawRangeElementsBaseVertex -#define glProgramUniform4d mg_gl_get_api()->ProgramUniform4d -#define glVertexAttribI4i mg_gl_get_api()->VertexAttribI4i -#define glDrawBuffer mg_gl_get_api()->DrawBuffer -#define glTexStorage2D mg_gl_get_api()->TexStorage2D -#define glVertexAttribFormat mg_gl_get_api()->VertexAttribFormat -#define glEndQuery mg_gl_get_api()->EndQuery -#define glPatchParameteri mg_gl_get_api()->PatchParameteri -#define glClearBufferiv mg_gl_get_api()->ClearBufferiv -#define glEndQueryIndexed mg_gl_get_api()->EndQueryIndexed -#define glPointSize mg_gl_get_api()->PointSize -#define glVertexAttrib3dv mg_gl_get_api()->VertexAttrib3dv -#define glUniform4d mg_gl_get_api()->Uniform4d -#define glGenTextures mg_gl_get_api()->GenTextures -#define glGetProgramResourceLocationIndex mg_gl_get_api()->GetProgramResourceLocationIndex -#define glMultiDrawElementsBaseVertex mg_gl_get_api()->MultiDrawElementsBaseVertex -#define glProgramUniform3d mg_gl_get_api()->ProgramUniform3d -#define glGetFragDataIndex mg_gl_get_api()->GetFragDataIndex -#define glClientWaitSync mg_gl_get_api()->ClientWaitSync -#define glDeleteRenderbuffers mg_gl_get_api()->DeleteRenderbuffers -#define glProgramUniform3iv mg_gl_get_api()->ProgramUniform3iv -#define glDrawElementsIndirect mg_gl_get_api()->DrawElementsIndirect -#define glPrimitiveBoundingBox mg_gl_get_api()->PrimitiveBoundingBox -#define glCompressedTexSubImage3D mg_gl_get_api()->CompressedTexSubImage3D -#define glDrawRangeElements mg_gl_get_api()->DrawRangeElements -#define glUniform1iv mg_gl_get_api()->Uniform1iv -#define glGetSamplerParameterIuiv mg_gl_get_api()->GetSamplerParameterIuiv -#define glValidateProgramPipeline mg_gl_get_api()->ValidateProgramPipeline -#define glGetProgramResourceIndex mg_gl_get_api()->GetProgramResourceIndex -#define glVertexAttribI1uiv mg_gl_get_api()->VertexAttribI1uiv -#define glGetTexLevelParameteriv mg_gl_get_api()->GetTexLevelParameteriv -#define glBlitFramebuffer mg_gl_get_api()->BlitFramebuffer -#define glVertexBindingDivisor mg_gl_get_api()->VertexBindingDivisor -#define glGetProgramPipelineiv mg_gl_get_api()->GetProgramPipelineiv -#define glProgramUniform1f mg_gl_get_api()->ProgramUniform1f -#define glIsBuffer mg_gl_get_api()->IsBuffer -#define glGetTexParameteriv mg_gl_get_api()->GetTexParameteriv -#define glUniformMatrix2fv mg_gl_get_api()->UniformMatrix2fv -#endif // __GL_API_H__ +/******************************************************** +* +* @file: gl_api.h +* @note: auto-generated by glapi.py from gl.xml +* @date: 07/082023 +* +*********************************************************/ +#ifndef __GL_API_H__ +#define __GL_API_H__ + +#include"GL/glcorearb.h" +#include"GLES3/gl32.h" + +typedef struct mg_gl_api +{ + const char* name; + PFNGLPOINTPARAMETERFVPROC PointParameterfv; + PFNGLUNIFORM3FVPROC Uniform3fv; + PFNGLUNIFORM1IPROC Uniform1i; + PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui; + PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv; + PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv; + PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv; + PFNGLCLAMPCOLORPROC ClampColor; + PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D; + PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv; + PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d; + PFNGLBINDBUFFERPROC BindBuffer; + PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex; + PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer; + PFNGLPIXELSTOREIPROC PixelStorei; + PFNGLBINDTEXTUREPROC BindTexture; + PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv; + PFNGLISTEXTUREPROC IsTexture; + PFNGLVERTEXATTRIB4DPROC VertexAttrib4d; + PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv; + PFNGLGETOBJECTLABELPROC GetObjectLabel; + PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender; + PFNGLISFRAMEBUFFERPROC IsFramebuffer; + PFNGLCOMPILESHADERPROC CompileShader; + PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding; + PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv; + PFNGLUNIFORM1FVPROC Uniform1fv; + PFNGLTEXIMAGE2DPROC TexImage2D; + PFNGLFLUSHPROC Flush; + PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv; + PFNGLISPROGRAMPROC IsProgram; + PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv; + PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer; + PFNGLCLIENTWAITSYNCPROC ClientWaitSync; + PFNGLUNIFORM1DPROC Uniform1d; + PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui; + PFNGLCOLORMASKPROC ColorMask; + PFNGLCLEARDEPTHPROC ClearDepth; + PFNGLGETINTEGER64VPROC GetInteger64v; + PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui; + PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv; + PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui; + PFNGLBLENDEQUATIONIPROC BlendEquationi; + PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements; + PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage; + PFNGLSAMPLEMASKIPROC SampleMaski; + PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex; + PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv; + PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation; + PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex; + PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv; + PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv; + PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays; + PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback; + PFNGLGETUNIFORMIVPROC GetUniformiv; + PFNGLBUFFERDATAPROC BufferData; + PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage; + PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv; + PFNGLISQUERYPROC IsQuery; + PFNGLCLEARCOLORPROC ClearColor; + PFNGLBLENDFUNCPROC BlendFunc; + PFNGLGETDOUBLEI_VPROC GetDoublei_v; + PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture; + PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate; + PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex; + PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui; + PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat; + PFNGLMEMORYBARRIERPROC MemoryBarrier; + PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation; + PFNGLBINDRENDERBUFFERPROC BindRenderbuffer; + PFNGLPUSHDEBUGGROUPPROC PushDebugGroup; + PFNGLGENTEXTURESPROC GenTextures; + PFNGLGETINTEGERVPROC GetIntegerv; + PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv; + PFNGLUNIFORM4FVPROC Uniform4fv; + PFNGLHINTPROC Hint; + PFNGLTEXPARAMETERFPROC TexParameterf; + PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv; + PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex; + PFNGLCLEARPROC Clear; + PFNGLBINDBUFFERBASEPROC BindBufferBase; + PFNGLGETQUERYIVPROC GetQueryiv; + PFNGLPROGRAMBINARYPROC ProgramBinary; + PFNGLSCISSORINDEXEDVPROC ScissorIndexedv; + PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv; + PFNGLTEXSTORAGE2DPROC TexStorage2D; + PFNGLVERTEXATTRIB4FPROC VertexAttrib4f; + PFNGLPROGRAMPARAMETERIPROC ProgramParameteri; + PFNGLENABLEPROC Enable; + PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv; + PFNGLLOGICOPPROC LogicOp; + PFNGLDEPTHFUNCPROC DepthFunc; + PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv; + PFNGLUNIFORM2DPROC Uniform2d; + PFNGLDETACHSHADERPROC DetachShader; + PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor; + PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline; + PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv; + PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D; + PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv; + PFNGLGETDOUBLEVPROC GetDoublev; + PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback; + PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d; + PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv; + PFNGLDISPATCHCOMPUTEPROC DispatchCompute; + PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv; + PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv; + PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv; + PFNGLVERTEXATTRIB1SPROC VertexAttrib1s; + PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i; + PFNGLSAMPLECOVERAGEPROC SampleCoverage; + PFNGLBUFFERSUBDATAPROC BufferSubData; + PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui; + PFNGLENDCONDITIONALRENDERPROC EndConditionalRender; + PFNGLGETPOINTERVPROC GetPointerv; + PFNGLGETNUNIFORMIVPROC GetnUniformiv; + PFNGLBLENDEQUATIONPROC BlendEquation; + PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv; + PFNGLGETNUNIFORMFVPROC GetnUniformfv; + PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv; + PFNGLUNIFORM2FVPROC Uniform2fv; + PFNGLUNIFORM3FPROC Uniform3f; + PFNGLGENERATEMIPMAPPROC GenerateMipmap; + PFNGLGENRENDERBUFFERSPROC GenRenderbuffers; + PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; + PFNGLBINDVERTEXBUFFERSPROC BindVertexBuffers; + PFNGLSCISSORPROC Scissor; + PFNGLMAPBUFFERRANGEPROC MapBufferRange; + PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv; + PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv; + PFNGLUNIFORM2FPROC Uniform2f; + PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat; + PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv; + PFNGLISENABLEDPROC IsEnabled; + PFNGLCLEARBUFFERFIPROC ClearBufferfi; + PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv; + PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer; + PFNGLPOINTPARAMETERFPROC PointParameterf; + PFNGLGENVERTEXARRAYSPROC GenVertexArrays; + PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders; + PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer; + PFNGLDELETETEXTURESPROC DeleteTextures; + PFNGLBEGINQUERYPROC BeginQuery; + PFNGLUNIFORM4DVPROC Uniform4dv; + PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer; + PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv; + PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed; + PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback; + PFNGLUNIFORM3IPROC Uniform3i; + PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName; + PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation; + PFNGLSHADERSOURCEPROC ShaderSource; + PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv; + PFNGLFINISHPROC Finish; + PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance; + PFNGLDELETEPROGRAMPROC DeleteProgram; + PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex; + PFNGLREADBUFFERPROC ReadBuffer; + PFNGLGENBUFFERSPROC GenBuffers; + PFNGLCLEARDEPTHFPROC ClearDepthf; + PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; + PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv; + PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample; + PFNGLBINDSAMPLERSPROC BindSamplers; + PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; + PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv; + PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog; + PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; + PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance; + PFNGLPOLYGONMODEPROC PolygonMode; + PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv; + PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv; + PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i; + PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv; + PFNGLISSYNCPROC IsSync; + PFNGLTEXSTORAGE1DPROC TexStorage1D; + PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv; + PFNGLISENABLEDIPROC IsEnabledi; + PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect; + PFNGLGETBOOLEANI_VPROC GetBooleani_v; + PFNGLGETINTERNALFORMATIVPROC GetInternalformativ; + PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv; + PFNGLVERTEXATTRIB2SPROC VertexAttrib2s; + PFNGLGETBOOLEANVPROC GetBooleanv; + PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv; + PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel; + PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv; + PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui; + PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv; + PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf; + PFNGLDELETESYNCPROC DeleteSync; + PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData; + PFNGLPRIMITIVEBOUNDINGBOXPROC PrimitiveBoundingBox; + PFNGLSCISSORINDEXEDPROC ScissorIndexed; + PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks; + PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion; + PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks; + PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f; + PFNGLBINDBUFFERSBASEPROC BindBuffersBase; + PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv; + PFNGLISSHADERPROC IsShader; + PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i; + PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv; + PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv; + PFNGLBUFFERSTORAGEPROC BufferStorage; + PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv; + PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample; + PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv; + PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor; + PFNGLSTENCILMASKPROC StencilMask; + PFNGLBINDSAMPLERPROC BindSampler; + PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv; + PFNGLBINDIMAGETEXTUREPROC BindImageTexture; + PFNGLDRAWBUFFERSPROC DrawBuffers; + PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub; + PFNGLGETTEXIMAGEPROC GetTexImage; + PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv; + PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer; + PFNGLVERTEXATTRIB2DPROC VertexAttrib2d; + PFNGLUNIFORM1UIPROC Uniform1ui; + PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData; + PFNGLENDQUERYPROC EndQuery; + PFNGLGETUNIFORMUIVPROC GetUniformuiv; + PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv; + PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f; + PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv; + PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer; + PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv; + PFNGLUNIFORM1FPROC Uniform1f; + PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback; + PFNGLREADPIXELSPROC ReadPixels; + PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D; + PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect; + PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; + PFNGLCREATESHADERPROC CreateShader; + PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying; + PFNGLATTACHSHADERPROC AttachShader; + PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv; + PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv; + PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect; + PFNGLUNIFORM2IVPROC Uniform2iv; + PFNGLBINDBUFFERRANGEPROC BindBufferRange; + PFNGLTEXPARAMETERIVPROC TexParameteriv; + PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d; + PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample; + PFNGLCLEARTEXSUBIMAGEPROC ClearTexSubImage; + PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv; + PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer; + PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; + PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui; + PFNGLVIEWPORTPROC Viewport; + PFNGLBLENDFUNCIPROC BlendFunci; + PFNGLPOLYGONOFFSETPROC PolygonOffset; + PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui; + PFNGLSAMPLERPARAMETERIPROC SamplerParameteri; + PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv; + PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv; + PFNGLOBJECTLABELPROC ObjectLabel; + PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D; + PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage; + PFNGLBINDBUFFERSRANGEPROC BindBuffersRange; + PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData; + PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv; + PFNGLOBJECTPTRLABELPROC ObjectPtrLabel; + PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d; + PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv; + PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample; + PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv; + PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers; + PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus; + PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv; + PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv; + PFNGLVERTEXATTRIB2FPROC VertexAttrib2f; + PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv; + PFNGLSTENCILOPPROC StencilOp; + PFNGLVERTEXATTRIB3DPROC VertexAttrib3d; + PFNGLPOINTPARAMETERIPROC PointParameteri; + PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv; + PFNGLCLEARBUFFERFVPROC ClearBufferfv; + PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed; + PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d; + PFNGLPOINTPARAMETERIVPROC PointParameteriv; + PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange; + PFNGLTEXTUREVIEWPROC TextureView; + PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog; + PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D; + PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv; + PFNGLQUERYCOUNTERPROC QueryCounter; + PFNGLGETUNIFORMFVPROC GetUniformfv; + PFNGLCLEARSTENCILPROC ClearStencil; + PFNGLGETPROGRAMIVPROC GetProgramiv; + PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv; + PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv; + PFNGLUNIFORM1IVPROC Uniform1iv; + PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; + PFNGLTEXSUBIMAGE1DPROC TexSubImage1D; + PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate; + PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex; + PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced; + PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei; + PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv; + PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv; + PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv; + PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv; + PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv; + PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i; + PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; + PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv; + PFNGLTEXPARAMETERIIVPROC TexParameterIiv; + PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream; + PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv; + PFNGLGETUNIFORMINDICESPROC GetUniformIndices; + PFNGLGETSHADERIVPROC GetShaderiv; + PFNGLGETACTIVEUNIFORMPROC GetActiveUniform; + PFNGLUNIFORM3UIVPROC Uniform3uiv; + PFNGLPATCHPARAMETERIPROC PatchParameteri; + PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv; + PFNGLWAITSYNCPROC WaitSync; + PFNGLCLEARTEXIMAGEPROC ClearTexImage; + PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed; + PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv; + PFNGLDEPTHRANGEPROC DepthRange; + PFNGLGETACTIVEATTRIBPROC GetActiveAttrib; + PFNGLISRENDERBUFFERPROC IsRenderbuffer; + PFNGLCLEARBUFFERIVPROC ClearBufferiv; + PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv; + PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv; + PFNGLUSEPROGRAMPROC UseProgram; + PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName; + PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv; + PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv; + PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv; + PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv; + PFNGLGETBUFFERSUBDATAPROC GetBufferSubData; + PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv; + PFNGLVERTEXATTRIB1FPROC VertexAttrib1f; + PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv; + PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert; + PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback; + PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample; + PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback; + PFNGLUNIFORM3DVPROC Uniform3dv; + PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv; + PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv; + PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv; + PFNGLUNIFORM4DPROC Uniform4d; + PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv; + PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui; + PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; + PFNGLTEXPARAMETERIPROC TexParameteri; + PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex; + PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v; + PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv; + PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv; + PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv; + PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i; + PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv; + PFNGLGETSYNCIVPROC GetSynciv; + PFNGLVERTEXATTRIB3FPROC VertexAttrib3f; + PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv; + PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; + PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv; + PFNGLGENQUERIESPROC GenQueries; + PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv; + PFNGLTEXBUFFERPROC TexBuffer; + PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding; + PFNGLDISABLEPROC Disable; + PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui; + PFNGLISSAMPLERPROC IsSampler; + PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram; + PFNGLBINDVERTEXARRAYPROC BindVertexArray; + PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv; + PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced; + PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv; + PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v; + PFNGLGETSTRINGIPROC GetStringi; + PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline; + PFNGLBINDFRAMEBUFFERPROC BindFramebuffer; + PFNGLVERTEXATTRIB1DPROC VertexAttrib1d; + PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage; + PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler; + PFNGLUNIFORM2IPROC Uniform2i; + PFNGLDRAWBUFFERPROC DrawBuffer; + PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers; + PFNGLDELETEBUFFERSPROC DeleteBuffers; + PFNGLGENFRAMEBUFFERSPROC GenFramebuffers; + PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv; + PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f; + PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv; + PFNGLBLENDBARRIERPROC BlendBarrier; + PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d; + PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D; + PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv; + PFNGLSAMPLERPARAMETERFPROC SamplerParameterf; + PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; + PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui; + PFNGLBINDTEXTURESPROC BindTextures; + PFNGLUNIFORM3DPROC Uniform3d; + PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv; + PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv; + PFNGLLINEWIDTHPROC LineWidth; + PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv; + PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv; + PFNGLUNIFORM1DVPROC Uniform1dv; + PFNGLCULLFACEPROC CullFace; + PFNGLCREATEPROGRAMPROC CreateProgram; + PFNGLUNIFORM4IPROC Uniform4i; + PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv; + PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; + PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat; + PFNGLUNIFORM4IVPROC Uniform4iv; + PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D; + PFNGLBINDIMAGETEXTURESPROC BindImageTextures; + PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v; + PFNGLFRONTFACEPROC FrontFace; + PFNGLPOPDEBUGGROUPPROC PopDebugGroup; + PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv; + PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData; + PFNGLISVERTEXARRAYPROC IsVertexArray; + PFNGLSCISSORARRAYVPROC ScissorArrayv; + PFNGLVALIDATEPROGRAMPROC ValidateProgram; + PFNGLUNIFORM2UIVPROC Uniform2uiv; + PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; + PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl; + PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri; + PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; + PFNGLTEXSTORAGE3DPROC TexStorage3D; + PFNGLPIXELSTOREFPROC PixelStoref; + PFNGLDEPTHRANGEFPROC DepthRangef; + PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i; + PFNGLUNIFORM1UIVPROC Uniform1uiv; + PFNGLDISABLEIPROC Disablei; + PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v; + PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv; + PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex; + PFNGLBLENDCOLORPROC BlendColor; + PFNGLGENSAMPLERSPROC GenSamplers; + PFNGLCOLORMASKIPROC ColorMaski; + PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus; + PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv; + PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv; + PFNGLDELETESAMPLERSPROC DeleteSamplers; + PFNGLVERTEXATTRIB3SPROC VertexAttrib3s; + PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback; + PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d; + PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance; + PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData; + PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat; + PFNGLUNIFORM2DVPROC Uniform2dv; + PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D; + PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D; + PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D; + PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d; + PFNGLUNMAPBUFFERPROC UnmapBuffer; + PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv; + PFNGLFENCESYNCPROC FenceSync; + PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect; + PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv; + PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation; + PFNGLGETUNIFORMDVPROC GetUniformdv; + PFNGLTEXIMAGE3DPROC TexImage3D; + PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline; + PFNGLLINKPROGRAMPROC LinkProgram; + PFNGLDELETEQUERIESPROC DeleteQueries; + PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D; + PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName; + PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv; + PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv; + PFNGLPROVOKINGVERTEXPROC ProvokingVertex; + PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation; + PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv; + PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName; + PFNGLDRAWARRAYSPROC DrawArrays; + PFNGLGETNUNIFORMUIVPROC GetnUniformuiv; + PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv; + PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect; + PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv; + PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei; + PFNGLDRAWELEMENTSPROC DrawElements; + PFNGLGETSHADERSOURCEPROC GetShaderSource; + PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings; + PFNGLGETERRORPROC GetError; + PFNGLISBUFFERPROC IsBuffer; + PFNGLCLEARBUFFERUIVPROC ClearBufferuiv; + PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; + PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName; + PFNGLUNIFORM2UIPROC Uniform2ui; + PFNGLSTENCILFUNCPROC StencilFunc; + PFNGLENABLEIPROC Enablei; + PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv; + PFNGLGETINTEGER64I_VPROC GetInteger64i_v; + PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i; + PFNGLUNIFORM4UIPROC Uniform4ui; + PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv; + PFNGLREADNPIXELSPROC ReadnPixels; + PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced; + PFNGLPOINTSIZEPROC PointSize; + PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv; + PFNGLVIEWPORTARRAYVPROC ViewportArrayv; + PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate; + PFNGLUNIFORM3UIPROC Uniform3ui; + PFNGLUNIFORM4UIVPROC Uniform4uiv; + PFNGLUNIFORM3IVPROC Uniform3iv; + PFNGLUNIFORM4FPROC Uniform4f; + PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D; + PFNGLGETINTEGERI_VPROC GetIntegeri_v; + PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements; + PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv; + PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv; + PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D; + PFNGLTEXSUBIMAGE3DPROC TexSubImage3D; + PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv; + PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines; + PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv; + PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv; + PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding; + PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv; + PFNGLTEXPARAMETERFVPROC TexParameterfv; + PFNGLMAPBUFFERPROC MapBuffer; + PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines; + PFNGLMINSAMPLESHADINGPROC MinSampleShading; + PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback; + PFNGLENDQUERYINDEXEDPROC EndQueryIndexed; + PFNGLGETPROGRAMBINARYPROC GetProgramBinary; + PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i; + PFNGLDEPTHMASKPROC DepthMask; + PFNGLACTIVETEXTUREPROC ActiveTexture; + PFNGLUSEPROGRAMSTAGESPROC UseProgramStages; + PFNGLPATCHPARAMETERFVPROC PatchParameterfv; + PFNGLSHADERBINARYPROC ShaderBinary; + PFNGLGETFLOATVPROC GetFloatv; + PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f; + PFNGLTEXIMAGE1DPROC TexImage1D; + PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv; + PFNGLCLEARBUFFERDATAPROC ClearBufferData; + PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv; + PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D; + PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv; + PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv; + PFNGLGETSTRINGPROC GetString; + PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv; + PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv; + PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv; + PFNGLTEXBUFFERRANGEPROC TexBufferRange; + PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv; + PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv; + PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv; + PFNGLDELETESHADERPROC DeleteShader; + PFNGLGETFLOATI_VPROC GetFloati_v; + PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced; + PFNGLVERTEXATTRIB4SPROC VertexAttrib4s; +} mg_gl_api; + +MP_API mg_gl_api* mg_gl_get_api(void); + +#define glPointParameterfv mg_gl_get_api()->PointParameterfv +#define glUniform3fv mg_gl_get_api()->Uniform3fv +#define glUniform1i mg_gl_get_api()->Uniform1i +#define glVertexAttribP3ui mg_gl_get_api()->VertexAttribP3ui +#define glVertexAttrib4sv mg_gl_get_api()->VertexAttrib4sv +#define glGetBufferParameteriv mg_gl_get_api()->GetBufferParameteriv +#define glProgramUniform2dv mg_gl_get_api()->ProgramUniform2dv +#define glClampColor mg_gl_get_api()->ClampColor +#define glCompressedTexImage3D mg_gl_get_api()->CompressedTexImage3D +#define glProgramUniformMatrix2x4fv mg_gl_get_api()->ProgramUniformMatrix2x4fv +#define glProgramUniform2d mg_gl_get_api()->ProgramUniform2d +#define glBindBuffer mg_gl_get_api()->BindBuffer +#define glGetUniformBlockIndex mg_gl_get_api()->GetUniformBlockIndex +#define glInvalidateFramebuffer mg_gl_get_api()->InvalidateFramebuffer +#define glPixelStorei mg_gl_get_api()->PixelStorei +#define glBindTexture mg_gl_get_api()->BindTexture +#define glVertexAttrib4Nuiv mg_gl_get_api()->VertexAttrib4Nuiv +#define glIsTexture mg_gl_get_api()->IsTexture +#define glVertexAttrib4d mg_gl_get_api()->VertexAttrib4d +#define glProgramUniformMatrix2x4dv mg_gl_get_api()->ProgramUniformMatrix2x4dv +#define glGetObjectLabel mg_gl_get_api()->GetObjectLabel +#define glBeginConditionalRender mg_gl_get_api()->BeginConditionalRender +#define glIsFramebuffer mg_gl_get_api()->IsFramebuffer +#define glCompileShader mg_gl_get_api()->CompileShader +#define glVertexAttribBinding mg_gl_get_api()->VertexAttribBinding +#define glVertexAttribL1dv mg_gl_get_api()->VertexAttribL1dv +#define glUniform1fv mg_gl_get_api()->Uniform1fv +#define glTexImage2D mg_gl_get_api()->TexImage2D +#define glFlush mg_gl_get_api()->Flush +#define glVertexAttribP2uiv mg_gl_get_api()->VertexAttribP2uiv +#define glIsProgram mg_gl_get_api()->IsProgram +#define glProgramUniform4fv mg_gl_get_api()->ProgramUniform4fv +#define glVertexAttribLPointer mg_gl_get_api()->VertexAttribLPointer +#define glClientWaitSync mg_gl_get_api()->ClientWaitSync +#define glUniform1d mg_gl_get_api()->Uniform1d +#define glProgramUniform1ui mg_gl_get_api()->ProgramUniform1ui +#define glColorMask mg_gl_get_api()->ColorMask +#define glClearDepth mg_gl_get_api()->ClearDepth +#define glGetInteger64v mg_gl_get_api()->GetInteger64v +#define glVertexAttribP2ui mg_gl_get_api()->VertexAttribP2ui +#define glVertexAttrib2dv mg_gl_get_api()->VertexAttrib2dv +#define glVertexAttribI4ui mg_gl_get_api()->VertexAttribI4ui +#define glBlendEquationi mg_gl_get_api()->BlendEquationi +#define glDrawRangeElements mg_gl_get_api()->DrawRangeElements +#define glInvalidateTexImage mg_gl_get_api()->InvalidateTexImage +#define glSampleMaski mg_gl_get_api()->SampleMaski +#define glGetProgramResourceLocationIndex mg_gl_get_api()->GetProgramResourceLocationIndex +#define glVertexAttrib4dv mg_gl_get_api()->VertexAttrib4dv +#define glBindFragDataLocation mg_gl_get_api()->BindFragDataLocation +#define glGetFragDataIndex mg_gl_get_api()->GetFragDataIndex +#define glGetTexLevelParameterfv mg_gl_get_api()->GetTexLevelParameterfv +#define glVertexAttribP4uiv mg_gl_get_api()->VertexAttribP4uiv +#define glMultiDrawArrays mg_gl_get_api()->MultiDrawArrays +#define glIsTransformFeedback mg_gl_get_api()->IsTransformFeedback +#define glGetUniformiv mg_gl_get_api()->GetUniformiv +#define glBufferData mg_gl_get_api()->BufferData +#define glGetCompressedTexImage mg_gl_get_api()->GetCompressedTexImage +#define glVertexAttrib3sv mg_gl_get_api()->VertexAttrib3sv +#define glIsQuery mg_gl_get_api()->IsQuery +#define glClearColor mg_gl_get_api()->ClearColor +#define glBlendFunc mg_gl_get_api()->BlendFunc +#define glGetDoublei_v mg_gl_get_api()->GetDoublei_v +#define glFramebufferTexture mg_gl_get_api()->FramebufferTexture +#define glStencilMaskSeparate mg_gl_get_api()->StencilMaskSeparate +#define glPrimitiveRestartIndex mg_gl_get_api()->PrimitiveRestartIndex +#define glVertexAttribP1ui mg_gl_get_api()->VertexAttribP1ui +#define glVertexAttribIFormat mg_gl_get_api()->VertexAttribIFormat +#define glMemoryBarrier mg_gl_get_api()->MemoryBarrier +#define glGetSubroutineUniformLocation mg_gl_get_api()->GetSubroutineUniformLocation +#define glBindRenderbuffer mg_gl_get_api()->BindRenderbuffer +#define glPushDebugGroup mg_gl_get_api()->PushDebugGroup +#define glGenTextures mg_gl_get_api()->GenTextures +#define glGetIntegerv mg_gl_get_api()->GetIntegerv +#define glGetQueryObjectuiv mg_gl_get_api()->GetQueryObjectuiv +#define glUniform4fv mg_gl_get_api()->Uniform4fv +#define glHint mg_gl_get_api()->Hint +#define glTexParameterf mg_gl_get_api()->TexParameterf +#define glProgramUniform2fv mg_gl_get_api()->ProgramUniform2fv +#define glDrawRangeElementsBaseVertex mg_gl_get_api()->DrawRangeElementsBaseVertex +#define glClear mg_gl_get_api()->Clear +#define glBindBufferBase mg_gl_get_api()->BindBufferBase +#define glGetQueryiv mg_gl_get_api()->GetQueryiv +#define glProgramBinary mg_gl_get_api()->ProgramBinary +#define glScissorIndexedv mg_gl_get_api()->ScissorIndexedv +#define glVertexAttrib1fv mg_gl_get_api()->VertexAttrib1fv +#define glTexStorage2D mg_gl_get_api()->TexStorage2D +#define glVertexAttrib4f mg_gl_get_api()->VertexAttrib4f +#define glProgramParameteri mg_gl_get_api()->ProgramParameteri +#define glEnable mg_gl_get_api()->Enable +#define glGetBufferPointerv mg_gl_get_api()->GetBufferPointerv +#define glLogicOp mg_gl_get_api()->LogicOp +#define glDepthFunc mg_gl_get_api()->DepthFunc +#define glVertexAttrib1dv mg_gl_get_api()->VertexAttrib1dv +#define glUniform2d mg_gl_get_api()->Uniform2d +#define glDetachShader mg_gl_get_api()->DetachShader +#define glVertexBindingDivisor mg_gl_get_api()->VertexBindingDivisor +#define glIsProgramPipeline mg_gl_get_api()->IsProgramPipeline +#define glProgramUniform1fv mg_gl_get_api()->ProgramUniform1fv +#define glCopyTexSubImage2D mg_gl_get_api()->CopyTexSubImage2D +#define glVertexAttrib2fv mg_gl_get_api()->VertexAttrib2fv +#define glGetDoublev mg_gl_get_api()->GetDoublev +#define glResumeTransformFeedback mg_gl_get_api()->ResumeTransformFeedback +#define glProgramUniform4d mg_gl_get_api()->ProgramUniform4d +#define glProgramUniform4uiv mg_gl_get_api()->ProgramUniform4uiv +#define glDispatchCompute mg_gl_get_api()->DispatchCompute +#define glVertexAttrib4bv mg_gl_get_api()->VertexAttrib4bv +#define glGetSamplerParameterfv mg_gl_get_api()->GetSamplerParameterfv +#define glProgramUniform3iv mg_gl_get_api()->ProgramUniform3iv +#define glVertexAttrib1s mg_gl_get_api()->VertexAttrib1s +#define glVertexAttribI2i mg_gl_get_api()->VertexAttribI2i +#define glSampleCoverage mg_gl_get_api()->SampleCoverage +#define glBufferSubData mg_gl_get_api()->BufferSubData +#define glVertexAttribI1ui mg_gl_get_api()->VertexAttribI1ui +#define glEndConditionalRender mg_gl_get_api()->EndConditionalRender +#define glGetPointerv mg_gl_get_api()->GetPointerv +#define glGetnUniformiv mg_gl_get_api()->GetnUniformiv +#define glBlendEquation mg_gl_get_api()->BlendEquation +#define glVertexAttribI4iv mg_gl_get_api()->VertexAttribI4iv +#define glGetnUniformfv mg_gl_get_api()->GetnUniformfv +#define glVertexAttrib4Nsv mg_gl_get_api()->VertexAttrib4Nsv +#define glUniform2fv mg_gl_get_api()->Uniform2fv +#define glUniform3f mg_gl_get_api()->Uniform3f +#define glGenerateMipmap mg_gl_get_api()->GenerateMipmap +#define glGenRenderbuffers mg_gl_get_api()->GenRenderbuffers +#define glDrawElementsBaseVertex mg_gl_get_api()->DrawElementsBaseVertex +#define glBindVertexBuffers mg_gl_get_api()->BindVertexBuffers +#define glScissor mg_gl_get_api()->Scissor +#define glMapBufferRange mg_gl_get_api()->MapBufferRange +#define glProgramUniformMatrix4x2fv mg_gl_get_api()->ProgramUniformMatrix4x2fv +#define glGetTexParameterfv mg_gl_get_api()->GetTexParameterfv +#define glUniform2f mg_gl_get_api()->Uniform2f +#define glVertexAttribFormat mg_gl_get_api()->VertexAttribFormat +#define glUniformMatrix2dv mg_gl_get_api()->UniformMatrix2dv +#define glIsEnabled mg_gl_get_api()->IsEnabled +#define glClearBufferfi mg_gl_get_api()->ClearBufferfi +#define glGetRenderbufferParameteriv mg_gl_get_api()->GetRenderbufferParameteriv +#define glFramebufferTextureLayer mg_gl_get_api()->FramebufferTextureLayer +#define glPointParameterf mg_gl_get_api()->PointParameterf +#define glGenVertexArrays mg_gl_get_api()->GenVertexArrays +#define glGetAttachedShaders mg_gl_get_api()->GetAttachedShaders +#define glFramebufferRenderbuffer mg_gl_get_api()->FramebufferRenderbuffer +#define glDeleteTextures mg_gl_get_api()->DeleteTextures +#define glBeginQuery mg_gl_get_api()->BeginQuery +#define glUniform4dv mg_gl_get_api()->Uniform4dv +#define glVertexAttribIPointer mg_gl_get_api()->VertexAttribIPointer +#define glGetSamplerParameterIiv mg_gl_get_api()->GetSamplerParameterIiv +#define glBeginQueryIndexed mg_gl_get_api()->BeginQueryIndexed +#define glBeginTransformFeedback mg_gl_get_api()->BeginTransformFeedback +#define glUniform3i mg_gl_get_api()->Uniform3i +#define glGetActiveUniformName mg_gl_get_api()->GetActiveUniformName +#define glGetProgramResourceLocation mg_gl_get_api()->GetProgramResourceLocation +#define glShaderSource mg_gl_get_api()->ShaderSource +#define glSamplerParameterIiv mg_gl_get_api()->SamplerParameterIiv +#define glFinish mg_gl_get_api()->Finish +#define glDrawArraysInstancedBaseInstance mg_gl_get_api()->DrawArraysInstancedBaseInstance +#define glDeleteProgram mg_gl_get_api()->DeleteProgram +#define glMultiDrawElementsBaseVertex mg_gl_get_api()->MultiDrawElementsBaseVertex +#define glReadBuffer mg_gl_get_api()->ReadBuffer +#define glGenBuffers mg_gl_get_api()->GenBuffers +#define glClearDepthf mg_gl_get_api()->ClearDepthf +#define glVertexAttribPointer mg_gl_get_api()->VertexAttribPointer +#define glVertexAttribL4dv mg_gl_get_api()->VertexAttribL4dv +#define glTexStorage2DMultisample mg_gl_get_api()->TexStorage2DMultisample +#define glBindSamplers mg_gl_get_api()->BindSamplers +#define glEnableVertexAttribArray mg_gl_get_api()->EnableVertexAttribArray +#define glVertexAttrib4ubv mg_gl_get_api()->VertexAttrib4ubv +#define glGetDebugMessageLog mg_gl_get_api()->GetDebugMessageLog +#define glDisableVertexAttribArray mg_gl_get_api()->DisableVertexAttribArray +#define glDrawElementsInstancedBaseInstance mg_gl_get_api()->DrawElementsInstancedBaseInstance +#define glPolygonMode mg_gl_get_api()->PolygonMode +#define glVertexAttribP1uiv mg_gl_get_api()->VertexAttribP1uiv +#define glProgramUniform1iv mg_gl_get_api()->ProgramUniform1iv +#define glVertexAttribI1i mg_gl_get_api()->VertexAttribI1i +#define glGetTexLevelParameteriv mg_gl_get_api()->GetTexLevelParameteriv +#define glIsSync mg_gl_get_api()->IsSync +#define glTexStorage1D mg_gl_get_api()->TexStorage1D +#define glGetVertexAttribIiv mg_gl_get_api()->GetVertexAttribIiv +#define glIsEnabledi mg_gl_get_api()->IsEnabledi +#define glMultiDrawElementsIndirect mg_gl_get_api()->MultiDrawElementsIndirect +#define glGetBooleani_v mg_gl_get_api()->GetBooleani_v +#define glGetInternalformativ mg_gl_get_api()->GetInternalformativ +#define glVertexAttribI4ubv mg_gl_get_api()->VertexAttribI4ubv +#define glVertexAttrib2s mg_gl_get_api()->VertexAttrib2s +#define glGetBooleanv mg_gl_get_api()->GetBooleanv +#define glVertexAttrib4iv mg_gl_get_api()->VertexAttrib4iv +#define glGetObjectPtrLabel mg_gl_get_api()->GetObjectPtrLabel +#define glUniformMatrix2x4dv mg_gl_get_api()->UniformMatrix2x4dv +#define glProgramUniform4ui mg_gl_get_api()->ProgramUniform4ui +#define glGetVertexAttribdv mg_gl_get_api()->GetVertexAttribdv +#define glViewportIndexedf mg_gl_get_api()->ViewportIndexedf +#define glDeleteSync mg_gl_get_api()->DeleteSync +#define glCopyImageSubData mg_gl_get_api()->CopyImageSubData +#define glPrimitiveBoundingBox mg_gl_get_api()->PrimitiveBoundingBox +#define glScissorIndexed mg_gl_get_api()->ScissorIndexed +#define glGenTransformFeedbacks mg_gl_get_api()->GenTransformFeedbacks +#define glMemoryBarrierByRegion mg_gl_get_api()->MemoryBarrierByRegion +#define glDeleteTransformFeedbacks mg_gl_get_api()->DeleteTransformFeedbacks +#define glProgramUniform4f mg_gl_get_api()->ProgramUniform4f +#define glBindBuffersBase mg_gl_get_api()->BindBuffersBase +#define glGetTexParameterIuiv mg_gl_get_api()->GetTexParameterIuiv +#define glIsShader mg_gl_get_api()->IsShader +#define glProgramUniform3i mg_gl_get_api()->ProgramUniform3i +#define glGetActiveAtomicCounterBufferiv mg_gl_get_api()->GetActiveAtomicCounterBufferiv +#define glProgramUniformMatrix3x4fv mg_gl_get_api()->ProgramUniformMatrix3x4fv +#define glBufferStorage mg_gl_get_api()->BufferStorage +#define glGetUniformSubroutineuiv mg_gl_get_api()->GetUniformSubroutineuiv +#define glRenderbufferStorageMultisample mg_gl_get_api()->RenderbufferStorageMultisample +#define glGetMultisamplefv mg_gl_get_api()->GetMultisamplefv +#define glVertexAttribDivisor mg_gl_get_api()->VertexAttribDivisor +#define glStencilMask mg_gl_get_api()->StencilMask +#define glBindSampler mg_gl_get_api()->BindSampler +#define glUniformMatrix4dv mg_gl_get_api()->UniformMatrix4dv +#define glBindImageTexture mg_gl_get_api()->BindImageTexture +#define glDrawBuffers mg_gl_get_api()->DrawBuffers +#define glVertexAttrib4Nub mg_gl_get_api()->VertexAttrib4Nub +#define glGetTexImage mg_gl_get_api()->GetTexImage +#define glVertexAttrib3dv mg_gl_get_api()->VertexAttrib3dv +#define glBlitFramebuffer mg_gl_get_api()->BlitFramebuffer +#define glVertexAttrib2d mg_gl_get_api()->VertexAttrib2d +#define glUniform1ui mg_gl_get_api()->Uniform1ui +#define glInvalidateBufferSubData mg_gl_get_api()->InvalidateBufferSubData +#define glEndQuery mg_gl_get_api()->EndQuery +#define glGetUniformuiv mg_gl_get_api()->GetUniformuiv +#define glGetFramebufferAttachmentParameteriv mg_gl_get_api()->GetFramebufferAttachmentParameteriv +#define glProgramUniform2f mg_gl_get_api()->ProgramUniform2f +#define glUniformMatrix3x2fv mg_gl_get_api()->UniformMatrix3x2fv +#define glBindVertexBuffer mg_gl_get_api()->BindVertexBuffer +#define glVertexAttrib2sv mg_gl_get_api()->VertexAttrib2sv +#define glUniform1f mg_gl_get_api()->Uniform1f +#define glDebugMessageCallback mg_gl_get_api()->DebugMessageCallback +#define glReadPixels mg_gl_get_api()->ReadPixels +#define glCompressedTexSubImage1D mg_gl_get_api()->CompressedTexSubImage1D +#define glDrawArraysIndirect mg_gl_get_api()->DrawArraysIndirect +#define glBlendFuncSeparate mg_gl_get_api()->BlendFuncSeparate +#define glCreateShader mg_gl_get_api()->CreateShader +#define glGetTransformFeedbackVarying mg_gl_get_api()->GetTransformFeedbackVarying +#define glAttachShader mg_gl_get_api()->AttachShader +#define glUniformMatrix2x3dv mg_gl_get_api()->UniformMatrix2x3dv +#define glProgramUniform3uiv mg_gl_get_api()->ProgramUniform3uiv +#define glMultiDrawArraysIndirect mg_gl_get_api()->MultiDrawArraysIndirect +#define glUniform2iv mg_gl_get_api()->Uniform2iv +#define glBindBufferRange mg_gl_get_api()->BindBufferRange +#define glTexParameteriv mg_gl_get_api()->TexParameteriv +#define glVertexAttribL3d mg_gl_get_api()->VertexAttribL3d +#define glTexImage3DMultisample mg_gl_get_api()->TexImage3DMultisample +#define glClearTexSubImage mg_gl_get_api()->ClearTexSubImage +#define glVertexAttrib4Nusv mg_gl_get_api()->VertexAttrib4Nusv +#define glInvalidateSubFramebuffer mg_gl_get_api()->InvalidateSubFramebuffer +#define glGetShaderInfoLog mg_gl_get_api()->GetShaderInfoLog +#define glVertexAttribP4ui mg_gl_get_api()->VertexAttribP4ui +#define glViewport mg_gl_get_api()->Viewport +#define glBlendFunci mg_gl_get_api()->BlendFunci +#define glPolygonOffset mg_gl_get_api()->PolygonOffset +#define glProgramUniform2ui mg_gl_get_api()->ProgramUniform2ui +#define glSamplerParameteri mg_gl_get_api()->SamplerParameteri +#define glGetFramebufferParameteriv mg_gl_get_api()->GetFramebufferParameteriv +#define glVertexAttribI2iv mg_gl_get_api()->VertexAttribI2iv +#define glObjectLabel mg_gl_get_api()->ObjectLabel +#define glCompressedTexImage1D mg_gl_get_api()->CompressedTexImage1D +#define glInvalidateTexSubImage mg_gl_get_api()->InvalidateTexSubImage +#define glBindBuffersRange mg_gl_get_api()->BindBuffersRange +#define glCopyBufferSubData mg_gl_get_api()->CopyBufferSubData +#define glVertexAttrib4Nbv mg_gl_get_api()->VertexAttrib4Nbv +#define glObjectPtrLabel mg_gl_get_api()->ObjectPtrLabel +#define glProgramUniform3d mg_gl_get_api()->ProgramUniform3d +#define glGetProgramPipelineiv mg_gl_get_api()->GetProgramPipelineiv +#define glTexStorage3DMultisample mg_gl_get_api()->TexStorage3DMultisample +#define glVertexAttribL3dv mg_gl_get_api()->VertexAttribL3dv +#define glDeleteFramebuffers mg_gl_get_api()->DeleteFramebuffers +#define glCheckFramebufferStatus mg_gl_get_api()->CheckFramebufferStatus +#define glVertexAttribL2dv mg_gl_get_api()->VertexAttribL2dv +#define glProgramUniform1dv mg_gl_get_api()->ProgramUniform1dv +#define glVertexAttrib2f mg_gl_get_api()->VertexAttrib2f +#define glGetVertexAttribIuiv mg_gl_get_api()->GetVertexAttribIuiv +#define glStencilOp mg_gl_get_api()->StencilOp +#define glVertexAttrib3d mg_gl_get_api()->VertexAttrib3d +#define glPointParameteri mg_gl_get_api()->PointParameteri +#define glVertexAttribI1uiv mg_gl_get_api()->VertexAttribI1uiv +#define glClearBufferfv mg_gl_get_api()->ClearBufferfv +#define glBindFragDataLocationIndexed mg_gl_get_api()->BindFragDataLocationIndexed +#define glProgramUniform1d mg_gl_get_api()->ProgramUniform1d +#define glPointParameteriv mg_gl_get_api()->PointParameteriv +#define glFlushMappedBufferRange mg_gl_get_api()->FlushMappedBufferRange +#define glTextureView mg_gl_get_api()->TextureView +#define glGetProgramPipelineInfoLog mg_gl_get_api()->GetProgramPipelineInfoLog +#define glCopyTexImage2D mg_gl_get_api()->CopyTexImage2D +#define glProgramUniform3dv mg_gl_get_api()->ProgramUniform3dv +#define glQueryCounter mg_gl_get_api()->QueryCounter +#define glGetUniformfv mg_gl_get_api()->GetUniformfv +#define glClearStencil mg_gl_get_api()->ClearStencil +#define glGetProgramiv mg_gl_get_api()->GetProgramiv +#define glUniformSubroutinesuiv mg_gl_get_api()->UniformSubroutinesuiv +#define glGetProgramStageiv mg_gl_get_api()->GetProgramStageiv +#define glUniform1iv mg_gl_get_api()->Uniform1iv +#define glGetVertexAttribPointerv mg_gl_get_api()->GetVertexAttribPointerv +#define glTexSubImage1D mg_gl_get_api()->TexSubImage1D +#define glStencilFuncSeparate mg_gl_get_api()->StencilFuncSeparate +#define glGetSubroutineIndex mg_gl_get_api()->GetSubroutineIndex +#define glDrawElementsInstanced mg_gl_get_api()->DrawElementsInstanced +#define glBlendFuncSeparatei mg_gl_get_api()->BlendFuncSeparatei +#define glProgramUniformMatrix3x2dv mg_gl_get_api()->ProgramUniformMatrix3x2dv +#define glGetActiveUniformsiv mg_gl_get_api()->GetActiveUniformsiv +#define glUniformMatrix3fv mg_gl_get_api()->UniformMatrix3fv +#define glProgramUniformMatrix3x4dv mg_gl_get_api()->ProgramUniformMatrix3x4dv +#define glGetSamplerParameterIuiv mg_gl_get_api()->GetSamplerParameterIuiv +#define glVertexAttribI4i mg_gl_get_api()->VertexAttribI4i +#define glBlendEquationSeparate mg_gl_get_api()->BlendEquationSeparate +#define glUniformMatrix4x2fv mg_gl_get_api()->UniformMatrix4x2fv +#define glTexParameterIiv mg_gl_get_api()->TexParameterIiv +#define glDrawTransformFeedbackStream mg_gl_get_api()->DrawTransformFeedbackStream +#define glVertexAttribI1iv mg_gl_get_api()->VertexAttribI1iv +#define glGetUniformIndices mg_gl_get_api()->GetUniformIndices +#define glGetShaderiv mg_gl_get_api()->GetShaderiv +#define glGetActiveUniform mg_gl_get_api()->GetActiveUniform +#define glUniform3uiv mg_gl_get_api()->Uniform3uiv +#define glPatchParameteri mg_gl_get_api()->PatchParameteri +#define glProgramUniformMatrix2dv mg_gl_get_api()->ProgramUniformMatrix2dv +#define glWaitSync mg_gl_get_api()->WaitSync +#define glClearTexImage mg_gl_get_api()->ClearTexImage +#define glDepthRangeIndexed mg_gl_get_api()->DepthRangeIndexed +#define glGetTexParameterIiv mg_gl_get_api()->GetTexParameterIiv +#define glDepthRange mg_gl_get_api()->DepthRange +#define glGetActiveAttrib mg_gl_get_api()->GetActiveAttrib +#define glIsRenderbuffer mg_gl_get_api()->IsRenderbuffer +#define glClearBufferiv mg_gl_get_api()->ClearBufferiv +#define glProgramUniform3fv mg_gl_get_api()->ProgramUniform3fv +#define glVertexAttribI3uiv mg_gl_get_api()->VertexAttribI3uiv +#define glUseProgram mg_gl_get_api()->UseProgram +#define glGetActiveSubroutineName mg_gl_get_api()->GetActiveSubroutineName +#define glProgramUniformMatrix3fv mg_gl_get_api()->ProgramUniformMatrix3fv +#define glProgramUniformMatrix4x3dv mg_gl_get_api()->ProgramUniformMatrix4x3dv +#define glUniformMatrix4x3dv mg_gl_get_api()->UniformMatrix4x3dv +#define glProgramUniform4dv mg_gl_get_api()->ProgramUniform4dv +#define glGetBufferSubData mg_gl_get_api()->GetBufferSubData +#define glVertexAttrib4uiv mg_gl_get_api()->VertexAttrib4uiv +#define glVertexAttrib1f mg_gl_get_api()->VertexAttrib1f +#define glVertexAttrib4usv mg_gl_get_api()->VertexAttrib4usv +#define glDebugMessageInsert mg_gl_get_api()->DebugMessageInsert +#define glEndTransformFeedback mg_gl_get_api()->EndTransformFeedback +#define glTexImage2DMultisample mg_gl_get_api()->TexImage2DMultisample +#define glBindTransformFeedback mg_gl_get_api()->BindTransformFeedback +#define glUniform3dv mg_gl_get_api()->Uniform3dv +#define glUniformMatrix3x2dv mg_gl_get_api()->UniformMatrix3x2dv +#define glGetSamplerParameteriv mg_gl_get_api()->GetSamplerParameteriv +#define glVertexAttribP3uiv mg_gl_get_api()->VertexAttribP3uiv +#define glUniform4d mg_gl_get_api()->Uniform4d +#define glProgramUniformMatrix3dv mg_gl_get_api()->ProgramUniformMatrix3dv +#define glProgramUniform3ui mg_gl_get_api()->ProgramUniform3ui +#define glDeleteVertexArrays mg_gl_get_api()->DeleteVertexArrays +#define glTexParameteri mg_gl_get_api()->TexParameteri +#define glDrawElementsInstancedBaseVertex mg_gl_get_api()->DrawElementsInstancedBaseVertex +#define glGetQueryObjectui64v mg_gl_get_api()->GetQueryObjectui64v +#define glVertexAttrib4Niv mg_gl_get_api()->VertexAttrib4Niv +#define glSamplerParameterfv mg_gl_get_api()->SamplerParameterfv +#define glVertexAttribI4bv mg_gl_get_api()->VertexAttribI4bv +#define glProgramUniform1i mg_gl_get_api()->ProgramUniform1i +#define glProgramUniformMatrix4x2dv mg_gl_get_api()->ProgramUniformMatrix4x2dv +#define glGetSynciv mg_gl_get_api()->GetSynciv +#define glVertexAttrib3f mg_gl_get_api()->VertexAttrib3f +#define glGetQueryObjectiv mg_gl_get_api()->GetQueryObjectiv +#define glGetProgramInfoLog mg_gl_get_api()->GetProgramInfoLog +#define glGetActiveUniformBlockiv mg_gl_get_api()->GetActiveUniformBlockiv +#define glGenQueries mg_gl_get_api()->GenQueries +#define glProgramUniformMatrix4x3fv mg_gl_get_api()->ProgramUniformMatrix4x3fv +#define glTexBuffer mg_gl_get_api()->TexBuffer +#define glShaderStorageBlockBinding mg_gl_get_api()->ShaderStorageBlockBinding +#define glDisable mg_gl_get_api()->Disable +#define glVertexAttribI3ui mg_gl_get_api()->VertexAttribI3ui +#define glIsSampler mg_gl_get_api()->IsSampler +#define glActiveShaderProgram mg_gl_get_api()->ActiveShaderProgram +#define glBindVertexArray mg_gl_get_api()->BindVertexArray +#define glUniformMatrix2x3fv mg_gl_get_api()->UniformMatrix2x3fv +#define glDrawArraysInstanced mg_gl_get_api()->DrawArraysInstanced +#define glVertexAttribI2uiv mg_gl_get_api()->VertexAttribI2uiv +#define glGetQueryObjecti64v mg_gl_get_api()->GetQueryObjecti64v +#define glGetStringi mg_gl_get_api()->GetStringi +#define glBindProgramPipeline mg_gl_get_api()->BindProgramPipeline +#define glBindFramebuffer mg_gl_get_api()->BindFramebuffer +#define glVertexAttrib1d mg_gl_get_api()->VertexAttrib1d +#define glRenderbufferStorage mg_gl_get_api()->RenderbufferStorage +#define glReleaseShaderCompiler mg_gl_get_api()->ReleaseShaderCompiler +#define glUniform2i mg_gl_get_api()->Uniform2i +#define glDrawBuffer mg_gl_get_api()->DrawBuffer +#define glDeleteRenderbuffers mg_gl_get_api()->DeleteRenderbuffers +#define glDeleteBuffers mg_gl_get_api()->DeleteBuffers +#define glGenFramebuffers mg_gl_get_api()->GenFramebuffers +#define glProgramUniformMatrix4dv mg_gl_get_api()->ProgramUniformMatrix4dv +#define glProgramUniform3f mg_gl_get_api()->ProgramUniform3f +#define glProgramUniform2iv mg_gl_get_api()->ProgramUniform2iv +#define glBlendBarrier mg_gl_get_api()->BlendBarrier +#define glVertexAttribL2d mg_gl_get_api()->VertexAttribL2d +#define glCompressedTexSubImage2D mg_gl_get_api()->CompressedTexSubImage2D +#define glUniformMatrix2fv mg_gl_get_api()->UniformMatrix2fv +#define glSamplerParameterf mg_gl_get_api()->SamplerParameterf +#define glUniformMatrix4fv mg_gl_get_api()->UniformMatrix4fv +#define glVertexAttribI2ui mg_gl_get_api()->VertexAttribI2ui +#define glBindTextures mg_gl_get_api()->BindTextures +#define glUniform3d mg_gl_get_api()->Uniform3d +#define glViewportIndexedfv mg_gl_get_api()->ViewportIndexedfv +#define glVertexAttribI4sv mg_gl_get_api()->VertexAttribI4sv +#define glLineWidth mg_gl_get_api()->LineWidth +#define glGetVertexAttribfv mg_gl_get_api()->GetVertexAttribfv +#define glVertexAttribI3iv mg_gl_get_api()->VertexAttribI3iv +#define glUniform1dv mg_gl_get_api()->Uniform1dv +#define glCullFace mg_gl_get_api()->CullFace +#define glCreateProgram mg_gl_get_api()->CreateProgram +#define glUniform4i mg_gl_get_api()->Uniform4i +#define glUniformMatrix4x3fv mg_gl_get_api()->UniformMatrix4x3fv +#define glGetAttribLocation mg_gl_get_api()->GetAttribLocation +#define glGetShaderPrecisionFormat mg_gl_get_api()->GetShaderPrecisionFormat +#define glUniform4iv mg_gl_get_api()->Uniform4iv +#define glCompressedTexSubImage3D mg_gl_get_api()->CompressedTexSubImage3D +#define glBindImageTextures mg_gl_get_api()->BindImageTextures +#define glGetBufferParameteri64v mg_gl_get_api()->GetBufferParameteri64v +#define glFrontFace mg_gl_get_api()->FrontFace +#define glPopDebugGroup mg_gl_get_api()->PopDebugGroup +#define glVertexAttrib1sv mg_gl_get_api()->VertexAttrib1sv +#define glInvalidateBufferData mg_gl_get_api()->InvalidateBufferData +#define glIsVertexArray mg_gl_get_api()->IsVertexArray +#define glScissorArrayv mg_gl_get_api()->ScissorArrayv +#define glValidateProgram mg_gl_get_api()->ValidateProgram +#define glUniform2uiv mg_gl_get_api()->Uniform2uiv +#define glTexSubImage2D mg_gl_get_api()->TexSubImage2D +#define glDebugMessageControl mg_gl_get_api()->DebugMessageControl +#define glFramebufferParameteri mg_gl_get_api()->FramebufferParameteri +#define glGetUniformLocation mg_gl_get_api()->GetUniformLocation +#define glTexStorage3D mg_gl_get_api()->TexStorage3D +#define glPixelStoref mg_gl_get_api()->PixelStoref +#define glDepthRangef mg_gl_get_api()->DepthRangef +#define glVertexAttribI3i mg_gl_get_api()->VertexAttribI3i +#define glUniform1uiv mg_gl_get_api()->Uniform1uiv +#define glDisablei mg_gl_get_api()->Disablei +#define glGetInternalformati64v mg_gl_get_api()->GetInternalformati64v +#define glProgramUniformMatrix2x3dv mg_gl_get_api()->ProgramUniformMatrix2x3dv +#define glGetProgramResourceIndex mg_gl_get_api()->GetProgramResourceIndex +#define glBlendColor mg_gl_get_api()->BlendColor +#define glGenSamplers mg_gl_get_api()->GenSamplers +#define glColorMaski mg_gl_get_api()->ColorMaski +#define glGetGraphicsResetStatus mg_gl_get_api()->GetGraphicsResetStatus +#define glVertexAttribI4uiv mg_gl_get_api()->VertexAttribI4uiv +#define glCreateShaderProgramv mg_gl_get_api()->CreateShaderProgramv +#define glDeleteSamplers mg_gl_get_api()->DeleteSamplers +#define glVertexAttrib3s mg_gl_get_api()->VertexAttrib3s +#define glDrawTransformFeedback mg_gl_get_api()->DrawTransformFeedback +#define glVertexAttribL1d mg_gl_get_api()->VertexAttribL1d +#define glDrawElementsInstancedBaseVertexBaseInstance mg_gl_get_api()->DrawElementsInstancedBaseVertexBaseInstance +#define glClearBufferSubData mg_gl_get_api()->ClearBufferSubData +#define glVertexAttribLFormat mg_gl_get_api()->VertexAttribLFormat +#define glUniform2dv mg_gl_get_api()->Uniform2dv +#define glCopyTexSubImage3D mg_gl_get_api()->CopyTexSubImage3D +#define glCopyTexImage1D mg_gl_get_api()->CopyTexImage1D +#define glFramebufferTexture3D mg_gl_get_api()->FramebufferTexture3D +#define glVertexAttribL4d mg_gl_get_api()->VertexAttribL4d +#define glUnmapBuffer mg_gl_get_api()->UnmapBuffer +#define glGetQueryIndexediv mg_gl_get_api()->GetQueryIndexediv +#define glFenceSync mg_gl_get_api()->FenceSync +#define glDispatchComputeIndirect mg_gl_get_api()->DispatchComputeIndirect +#define glSamplerParameterIuiv mg_gl_get_api()->SamplerParameterIuiv +#define glGetFragDataLocation mg_gl_get_api()->GetFragDataLocation +#define glGetUniformdv mg_gl_get_api()->GetUniformdv +#define glTexImage3D mg_gl_get_api()->TexImage3D +#define glValidateProgramPipeline mg_gl_get_api()->ValidateProgramPipeline +#define glLinkProgram mg_gl_get_api()->LinkProgram +#define glDeleteQueries mg_gl_get_api()->DeleteQueries +#define glFramebufferTexture1D mg_gl_get_api()->FramebufferTexture1D +#define glGetActiveSubroutineUniformName mg_gl_get_api()->GetActiveSubroutineUniformName +#define glProgramUniformMatrix3x2fv mg_gl_get_api()->ProgramUniformMatrix3x2fv +#define glGetTexParameteriv mg_gl_get_api()->GetTexParameteriv +#define glProvokingVertex mg_gl_get_api()->ProvokingVertex +#define glBindAttribLocation mg_gl_get_api()->BindAttribLocation +#define glVertexAttrib3fv mg_gl_get_api()->VertexAttrib3fv +#define glGetActiveUniformBlockName mg_gl_get_api()->GetActiveUniformBlockName +#define glDrawArrays mg_gl_get_api()->DrawArrays +#define glGetnUniformuiv mg_gl_get_api()->GetnUniformuiv +#define glProgramUniform1uiv mg_gl_get_api()->ProgramUniform1uiv +#define glDrawElementsIndirect mg_gl_get_api()->DrawElementsIndirect +#define glVertexAttribI4usv mg_gl_get_api()->VertexAttribI4usv +#define glBlendEquationSeparatei mg_gl_get_api()->BlendEquationSeparatei +#define glDrawElements mg_gl_get_api()->DrawElements +#define glGetShaderSource mg_gl_get_api()->GetShaderSource +#define glTransformFeedbackVaryings mg_gl_get_api()->TransformFeedbackVaryings +#define glGetError mg_gl_get_api()->GetError +#define glIsBuffer mg_gl_get_api()->IsBuffer +#define glClearBufferuiv mg_gl_get_api()->ClearBufferuiv +#define glGetVertexAttribiv mg_gl_get_api()->GetVertexAttribiv +#define glGetProgramResourceName mg_gl_get_api()->GetProgramResourceName +#define glUniform2ui mg_gl_get_api()->Uniform2ui +#define glStencilFunc mg_gl_get_api()->StencilFunc +#define glEnablei mg_gl_get_api()->Enablei +#define glSamplerParameteriv mg_gl_get_api()->SamplerParameteriv +#define glGetInteger64i_v mg_gl_get_api()->GetInteger64i_v +#define glProgramUniform4i mg_gl_get_api()->ProgramUniform4i +#define glUniform4ui mg_gl_get_api()->Uniform4ui +#define glUniformMatrix2x4fv mg_gl_get_api()->UniformMatrix2x4fv +#define glReadnPixels mg_gl_get_api()->ReadnPixels +#define glDrawTransformFeedbackInstanced mg_gl_get_api()->DrawTransformFeedbackInstanced +#define glPointSize mg_gl_get_api()->PointSize +#define glProgramUniformMatrix4fv mg_gl_get_api()->ProgramUniformMatrix4fv +#define glViewportArrayv mg_gl_get_api()->ViewportArrayv +#define glStencilOpSeparate mg_gl_get_api()->StencilOpSeparate +#define glUniform3ui mg_gl_get_api()->Uniform3ui +#define glUniform4uiv mg_gl_get_api()->Uniform4uiv +#define glUniform3iv mg_gl_get_api()->Uniform3iv +#define glUniform4f mg_gl_get_api()->Uniform4f +#define glFramebufferTexture2D mg_gl_get_api()->FramebufferTexture2D +#define glGetIntegeri_v mg_gl_get_api()->GetIntegeri_v +#define glMultiDrawElements mg_gl_get_api()->MultiDrawElements +#define glUniformMatrix4x2dv mg_gl_get_api()->UniformMatrix4x2dv +#define glProgramUniformMatrix2x3fv mg_gl_get_api()->ProgramUniformMatrix2x3fv +#define glCopyTexSubImage1D mg_gl_get_api()->CopyTexSubImage1D +#define glTexSubImage3D mg_gl_get_api()->TexSubImage3D +#define glGetActiveSubroutineUniformiv mg_gl_get_api()->GetActiveSubroutineUniformiv +#define glGenProgramPipelines mg_gl_get_api()->GenProgramPipelines +#define glProgramUniform4iv mg_gl_get_api()->ProgramUniform4iv +#define glUniformMatrix3x4fv mg_gl_get_api()->UniformMatrix3x4fv +#define glUniformBlockBinding mg_gl_get_api()->UniformBlockBinding +#define glDepthRangeArrayv mg_gl_get_api()->DepthRangeArrayv +#define glTexParameterfv mg_gl_get_api()->TexParameterfv +#define glMapBuffer mg_gl_get_api()->MapBuffer +#define glDeleteProgramPipelines mg_gl_get_api()->DeleteProgramPipelines +#define glMinSampleShading mg_gl_get_api()->MinSampleShading +#define glPauseTransformFeedback mg_gl_get_api()->PauseTransformFeedback +#define glEndQueryIndexed mg_gl_get_api()->EndQueryIndexed +#define glGetProgramBinary mg_gl_get_api()->GetProgramBinary +#define glProgramUniform2i mg_gl_get_api()->ProgramUniform2i +#define glDepthMask mg_gl_get_api()->DepthMask +#define glActiveTexture mg_gl_get_api()->ActiveTexture +#define glUseProgramStages mg_gl_get_api()->UseProgramStages +#define glPatchParameterfv mg_gl_get_api()->PatchParameterfv +#define glShaderBinary mg_gl_get_api()->ShaderBinary +#define glGetFloatv mg_gl_get_api()->GetFloatv +#define glProgramUniform1f mg_gl_get_api()->ProgramUniform1f +#define glTexImage1D mg_gl_get_api()->TexImage1D +#define glProgramUniform2uiv mg_gl_get_api()->ProgramUniform2uiv +#define glClearBufferData mg_gl_get_api()->ClearBufferData +#define glUniformMatrix3dv mg_gl_get_api()->UniformMatrix3dv +#define glCompressedTexImage2D mg_gl_get_api()->CompressedTexImage2D +#define glVertexAttrib4fv mg_gl_get_api()->VertexAttrib4fv +#define glGetProgramResourceiv mg_gl_get_api()->GetProgramResourceiv +#define glGetString mg_gl_get_api()->GetString +#define glProgramUniformMatrix2fv mg_gl_get_api()->ProgramUniformMatrix2fv +#define glGetVertexAttribLdv mg_gl_get_api()->GetVertexAttribLdv +#define glVertexAttrib4Nubv mg_gl_get_api()->VertexAttrib4Nubv +#define glTexBufferRange mg_gl_get_api()->TexBufferRange +#define glUniformMatrix3x4dv mg_gl_get_api()->UniformMatrix3x4dv +#define glGetProgramInterfaceiv mg_gl_get_api()->GetProgramInterfaceiv +#define glTexParameterIuiv mg_gl_get_api()->TexParameterIuiv +#define glDeleteShader mg_gl_get_api()->DeleteShader +#define glGetFloati_v mg_gl_get_api()->GetFloati_v +#define glDrawTransformFeedbackStreamInstanced mg_gl_get_api()->DrawTransformFeedbackStreamInstanced +#define glVertexAttrib4s mg_gl_get_api()->VertexAttrib4s +#endif // __GL_API_H__ diff --git a/src/gl_loader.c b/src/gl_loader.c index da1301d..27421f4 100644 --- a/src/gl_loader.c +++ b/src/gl_loader.c @@ -1,2274 +1,9450 @@ -/******************************************************** -* -* @file: gl_loader.c -* @note: auto-generated by glapi.py from gl.xml -* @date: 12/072023 -* -*********************************************************/ -#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_gl44(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"); - api->BufferStorage = loadProc("glBufferStorage"); - api->ClearTexImage = loadProc("glClearTexImage"); - api->ClearTexSubImage = loadProc("glClearTexSubImage"); - api->BindBuffersBase = loadProc("glBindBuffersBase"); - api->BindBuffersRange = loadProc("glBindBuffersRange"); - api->BindTextures = loadProc("glBindTextures"); - api->BindSamplers = loadProc("glBindSamplers"); - api->BindImageTextures = loadProc("glBindImageTextures"); - api->BindVertexBuffers = loadProc("glBindVertexBuffers"); -} - -void mg_gl_load_gles30(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_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"); - 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); } - +/******************************************************** +* +* @file: gl_loader.c +* @note: auto-generated by glapi.py from gl.xml +* @date: 07/082023 +* +*********************************************************/ +#include"gl_loader.h" +#include"platform.h" + +mp_thread_local mg_gl_api* __mgGLAPI = 0; +mg_gl_api __mgGLNoAPI; + +void mg_glPointParameterfv_noimpl(GLenum pname, const GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3fv_noimpl(GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1i_noimpl(GLint location, GLint v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP3ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP3ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClampColor_noimpl(GLenum target, GLenum clamp) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClampColor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexImage3D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2x4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2x4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBuffer_noimpl(GLenum target, GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glGetUniformBlockIndex_noimpl(GLuint program, const GLchar * uniformBlockName) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformBlockIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glInvalidateFramebuffer_noimpl(GLenum target, GLsizei numAttachments, const GLenum * attachments) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPixelStorei_noimpl(GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPixelStorei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindTexture_noimpl(GLenum target, GLuint texture) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nuiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsTexture_noimpl(GLuint texture) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glVertexAttrib4d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2x4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2x4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetObjectLabel_noimpl(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetObjectLabel is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBeginConditionalRender_noimpl(GLuint id, GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBeginConditionalRender is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsFramebuffer_noimpl(GLuint framebuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glCompileShader_noimpl(GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompileShader is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribBinding_noimpl(GLuint attribindex, GLuint bindingindex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribBinding is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL1dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL1dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1fv_noimpl(GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage2D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFlush_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFlush is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP2uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP2uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glProgramUniform4fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribLPointer_noimpl(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribLPointer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLenum mg_glClientWaitSync_noimpl(GLsync sync, GLbitfield flags, GLuint64 timeout) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClientWaitSync is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLenum)0); +} +void mg_glUniform1d_noimpl(GLint location, GLdouble x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1ui_noimpl(GLuint program, GLint location, GLuint v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glColorMask_noimpl(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glColorMask is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearDepth_noimpl(GLdouble depth) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearDepth is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetInteger64v_noimpl(GLenum pname, GLint64 * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetInteger64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP2ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP2ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4ui_noimpl(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendEquationi_noimpl(GLuint buf, GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendEquationi is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawRangeElements_noimpl(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawRangeElements is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateTexImage_noimpl(GLuint texture, GLint level) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateTexImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSampleMaski_noimpl(GLuint maskNumber, GLbitfield mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSampleMaski is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetProgramResourceLocationIndex_noimpl(GLuint program, GLenum programInterface, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceLocationIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glVertexAttrib4dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindFragDataLocation_noimpl(GLuint program, GLuint color, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindFragDataLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetFragDataIndex_noimpl(GLuint program, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFragDataIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glGetTexLevelParameterfv_noimpl(GLenum target, GLint level, GLenum pname, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexLevelParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP4uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawArrays_noimpl(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawArrays is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsTransformFeedback_noimpl(GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glGetUniformiv_noimpl(GLuint program, GLint location, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBufferData_noimpl(GLenum target, GLsizeiptr size, const void * data, GLenum usage) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBufferData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetCompressedTexImage_noimpl(GLenum target, GLint level, void * img) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetCompressedTexImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsQuery_noimpl(GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsQuery is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glClearColor_noimpl(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearColor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendFunc_noimpl(GLenum sfactor, GLenum dfactor) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendFunc is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetDoublei_v_noimpl(GLenum target, GLuint index, GLdouble * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetDoublei_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTexture_noimpl(GLenum target, GLenum attachment, GLuint texture, GLint level) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilMaskSeparate_noimpl(GLenum face, GLuint mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilMaskSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPrimitiveRestartIndex_noimpl(GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPrimitiveRestartIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP1ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP1ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribIFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribIFormat is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMemoryBarrier_noimpl(GLbitfield barriers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMemoryBarrier is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetSubroutineUniformLocation_noimpl(GLuint program, GLenum shadertype, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSubroutineUniformLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glBindRenderbuffer_noimpl(GLenum target, GLuint renderbuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPushDebugGroup_noimpl(GLenum source, GLuint id, GLsizei length, const GLchar * message) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPushDebugGroup is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenTextures_noimpl(GLsizei n, GLuint * textures) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenTextures is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetIntegerv_noimpl(GLenum pname, GLint * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetIntegerv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryObjectuiv_noimpl(GLuint id, GLenum pname, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryObjectuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4fv_noimpl(GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glHint_noimpl(GLenum target, GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glHint is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameterf_noimpl(GLenum target, GLenum pname, GLfloat param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameterf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawRangeElementsBaseVertex_noimpl(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawRangeElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClear_noimpl(GLbitfield mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClear is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBufferBase_noimpl(GLenum target, GLuint index, GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBufferBase is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryiv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramBinary_noimpl(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramBinary is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glScissorIndexedv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glScissorIndexedv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1fv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexStorage2D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4f_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramParameteri_noimpl(GLuint program, GLenum pname, GLint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEnable_noimpl(GLenum cap) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEnable is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBufferPointerv_noimpl(GLenum target, GLenum pname, void ** params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBufferPointerv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glLogicOp_noimpl(GLenum opcode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glLogicOp is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthFunc_noimpl(GLenum func) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthFunc is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2d_noimpl(GLint location, GLdouble x, GLdouble y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDetachShader_noimpl(GLuint program, GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDetachShader is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexBindingDivisor_noimpl(GLuint bindingindex, GLuint divisor) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexBindingDivisor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsProgramPipeline_noimpl(GLuint pipeline) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glProgramUniform1fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2fv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetDoublev_noimpl(GLenum pname, GLdouble * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetDoublev is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glResumeTransformFeedback_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glResumeTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDispatchCompute_noimpl(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDispatchCompute is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4bv_noimpl(GLuint index, const GLbyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4bv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSamplerParameterfv_noimpl(GLuint sampler, GLenum pname, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSamplerParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1s_noimpl(GLuint index, GLshort x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1s is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI2i_noimpl(GLuint index, GLint x, GLint y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI2i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSampleCoverage_noimpl(GLfloat value, GLboolean invert) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSampleCoverage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBufferSubData_noimpl(GLenum target, GLintptr offset, GLsizeiptr size, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI1ui_noimpl(GLuint index, GLuint x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI1ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEndConditionalRender_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEndConditionalRender is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetPointerv_noimpl(GLenum pname, void ** params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetPointerv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetnUniformiv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetnUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendEquation_noimpl(GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendEquation is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetnUniformfv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetnUniformfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nsv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nsv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2fv_noimpl(GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3f_noimpl(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenerateMipmap_noimpl(GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenerateMipmap is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenRenderbuffers_noimpl(GLsizei n, GLuint * renderbuffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenRenderbuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsBaseVertex_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindVertexBuffers_noimpl(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindVertexBuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glScissor_noimpl(GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glScissor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void * mg_glMapBufferRange_noimpl(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMapBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((void *)0); +} +void mg_glProgramUniformMatrix4x2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4x2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexParameterfv_noimpl(GLenum target, GLenum pname, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2f_noimpl(GLint location, GLfloat v0, GLfloat v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribFormat is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsEnabled_noimpl(GLenum cap) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsEnabled is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glClearBufferfi_noimpl(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferfi is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetRenderbufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetRenderbufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTextureLayer_noimpl(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTextureLayer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointParameterf_noimpl(GLenum pname, GLfloat param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointParameterf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenVertexArrays_noimpl(GLsizei n, GLuint * arrays) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenVertexArrays is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetAttachedShaders_noimpl(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetAttachedShaders is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferRenderbuffer_noimpl(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteTextures_noimpl(GLsizei n, const GLuint * textures) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteTextures is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBeginQuery_noimpl(GLenum target, GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBeginQuery is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4dv_noimpl(GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribIPointer_noimpl(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribIPointer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSamplerParameterIiv_noimpl(GLuint sampler, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSamplerParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBeginQueryIndexed_noimpl(GLenum target, GLuint index, GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBeginQueryIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBeginTransformFeedback_noimpl(GLenum primitiveMode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBeginTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3i_noimpl(GLint location, GLint v0, GLint v1, GLint v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniformName_noimpl(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniformName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetProgramResourceLocation_noimpl(GLuint program, GLenum programInterface, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glShaderSource_noimpl(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glShaderSource is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameterIiv_noimpl(GLuint sampler, GLenum pname, const GLint * param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFinish_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFinish is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawArraysInstancedBaseInstance_noimpl(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawArraysInstancedBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawElementsBaseVertex_noimpl(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawElementsBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glReadBuffer_noimpl(GLenum src) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glReadBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenBuffers_noimpl(GLsizei n, GLuint * buffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenBuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearDepthf_noimpl(GLfloat d) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearDepthf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribPointer_noimpl(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribPointer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL4dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexStorage2DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage2DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindSamplers_noimpl(GLuint first, GLsizei count, const GLuint * samplers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindSamplers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEnableVertexAttribArray_noimpl(GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEnableVertexAttribArray is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4ubv_noimpl(GLuint index, const GLubyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4ubv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glGetDebugMessageLog_noimpl(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetDebugMessageLog is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glDisableVertexAttribArray_noimpl(GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDisableVertexAttribArray is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsInstancedBaseInstance_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsInstancedBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPolygonMode_noimpl(GLenum face, GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPolygonMode is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP1uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP1uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI1i_noimpl(GLuint index, GLint x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI1i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexLevelParameteriv_noimpl(GLenum target, GLint level, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexLevelParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsSync_noimpl(GLsync sync) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsSync is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glTexStorage1D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribIiv_noimpl(GLuint index, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsEnabledi_noimpl(GLenum target, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsEnabledi is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glMultiDrawElementsIndirect_noimpl(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawElementsIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBooleani_v_noimpl(GLenum target, GLuint index, GLboolean * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBooleani_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetInternalformativ_noimpl(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetInternalformativ is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4ubv_noimpl(GLuint index, const GLubyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4ubv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2s_noimpl(GLuint index, GLshort x, GLshort y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2s is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBooleanv_noimpl(GLenum pname, GLboolean * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBooleanv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetObjectPtrLabel_noimpl(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetObjectPtrLabel is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2x4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2x4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribdv_noimpl(GLuint index, GLenum pname, GLdouble * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribdv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glViewportIndexedf_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glViewportIndexedf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteSync_noimpl(GLsync sync) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteSync is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyImageSubData_noimpl(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyImageSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPrimitiveBoundingBox_noimpl(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPrimitiveBoundingBox is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glScissorIndexed_noimpl(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glScissorIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenTransformFeedbacks_noimpl(GLsizei n, GLuint * ids) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenTransformFeedbacks is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMemoryBarrierByRegion_noimpl(GLbitfield barriers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMemoryBarrierByRegion is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteTransformFeedbacks_noimpl(GLsizei n, const GLuint * ids) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteTransformFeedbacks is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBuffersBase_noimpl(GLenum target, GLuint first, GLsizei count, const GLuint * buffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBuffersBase is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexParameterIuiv_noimpl(GLenum target, GLenum pname, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsShader_noimpl(GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsShader is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glProgramUniform3i_noimpl(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveAtomicCounterBufferiv_noimpl(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveAtomicCounterBufferiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3x4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3x4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBufferStorage_noimpl(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBufferStorage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformSubroutineuiv_noimpl(GLenum shadertype, GLint location, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformSubroutineuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glRenderbufferStorageMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glRenderbufferStorageMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetMultisamplefv_noimpl(GLenum pname, GLuint index, GLfloat * val) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetMultisamplefv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribDivisor_noimpl(GLuint index, GLuint divisor) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribDivisor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilMask_noimpl(GLuint mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilMask is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindSampler_noimpl(GLuint unit, GLuint sampler) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindSampler is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindImageTexture_noimpl(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindImageTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawBuffers_noimpl(GLsizei n, const GLenum * bufs) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawBuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nub_noimpl(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nub is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexImage_noimpl(GLenum target, GLint level, GLenum format, GLenum type, void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlitFramebuffer_noimpl(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlitFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2d_noimpl(GLuint index, GLdouble x, GLdouble y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1ui_noimpl(GLint location, GLuint v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateBufferSubData_noimpl(GLuint buffer, GLintptr offset, GLsizeiptr length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEndQuery_noimpl(GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEndQuery is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformuiv_noimpl(GLuint program, GLint location, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetFramebufferAttachmentParameteriv_noimpl(GLenum target, GLenum attachment, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFramebufferAttachmentParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3x2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3x2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindVertexBuffer_noimpl(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindVertexBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1f_noimpl(GLint location, GLfloat v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDebugMessageCallback_noimpl(GLDEBUGPROC callback, const void * userParam) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDebugMessageCallback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glReadPixels_noimpl(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glReadPixels is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawArraysIndirect_noimpl(GLenum mode, const void * indirect) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawArraysIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendFuncSeparate_noimpl(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendFuncSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glCreateShader_noimpl(GLenum type) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCreateShader is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glGetTransformFeedbackVarying_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTransformFeedbackVarying is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glAttachShader_noimpl(GLuint program, GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glAttachShader is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2x3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2x3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawArraysIndirect_noimpl(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawArraysIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2iv_noimpl(GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBufferRange_noimpl(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameteriv_noimpl(GLenum target, GLenum pname, const GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL3d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL3d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage3DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage3DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearTexSubImage_noimpl(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearTexSubImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nusv_noimpl(GLuint index, const GLushort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nusv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateSubFramebuffer_noimpl(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateSubFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetShaderInfoLog_noimpl(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetShaderInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP4ui_noimpl(GLuint index, GLenum type, GLboolean normalized, GLuint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP4ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glViewport_noimpl(GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glViewport is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendFunci_noimpl(GLuint buf, GLenum src, GLenum dst) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendFunci is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPolygonOffset_noimpl(GLfloat factor, GLfloat units) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPolygonOffset is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameteri_noimpl(GLuint sampler, GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetFramebufferParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFramebufferParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI2iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI2iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glObjectLabel_noimpl(GLenum identifier, GLuint name, GLsizei length, const GLchar * label) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glObjectLabel is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexImage1D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateTexSubImage_noimpl(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateTexSubImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindBuffersRange_noimpl(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindBuffersRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyBufferSubData_noimpl(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nbv_noimpl(GLuint index, const GLbyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nbv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glObjectPtrLabel_noimpl(const void * ptr, GLsizei length, const GLchar * label) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glObjectPtrLabel is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3d_noimpl(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramPipelineiv_noimpl(GLuint pipeline, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramPipelineiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexStorage3DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage3DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL3dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteFramebuffers_noimpl(GLsizei n, const GLuint * framebuffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteFramebuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLenum mg_glCheckFramebufferStatus_noimpl(GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCheckFramebufferStatus is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLenum)0); +} +void mg_glVertexAttribL2dv_noimpl(GLuint index, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib2f_noimpl(GLuint index, GLfloat x, GLfloat y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib2f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribIuiv_noimpl(GLuint index, GLenum pname, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilOp_noimpl(GLenum fail, GLenum zfail, GLenum zpass) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilOp is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointParameteri_noimpl(GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI1uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI1uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferfv_noimpl(GLenum buffer, GLint drawbuffer, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindFragDataLocationIndexed_noimpl(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindFragDataLocationIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1d_noimpl(GLuint program, GLint location, GLdouble v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointParameteriv_noimpl(GLenum pname, const GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFlushMappedBufferRange_noimpl(GLenum target, GLintptr offset, GLsizeiptr length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFlushMappedBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTextureView_noimpl(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTextureView is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramPipelineInfoLog_noimpl(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramPipelineInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexImage2D_noimpl(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glQueryCounter_noimpl(GLuint id, GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glQueryCounter is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformfv_noimpl(GLuint program, GLint location, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearStencil_noimpl(GLint s) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearStencil is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramiv_noimpl(GLuint program, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformSubroutinesuiv_noimpl(GLenum shadertype, GLsizei count, const GLuint * indices) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformSubroutinesuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramStageiv_noimpl(GLuint program, GLenum shadertype, GLenum pname, GLint * values) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramStageiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1iv_noimpl(GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribPointerv_noimpl(GLuint index, GLenum pname, void ** pointer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribPointerv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilFuncSeparate_noimpl(GLenum face, GLenum func, GLint ref, GLuint mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilFuncSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glGetSubroutineIndex_noimpl(GLuint program, GLenum shadertype, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSubroutineIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glDrawElementsInstanced_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsInstanced is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendFuncSeparatei_noimpl(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendFuncSeparatei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3x2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3x2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniformsiv_noimpl(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniformsiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3x4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3x4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSamplerParameterIuiv_noimpl(GLuint sampler, GLenum pname, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSamplerParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4i_noimpl(GLuint index, GLint x, GLint y, GLint z, GLint w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendEquationSeparate_noimpl(GLenum modeRGB, GLenum modeAlpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendEquationSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4x2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4x2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameterIiv_noimpl(GLenum target, GLenum pname, const GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawTransformFeedbackStream_noimpl(GLenum mode, GLuint id, GLuint stream) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawTransformFeedbackStream is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI1iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI1iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetUniformIndices_noimpl(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformIndices is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetShaderiv_noimpl(GLuint shader, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetShaderiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniform_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniform is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3uiv_noimpl(GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPatchParameteri_noimpl(GLenum pname, GLint value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPatchParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glWaitSync_noimpl(GLsync sync, GLbitfield flags, GLuint64 timeout) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glWaitSync is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearTexImage_noimpl(GLuint texture, GLint level, GLenum format, GLenum type, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearTexImage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthRangeIndexed_noimpl(GLuint index, GLdouble n, GLdouble f) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthRangeIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexParameterIiv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexParameterIiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthRange_noimpl(GLdouble n, GLdouble f) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveAttrib_noimpl(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveAttrib is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsRenderbuffer_noimpl(GLuint renderbuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsRenderbuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glClearBufferiv_noimpl(GLenum buffer, GLint drawbuffer, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3fv_noimpl(GLuint program, GLint location, GLsizei count, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI3uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI3uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUseProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUseProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveSubroutineName_noimpl(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveSubroutineName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4x3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4x3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4x3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4x3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4dv_noimpl(GLuint program, GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBufferSubData_noimpl(GLenum target, GLintptr offset, GLsizeiptr size, void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1f_noimpl(GLuint index, GLfloat x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4usv_noimpl(GLuint index, const GLushort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4usv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDebugMessageInsert_noimpl(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDebugMessageInsert is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEndTransformFeedback_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEndTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage2DMultisample_noimpl(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage2DMultisample is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindTransformFeedback_noimpl(GLenum target, GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3dv_noimpl(GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3x2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3x2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSamplerParameteriv_noimpl(GLuint sampler, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSamplerParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribP3uiv_noimpl(GLuint index, GLenum type, GLboolean normalized, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribP3uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4d_noimpl(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3ui_noimpl(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteVertexArrays_noimpl(GLsizei n, const GLuint * arrays) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteVertexArrays is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameteri_noimpl(GLenum target, GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsInstancedBaseVertex_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsInstancedBaseVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryObjectui64v_noimpl(GLuint id, GLenum pname, GLuint64 * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryObjectui64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Niv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Niv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameterfv_noimpl(GLuint sampler, GLenum pname, const GLfloat * param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4bv_noimpl(GLuint index, const GLbyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4bv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1i_noimpl(GLuint program, GLint location, GLint v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4x2dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4x2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetSynciv_noimpl(GLsync sync, GLenum pname, GLsizei count, GLsizei * length, GLint * values) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetSynciv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3f_noimpl(GLuint index, GLfloat x, GLfloat y, GLfloat z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryObjectiv_noimpl(GLuint id, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryObjectiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramInfoLog_noimpl(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramInfoLog is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniformBlockiv_noimpl(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniformBlockiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenQueries_noimpl(GLsizei n, GLuint * ids) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenQueries is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4x3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4x3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexBuffer_noimpl(GLenum target, GLenum internalformat, GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glShaderStorageBlockBinding_noimpl(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glShaderStorageBlockBinding is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDisable_noimpl(GLenum cap) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDisable is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI3ui_noimpl(GLuint index, GLuint x, GLuint y, GLuint z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI3ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsSampler_noimpl(GLuint sampler) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsSampler is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glActiveShaderProgram_noimpl(GLuint pipeline, GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glActiveShaderProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindVertexArray_noimpl(GLuint array) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindVertexArray is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2x3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2x3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawArraysInstanced_noimpl(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawArraysInstanced is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI2uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI2uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetQueryObjecti64v_noimpl(GLuint id, GLenum pname, GLint64 * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryObjecti64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +const GLubyte * mg_glGetStringi_noimpl(GLenum name, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetStringi is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((const GLubyte *)0); +} +void mg_glBindProgramPipeline_noimpl(GLuint pipeline) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindFramebuffer_noimpl(GLenum target, GLuint framebuffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindFramebuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1d_noimpl(GLuint index, GLdouble x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glRenderbufferStorage_noimpl(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glRenderbufferStorage is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glReleaseShaderCompiler_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glReleaseShaderCompiler is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2i_noimpl(GLint location, GLint v0, GLint v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawBuffer_noimpl(GLenum buf) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteRenderbuffers_noimpl(GLsizei n, const GLuint * renderbuffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteRenderbuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteBuffers_noimpl(GLsizei n, const GLuint * buffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteBuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenFramebuffers_noimpl(GLsizei n, GLuint * framebuffers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenFramebuffers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform3f_noimpl(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform3f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendBarrier_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendBarrier is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL2d_noimpl(GLuint index, GLdouble x, GLdouble y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL2d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameterf_noimpl(GLuint sampler, GLenum pname, GLfloat param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameterf is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI2ui_noimpl(GLuint index, GLuint x, GLuint y) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI2ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindTextures_noimpl(GLuint first, GLsizei count, const GLuint * textures) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindTextures is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3d_noimpl(GLint location, GLdouble x, GLdouble y, GLdouble z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glViewportIndexedfv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glViewportIndexedfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glLineWidth_noimpl(GLfloat width) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glLineWidth is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribfv_noimpl(GLuint index, GLenum pname, GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI3iv_noimpl(GLuint index, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI3iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1dv_noimpl(GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCullFace_noimpl(GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCullFace is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glCreateProgram_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCreateProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glUniform4i_noimpl(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4x3fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4x3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetAttribLocation_noimpl(GLuint program, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetAttribLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glGetShaderPrecisionFormat_noimpl(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetShaderPrecisionFormat is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4iv_noimpl(GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindImageTextures_noimpl(GLuint first, GLsizei count, const GLuint * textures) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindImageTextures is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetBufferParameteri64v_noimpl(GLenum target, GLenum pname, GLint64 * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetBufferParameteri64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFrontFace_noimpl(GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFrontFace is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPopDebugGroup_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPopDebugGroup is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib1sv_noimpl(GLuint index, const GLshort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib1sv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glInvalidateBufferData_noimpl(GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glInvalidateBufferData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glIsVertexArray_noimpl(GLuint array) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsVertexArray is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glScissorArrayv_noimpl(GLuint first, GLsizei count, const GLint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glScissorArrayv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glValidateProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glValidateProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2uiv_noimpl(GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexSubImage2D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexSubImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDebugMessageControl_noimpl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDebugMessageControl is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferParameteri_noimpl(GLenum target, GLenum pname, GLint param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferParameteri is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetUniformLocation_noimpl(GLuint program, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glTexStorage3D_noimpl(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexStorage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPixelStoref_noimpl(GLenum pname, GLfloat param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPixelStoref is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthRangef_noimpl(GLfloat n, GLfloat f) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthRangef is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI3i_noimpl(GLuint index, GLint x, GLint y, GLint z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI3i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform1uiv_noimpl(GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform1uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDisablei_noimpl(GLenum target, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDisablei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetInternalformati64v_noimpl(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetInternalformati64v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2x3dv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2x3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glGetProgramResourceIndex_noimpl(GLuint program, GLenum programInterface, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceIndex is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glBlendColor_noimpl(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendColor is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenSamplers_noimpl(GLsizei count, GLuint * samplers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenSamplers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glColorMaski_noimpl(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glColorMaski is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLenum mg_glGetGraphicsResetStatus_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetGraphicsResetStatus is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLenum)0); +} +void mg_glVertexAttribI4uiv_noimpl(GLuint index, const GLuint * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLuint mg_glCreateShaderProgramv_noimpl(GLenum type, GLsizei count, const GLchar *const* strings) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCreateShaderProgramv is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLuint)0); +} +void mg_glDeleteSamplers_noimpl(GLsizei count, const GLuint * samplers) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteSamplers is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3s_noimpl(GLuint index, GLshort x, GLshort y, GLshort z) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3s is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawTransformFeedback_noimpl(GLenum mode, GLuint id) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL1d_noimpl(GLuint index, GLdouble x) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL1d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsInstancedBaseVertexBaseInstance is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferSubData_noimpl(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferSubData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribLFormat_noimpl(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribLFormat is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2dv_noimpl(GLint location, GLsizei count, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexImage1D_noimpl(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTexture3D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTexture3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribL4d_noimpl(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribL4d is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLboolean mg_glUnmapBuffer_noimpl(GLenum target) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUnmapBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glGetQueryIndexediv_noimpl(GLenum target, GLuint index, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetQueryIndexediv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLsync mg_glFenceSync_noimpl(GLenum condition, GLbitfield flags) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFenceSync is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLsync)0); +} +void mg_glDispatchComputeIndirect_noimpl(GLintptr indirect) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDispatchComputeIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameterIuiv_noimpl(GLuint sampler, GLenum pname, const GLuint * param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLint mg_glGetFragDataLocation_noimpl(GLuint program, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFragDataLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLint)0); +} +void mg_glGetUniformdv_noimpl(GLuint program, GLint location, GLdouble * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetUniformdv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage3D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glValidateProgramPipeline_noimpl(GLuint pipeline) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glValidateProgramPipeline is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glLinkProgram_noimpl(GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glLinkProgram is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteQueries_noimpl(GLsizei n, const GLuint * ids) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteQueries is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTexture1D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTexture1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveSubroutineUniformName_noimpl(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveSubroutineUniformName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix3x2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix3x2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetTexParameteriv_noimpl(GLenum target, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetTexParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProvokingVertex_noimpl(GLenum mode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProvokingVertex is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBindAttribLocation_noimpl(GLuint program, GLuint index, const GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBindAttribLocation is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib3fv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveUniformBlockName_noimpl(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveUniformBlockName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawArrays_noimpl(GLenum mode, GLint first, GLsizei count) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawArrays is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetnUniformuiv_noimpl(GLuint program, GLint location, GLsizei bufSize, GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetnUniformuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElementsIndirect_noimpl(GLenum mode, GLenum type, const void * indirect) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElementsIndirect is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttribI4usv_noimpl(GLuint index, const GLushort * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttribI4usv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glBlendEquationSeparatei_noimpl(GLuint buf, GLenum modeRGB, GLenum modeAlpha) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glBlendEquationSeparatei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawElements_noimpl(GLenum mode, GLsizei count, GLenum type, const void * indices) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawElements is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetShaderSource_noimpl(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetShaderSource is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTransformFeedbackVaryings_noimpl(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTransformFeedbackVaryings is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +GLenum mg_glGetError_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetError is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLenum)0); +} +GLboolean mg_glIsBuffer_noimpl(GLuint buffer) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glIsBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((GLboolean)0); +} +void mg_glClearBufferuiv_noimpl(GLenum buffer, GLint drawbuffer, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribiv_noimpl(GLuint index, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramResourceName_noimpl(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceName is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform2ui_noimpl(GLint location, GLuint v0, GLuint v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform2ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilFunc_noimpl(GLenum func, GLint ref, GLuint mask) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilFunc is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEnablei_noimpl(GLenum target, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEnablei is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glSamplerParameteriv_noimpl(GLuint sampler, GLenum pname, const GLint * param) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glSamplerParameteriv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetInteger64i_v_noimpl(GLenum target, GLuint index, GLint64 * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetInteger64i_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4i_noimpl(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4ui_noimpl(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix2x4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix2x4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glReadnPixels_noimpl(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glReadnPixels is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawTransformFeedbackInstanced_noimpl(GLenum mode, GLuint id, GLsizei instancecount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawTransformFeedbackInstanced is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPointSize_noimpl(GLfloat size) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPointSize is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix4fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glViewportArrayv_noimpl(GLuint first, GLsizei count, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glViewportArrayv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glStencilOpSeparate_noimpl(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glStencilOpSeparate is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3ui_noimpl(GLint location, GLuint v0, GLuint v1, GLuint v2) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3ui is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4uiv_noimpl(GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform3iv_noimpl(GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform3iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniform4f_noimpl(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniform4f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glFramebufferTexture2D_noimpl(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glFramebufferTexture2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetIntegeri_v_noimpl(GLenum target, GLuint index, GLint * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetIntegeri_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMultiDrawElements_noimpl(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMultiDrawElements is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix4x2dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix4x2dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniformMatrix2x3fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2x3fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCopyTexSubImage1D_noimpl(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCopyTexSubImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexSubImage3D_noimpl(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexSubImage3D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetActiveSubroutineUniformiv_noimpl(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetActiveSubroutineUniformiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGenProgramPipelines_noimpl(GLsizei n, GLuint * pipelines) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGenProgramPipelines is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform4iv_noimpl(GLuint program, GLint location, GLsizei count, const GLint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform4iv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3x4fv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3x4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformBlockBinding_noimpl(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformBlockBinding is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthRangeArrayv_noimpl(GLuint first, GLsizei count, const GLdouble * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthRangeArrayv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameterfv_noimpl(GLenum target, GLenum pname, const GLfloat * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void * mg_glMapBuffer_noimpl(GLenum target, GLenum access) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMapBuffer is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((void *)0); +} +void mg_glDeleteProgramPipelines_noimpl(GLsizei n, const GLuint * pipelines) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteProgramPipelines is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glMinSampleShading_noimpl(GLfloat value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glMinSampleShading is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPauseTransformFeedback_noimpl() +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPauseTransformFeedback is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glEndQueryIndexed_noimpl(GLenum target, GLuint index) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glEndQueryIndexed is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramBinary_noimpl(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramBinary is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2i_noimpl(GLuint program, GLint location, GLint v0, GLint v1) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2i is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDepthMask_noimpl(GLboolean flag) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDepthMask is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glActiveTexture_noimpl(GLenum texture) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glActiveTexture is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUseProgramStages_noimpl(GLuint pipeline, GLbitfield stages, GLuint program) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUseProgramStages is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glPatchParameterfv_noimpl(GLenum pname, const GLfloat * values) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glPatchParameterfv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glShaderBinary_noimpl(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glShaderBinary is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetFloatv_noimpl(GLenum pname, GLfloat * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFloatv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform1f_noimpl(GLuint program, GLint location, GLfloat v0) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform1f is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexImage1D_noimpl(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexImage1D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glProgramUniform2uiv_noimpl(GLuint program, GLint location, GLsizei count, const GLuint * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniform2uiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glClearBufferData_noimpl(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glClearBufferData is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glCompressedTexImage2D_noimpl(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glCompressedTexImage2D is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4fv_noimpl(GLuint index, const GLfloat * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramResourceiv_noimpl(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramResourceiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +const GLubyte * mg_glGetString_noimpl(GLenum name) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetString is not part of currently selected %s API\n", __mgGLAPI->name); + } + return((const GLubyte *)0); +} +void mg_glProgramUniformMatrix2fv_noimpl(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glProgramUniformMatrix2fv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetVertexAttribLdv_noimpl(GLuint index, GLenum pname, GLdouble * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetVertexAttribLdv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4Nubv_noimpl(GLuint index, const GLubyte * v) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4Nubv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexBufferRange_noimpl(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexBufferRange is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glUniformMatrix3x4dv_noimpl(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glUniformMatrix3x4dv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetProgramInterfaceiv_noimpl(GLuint program, GLenum programInterface, GLenum pname, GLint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetProgramInterfaceiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glTexParameterIuiv_noimpl(GLenum target, GLenum pname, const GLuint * params) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glTexParameterIuiv is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDeleteShader_noimpl(GLuint shader) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDeleteShader is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glGetFloati_v_noimpl(GLenum target, GLuint index, GLfloat * data) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glGetFloati_v is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glDrawTransformFeedbackStreamInstanced_noimpl(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glDrawTransformFeedbackStreamInstanced is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +void mg_glVertexAttrib4s_noimpl(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) +{ + if(__mgGLAPI == &__mgGLNoAPI) + { + log_error("No GL or GLES API is selected. Make sure you call mg_surface_prepare() before calling OpenGL API functions.\n"); + } + else + { + log_error("glVertexAttrib4s is not part of currently selected %s API\n", __mgGLAPI->name); + } +} +mg_gl_api __mgGLNoAPI = { + .PointParameterfv = mg_glPointParameterfv_noimpl, + .Uniform3fv = mg_glUniform3fv_noimpl, + .Uniform1i = mg_glUniform1i_noimpl, + .VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl, + .VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl, + .GetBufferParameteriv = mg_glGetBufferParameteriv_noimpl, + .ProgramUniform2dv = mg_glProgramUniform2dv_noimpl, + .ClampColor = mg_glClampColor_noimpl, + .CompressedTexImage3D = mg_glCompressedTexImage3D_noimpl, + .ProgramUniformMatrix2x4fv = mg_glProgramUniformMatrix2x4fv_noimpl, + .ProgramUniform2d = mg_glProgramUniform2d_noimpl, + .BindBuffer = mg_glBindBuffer_noimpl, + .GetUniformBlockIndex = mg_glGetUniformBlockIndex_noimpl, + .InvalidateFramebuffer = mg_glInvalidateFramebuffer_noimpl, + .PixelStorei = mg_glPixelStorei_noimpl, + .BindTexture = mg_glBindTexture_noimpl, + .VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl, + .IsTexture = mg_glIsTexture_noimpl, + .VertexAttrib4d = mg_glVertexAttrib4d_noimpl, + .ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl, + .GetObjectLabel = mg_glGetObjectLabel_noimpl, + .BeginConditionalRender = mg_glBeginConditionalRender_noimpl, + .IsFramebuffer = mg_glIsFramebuffer_noimpl, + .CompileShader = mg_glCompileShader_noimpl, + .VertexAttribBinding = mg_glVertexAttribBinding_noimpl, + .VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl, + .Uniform1fv = mg_glUniform1fv_noimpl, + .TexImage2D = mg_glTexImage2D_noimpl, + .Flush = mg_glFlush_noimpl, + .VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl, + .IsProgram = mg_glIsProgram_noimpl, + .ProgramUniform4fv = mg_glProgramUniform4fv_noimpl, + .VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl, + .ClientWaitSync = mg_glClientWaitSync_noimpl, + .Uniform1d = mg_glUniform1d_noimpl, + .ProgramUniform1ui = mg_glProgramUniform1ui_noimpl, + .ColorMask = mg_glColorMask_noimpl, + .ClearDepth = mg_glClearDepth_noimpl, + .GetInteger64v = mg_glGetInteger64v_noimpl, + .VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl, + .VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl, + .VertexAttribI4ui = mg_glVertexAttribI4ui_noimpl, + .BlendEquationi = mg_glBlendEquationi_noimpl, + .DrawRangeElements = mg_glDrawRangeElements_noimpl, + .InvalidateTexImage = mg_glInvalidateTexImage_noimpl, + .SampleMaski = mg_glSampleMaski_noimpl, + .GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl, + .VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl, + .BindFragDataLocation = mg_glBindFragDataLocation_noimpl, + .GetFragDataIndex = mg_glGetFragDataIndex_noimpl, + .GetTexLevelParameterfv = mg_glGetTexLevelParameterfv_noimpl, + .VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl, + .MultiDrawArrays = mg_glMultiDrawArrays_noimpl, + .IsTransformFeedback = mg_glIsTransformFeedback_noimpl, + .GetUniformiv = mg_glGetUniformiv_noimpl, + .BufferData = mg_glBufferData_noimpl, + .GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl, + .VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl, + .IsQuery = mg_glIsQuery_noimpl, + .ClearColor = mg_glClearColor_noimpl, + .BlendFunc = mg_glBlendFunc_noimpl, + .GetDoublei_v = mg_glGetDoublei_v_noimpl, + .FramebufferTexture = mg_glFramebufferTexture_noimpl, + .StencilMaskSeparate = mg_glStencilMaskSeparate_noimpl, + .PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl, + .VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl, + .VertexAttribIFormat = mg_glVertexAttribIFormat_noimpl, + .MemoryBarrier = mg_glMemoryBarrier_noimpl, + .GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl, + .BindRenderbuffer = mg_glBindRenderbuffer_noimpl, + .PushDebugGroup = mg_glPushDebugGroup_noimpl, + .GenTextures = mg_glGenTextures_noimpl, + .GetIntegerv = mg_glGetIntegerv_noimpl, + .GetQueryObjectuiv = mg_glGetQueryObjectuiv_noimpl, + .Uniform4fv = mg_glUniform4fv_noimpl, + .Hint = mg_glHint_noimpl, + .TexParameterf = mg_glTexParameterf_noimpl, + .ProgramUniform2fv = mg_glProgramUniform2fv_noimpl, + .DrawRangeElementsBaseVertex = mg_glDrawRangeElementsBaseVertex_noimpl, + .Clear = mg_glClear_noimpl, + .BindBufferBase = mg_glBindBufferBase_noimpl, + .GetQueryiv = mg_glGetQueryiv_noimpl, + .ProgramBinary = mg_glProgramBinary_noimpl, + .ScissorIndexedv = mg_glScissorIndexedv_noimpl, + .VertexAttrib1fv = mg_glVertexAttrib1fv_noimpl, + .TexStorage2D = mg_glTexStorage2D_noimpl, + .VertexAttrib4f = mg_glVertexAttrib4f_noimpl, + .ProgramParameteri = mg_glProgramParameteri_noimpl, + .Enable = mg_glEnable_noimpl, + .GetBufferPointerv = mg_glGetBufferPointerv_noimpl, + .LogicOp = mg_glLogicOp_noimpl, + .DepthFunc = mg_glDepthFunc_noimpl, + .VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl, + .Uniform2d = mg_glUniform2d_noimpl, + .DetachShader = mg_glDetachShader_noimpl, + .VertexBindingDivisor = mg_glVertexBindingDivisor_noimpl, + .IsProgramPipeline = mg_glIsProgramPipeline_noimpl, + .ProgramUniform1fv = mg_glProgramUniform1fv_noimpl, + .CopyTexSubImage2D = mg_glCopyTexSubImage2D_noimpl, + .VertexAttrib2fv = mg_glVertexAttrib2fv_noimpl, + .GetDoublev = mg_glGetDoublev_noimpl, + .ResumeTransformFeedback = mg_glResumeTransformFeedback_noimpl, + .ProgramUniform4d = mg_glProgramUniform4d_noimpl, + .ProgramUniform4uiv = mg_glProgramUniform4uiv_noimpl, + .DispatchCompute = mg_glDispatchCompute_noimpl, + .VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl, + .GetSamplerParameterfv = mg_glGetSamplerParameterfv_noimpl, + .ProgramUniform3iv = mg_glProgramUniform3iv_noimpl, + .VertexAttrib1s = mg_glVertexAttrib1s_noimpl, + .VertexAttribI2i = mg_glVertexAttribI2i_noimpl, + .SampleCoverage = mg_glSampleCoverage_noimpl, + .BufferSubData = mg_glBufferSubData_noimpl, + .VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl, + .EndConditionalRender = mg_glEndConditionalRender_noimpl, + .GetPointerv = mg_glGetPointerv_noimpl, + .GetnUniformiv = mg_glGetnUniformiv_noimpl, + .BlendEquation = mg_glBlendEquation_noimpl, + .VertexAttribI4iv = mg_glVertexAttribI4iv_noimpl, + .GetnUniformfv = mg_glGetnUniformfv_noimpl, + .VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl, + .Uniform2fv = mg_glUniform2fv_noimpl, + .Uniform3f = mg_glUniform3f_noimpl, + .GenerateMipmap = mg_glGenerateMipmap_noimpl, + .GenRenderbuffers = mg_glGenRenderbuffers_noimpl, + .DrawElementsBaseVertex = mg_glDrawElementsBaseVertex_noimpl, + .BindVertexBuffers = mg_glBindVertexBuffers_noimpl, + .Scissor = mg_glScissor_noimpl, + .MapBufferRange = mg_glMapBufferRange_noimpl, + .ProgramUniformMatrix4x2fv = mg_glProgramUniformMatrix4x2fv_noimpl, + .GetTexParameterfv = mg_glGetTexParameterfv_noimpl, + .Uniform2f = mg_glUniform2f_noimpl, + .VertexAttribFormat = mg_glVertexAttribFormat_noimpl, + .UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl, + .IsEnabled = mg_glIsEnabled_noimpl, + .ClearBufferfi = mg_glClearBufferfi_noimpl, + .GetRenderbufferParameteriv = mg_glGetRenderbufferParameteriv_noimpl, + .FramebufferTextureLayer = mg_glFramebufferTextureLayer_noimpl, + .PointParameterf = mg_glPointParameterf_noimpl, + .GenVertexArrays = mg_glGenVertexArrays_noimpl, + .GetAttachedShaders = mg_glGetAttachedShaders_noimpl, + .FramebufferRenderbuffer = mg_glFramebufferRenderbuffer_noimpl, + .DeleteTextures = mg_glDeleteTextures_noimpl, + .BeginQuery = mg_glBeginQuery_noimpl, + .Uniform4dv = mg_glUniform4dv_noimpl, + .VertexAttribIPointer = mg_glVertexAttribIPointer_noimpl, + .GetSamplerParameterIiv = mg_glGetSamplerParameterIiv_noimpl, + .BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl, + .BeginTransformFeedback = mg_glBeginTransformFeedback_noimpl, + .Uniform3i = mg_glUniform3i_noimpl, + .GetActiveUniformName = mg_glGetActiveUniformName_noimpl, + .GetProgramResourceLocation = mg_glGetProgramResourceLocation_noimpl, + .ShaderSource = mg_glShaderSource_noimpl, + .SamplerParameterIiv = mg_glSamplerParameterIiv_noimpl, + .Finish = mg_glFinish_noimpl, + .DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl, + .DeleteProgram = mg_glDeleteProgram_noimpl, + .MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl, + .ReadBuffer = mg_glReadBuffer_noimpl, + .GenBuffers = mg_glGenBuffers_noimpl, + .ClearDepthf = mg_glClearDepthf_noimpl, + .VertexAttribPointer = mg_glVertexAttribPointer_noimpl, + .VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl, + .TexStorage2DMultisample = mg_glTexStorage2DMultisample_noimpl, + .BindSamplers = mg_glBindSamplers_noimpl, + .EnableVertexAttribArray = mg_glEnableVertexAttribArray_noimpl, + .VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl, + .GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl, + .DisableVertexAttribArray = mg_glDisableVertexAttribArray_noimpl, + .DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl, + .PolygonMode = mg_glPolygonMode_noimpl, + .VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl, + .ProgramUniform1iv = mg_glProgramUniform1iv_noimpl, + .VertexAttribI1i = mg_glVertexAttribI1i_noimpl, + .GetTexLevelParameteriv = mg_glGetTexLevelParameteriv_noimpl, + .IsSync = mg_glIsSync_noimpl, + .TexStorage1D = mg_glTexStorage1D_noimpl, + .GetVertexAttribIiv = mg_glGetVertexAttribIiv_noimpl, + .IsEnabledi = mg_glIsEnabledi_noimpl, + .MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl, + .GetBooleani_v = mg_glGetBooleani_v_noimpl, + .GetInternalformativ = mg_glGetInternalformativ_noimpl, + .VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl, + .VertexAttrib2s = mg_glVertexAttrib2s_noimpl, + .GetBooleanv = mg_glGetBooleanv_noimpl, + .VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl, + .GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl, + .UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl, + .ProgramUniform4ui = mg_glProgramUniform4ui_noimpl, + .GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl, + .ViewportIndexedf = mg_glViewportIndexedf_noimpl, + .DeleteSync = mg_glDeleteSync_noimpl, + .CopyImageSubData = mg_glCopyImageSubData_noimpl, + .PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl, + .ScissorIndexed = mg_glScissorIndexed_noimpl, + .GenTransformFeedbacks = mg_glGenTransformFeedbacks_noimpl, + .MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl, + .DeleteTransformFeedbacks = mg_glDeleteTransformFeedbacks_noimpl, + .ProgramUniform4f = mg_glProgramUniform4f_noimpl, + .BindBuffersBase = mg_glBindBuffersBase_noimpl, + .GetTexParameterIuiv = mg_glGetTexParameterIuiv_noimpl, + .IsShader = mg_glIsShader_noimpl, + .ProgramUniform3i = mg_glProgramUniform3i_noimpl, + .GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl, + .ProgramUniformMatrix3x4fv = mg_glProgramUniformMatrix3x4fv_noimpl, + .BufferStorage = mg_glBufferStorage_noimpl, + .GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl, + .RenderbufferStorageMultisample = mg_glRenderbufferStorageMultisample_noimpl, + .GetMultisamplefv = mg_glGetMultisamplefv_noimpl, + .VertexAttribDivisor = mg_glVertexAttribDivisor_noimpl, + .StencilMask = mg_glStencilMask_noimpl, + .BindSampler = mg_glBindSampler_noimpl, + .UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl, + .BindImageTexture = mg_glBindImageTexture_noimpl, + .DrawBuffers = mg_glDrawBuffers_noimpl, + .VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl, + .GetTexImage = mg_glGetTexImage_noimpl, + .VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl, + .BlitFramebuffer = mg_glBlitFramebuffer_noimpl, + .VertexAttrib2d = mg_glVertexAttrib2d_noimpl, + .Uniform1ui = mg_glUniform1ui_noimpl, + .InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl, + .EndQuery = mg_glEndQuery_noimpl, + .GetUniformuiv = mg_glGetUniformuiv_noimpl, + .GetFramebufferAttachmentParameteriv = mg_glGetFramebufferAttachmentParameteriv_noimpl, + .ProgramUniform2f = mg_glProgramUniform2f_noimpl, + .UniformMatrix3x2fv = mg_glUniformMatrix3x2fv_noimpl, + .BindVertexBuffer = mg_glBindVertexBuffer_noimpl, + .VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl, + .Uniform1f = mg_glUniform1f_noimpl, + .DebugMessageCallback = mg_glDebugMessageCallback_noimpl, + .ReadPixels = mg_glReadPixels_noimpl, + .CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl, + .DrawArraysIndirect = mg_glDrawArraysIndirect_noimpl, + .BlendFuncSeparate = mg_glBlendFuncSeparate_noimpl, + .CreateShader = mg_glCreateShader_noimpl, + .GetTransformFeedbackVarying = mg_glGetTransformFeedbackVarying_noimpl, + .AttachShader = mg_glAttachShader_noimpl, + .UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl, + .ProgramUniform3uiv = mg_glProgramUniform3uiv_noimpl, + .MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl, + .Uniform2iv = mg_glUniform2iv_noimpl, + .BindBufferRange = mg_glBindBufferRange_noimpl, + .TexParameteriv = mg_glTexParameteriv_noimpl, + .VertexAttribL3d = mg_glVertexAttribL3d_noimpl, + .TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl, + .ClearTexSubImage = mg_glClearTexSubImage_noimpl, + .VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl, + .InvalidateSubFramebuffer = mg_glInvalidateSubFramebuffer_noimpl, + .GetShaderInfoLog = mg_glGetShaderInfoLog_noimpl, + .VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl, + .Viewport = mg_glViewport_noimpl, + .BlendFunci = mg_glBlendFunci_noimpl, + .PolygonOffset = mg_glPolygonOffset_noimpl, + .ProgramUniform2ui = mg_glProgramUniform2ui_noimpl, + .SamplerParameteri = mg_glSamplerParameteri_noimpl, + .GetFramebufferParameteriv = mg_glGetFramebufferParameteriv_noimpl, + .VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl, + .ObjectLabel = mg_glObjectLabel_noimpl, + .CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl, + .InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl, + .BindBuffersRange = mg_glBindBuffersRange_noimpl, + .CopyBufferSubData = mg_glCopyBufferSubData_noimpl, + .VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl, + .ObjectPtrLabel = mg_glObjectPtrLabel_noimpl, + .ProgramUniform3d = mg_glProgramUniform3d_noimpl, + .GetProgramPipelineiv = mg_glGetProgramPipelineiv_noimpl, + .TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl, + .VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl, + .DeleteFramebuffers = mg_glDeleteFramebuffers_noimpl, + .CheckFramebufferStatus = mg_glCheckFramebufferStatus_noimpl, + .VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl, + .ProgramUniform1dv = mg_glProgramUniform1dv_noimpl, + .VertexAttrib2f = mg_glVertexAttrib2f_noimpl, + .GetVertexAttribIuiv = mg_glGetVertexAttribIuiv_noimpl, + .StencilOp = mg_glStencilOp_noimpl, + .VertexAttrib3d = mg_glVertexAttrib3d_noimpl, + .PointParameteri = mg_glPointParameteri_noimpl, + .VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl, + .ClearBufferfv = mg_glClearBufferfv_noimpl, + .BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl, + .ProgramUniform1d = mg_glProgramUniform1d_noimpl, + .PointParameteriv = mg_glPointParameteriv_noimpl, + .FlushMappedBufferRange = mg_glFlushMappedBufferRange_noimpl, + .TextureView = mg_glTextureView_noimpl, + .GetProgramPipelineInfoLog = mg_glGetProgramPipelineInfoLog_noimpl, + .CopyTexImage2D = mg_glCopyTexImage2D_noimpl, + .ProgramUniform3dv = mg_glProgramUniform3dv_noimpl, + .QueryCounter = mg_glQueryCounter_noimpl, + .GetUniformfv = mg_glGetUniformfv_noimpl, + .ClearStencil = mg_glClearStencil_noimpl, + .GetProgramiv = mg_glGetProgramiv_noimpl, + .UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl, + .GetProgramStageiv = mg_glGetProgramStageiv_noimpl, + .Uniform1iv = mg_glUniform1iv_noimpl, + .GetVertexAttribPointerv = mg_glGetVertexAttribPointerv_noimpl, + .TexSubImage1D = mg_glTexSubImage1D_noimpl, + .StencilFuncSeparate = mg_glStencilFuncSeparate_noimpl, + .GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl, + .DrawElementsInstanced = mg_glDrawElementsInstanced_noimpl, + .BlendFuncSeparatei = mg_glBlendFuncSeparatei_noimpl, + .ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl, + .GetActiveUniformsiv = mg_glGetActiveUniformsiv_noimpl, + .UniformMatrix3fv = mg_glUniformMatrix3fv_noimpl, + .ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl, + .GetSamplerParameterIuiv = mg_glGetSamplerParameterIuiv_noimpl, + .VertexAttribI4i = mg_glVertexAttribI4i_noimpl, + .BlendEquationSeparate = mg_glBlendEquationSeparate_noimpl, + .UniformMatrix4x2fv = mg_glUniformMatrix4x2fv_noimpl, + .TexParameterIiv = mg_glTexParameterIiv_noimpl, + .DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl, + .VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl, + .GetUniformIndices = mg_glGetUniformIndices_noimpl, + .GetShaderiv = mg_glGetShaderiv_noimpl, + .GetActiveUniform = mg_glGetActiveUniform_noimpl, + .Uniform3uiv = mg_glUniform3uiv_noimpl, + .PatchParameteri = mg_glPatchParameteri_noimpl, + .ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl, + .WaitSync = mg_glWaitSync_noimpl, + .ClearTexImage = mg_glClearTexImage_noimpl, + .DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl, + .GetTexParameterIiv = mg_glGetTexParameterIiv_noimpl, + .DepthRange = mg_glDepthRange_noimpl, + .GetActiveAttrib = mg_glGetActiveAttrib_noimpl, + .IsRenderbuffer = mg_glIsRenderbuffer_noimpl, + .ClearBufferiv = mg_glClearBufferiv_noimpl, + .ProgramUniform3fv = mg_glProgramUniform3fv_noimpl, + .VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl, + .UseProgram = mg_glUseProgram_noimpl, + .GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl, + .ProgramUniformMatrix3fv = mg_glProgramUniformMatrix3fv_noimpl, + .ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl, + .UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl, + .ProgramUniform4dv = mg_glProgramUniform4dv_noimpl, + .GetBufferSubData = mg_glGetBufferSubData_noimpl, + .VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl, + .VertexAttrib1f = mg_glVertexAttrib1f_noimpl, + .VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl, + .DebugMessageInsert = mg_glDebugMessageInsert_noimpl, + .EndTransformFeedback = mg_glEndTransformFeedback_noimpl, + .TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl, + .BindTransformFeedback = mg_glBindTransformFeedback_noimpl, + .Uniform3dv = mg_glUniform3dv_noimpl, + .UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl, + .GetSamplerParameteriv = mg_glGetSamplerParameteriv_noimpl, + .VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl, + .Uniform4d = mg_glUniform4d_noimpl, + .ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl, + .ProgramUniform3ui = mg_glProgramUniform3ui_noimpl, + .DeleteVertexArrays = mg_glDeleteVertexArrays_noimpl, + .TexParameteri = mg_glTexParameteri_noimpl, + .DrawElementsInstancedBaseVertex = mg_glDrawElementsInstancedBaseVertex_noimpl, + .GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl, + .VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl, + .SamplerParameterfv = mg_glSamplerParameterfv_noimpl, + .VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl, + .ProgramUniform1i = mg_glProgramUniform1i_noimpl, + .ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl, + .GetSynciv = mg_glGetSynciv_noimpl, + .VertexAttrib3f = mg_glVertexAttrib3f_noimpl, + .GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl, + .GetProgramInfoLog = mg_glGetProgramInfoLog_noimpl, + .GetActiveUniformBlockiv = mg_glGetActiveUniformBlockiv_noimpl, + .GenQueries = mg_glGenQueries_noimpl, + .ProgramUniformMatrix4x3fv = mg_glProgramUniformMatrix4x3fv_noimpl, + .TexBuffer = mg_glTexBuffer_noimpl, + .ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl, + .Disable = mg_glDisable_noimpl, + .VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl, + .IsSampler = mg_glIsSampler_noimpl, + .ActiveShaderProgram = mg_glActiveShaderProgram_noimpl, + .BindVertexArray = mg_glBindVertexArray_noimpl, + .UniformMatrix2x3fv = mg_glUniformMatrix2x3fv_noimpl, + .DrawArraysInstanced = mg_glDrawArraysInstanced_noimpl, + .VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl, + .GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl, + .GetStringi = mg_glGetStringi_noimpl, + .BindProgramPipeline = mg_glBindProgramPipeline_noimpl, + .BindFramebuffer = mg_glBindFramebuffer_noimpl, + .VertexAttrib1d = mg_glVertexAttrib1d_noimpl, + .RenderbufferStorage = mg_glRenderbufferStorage_noimpl, + .ReleaseShaderCompiler = mg_glReleaseShaderCompiler_noimpl, + .Uniform2i = mg_glUniform2i_noimpl, + .DrawBuffer = mg_glDrawBuffer_noimpl, + .DeleteRenderbuffers = mg_glDeleteRenderbuffers_noimpl, + .DeleteBuffers = mg_glDeleteBuffers_noimpl, + .GenFramebuffers = mg_glGenFramebuffers_noimpl, + .ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl, + .ProgramUniform3f = mg_glProgramUniform3f_noimpl, + .ProgramUniform2iv = mg_glProgramUniform2iv_noimpl, + .BlendBarrier = mg_glBlendBarrier_noimpl, + .VertexAttribL2d = mg_glVertexAttribL2d_noimpl, + .CompressedTexSubImage2D = mg_glCompressedTexSubImage2D_noimpl, + .UniformMatrix2fv = mg_glUniformMatrix2fv_noimpl, + .SamplerParameterf = mg_glSamplerParameterf_noimpl, + .UniformMatrix4fv = mg_glUniformMatrix4fv_noimpl, + .VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl, + .BindTextures = mg_glBindTextures_noimpl, + .Uniform3d = mg_glUniform3d_noimpl, + .ViewportIndexedfv = mg_glViewportIndexedfv_noimpl, + .VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl, + .LineWidth = mg_glLineWidth_noimpl, + .GetVertexAttribfv = mg_glGetVertexAttribfv_noimpl, + .VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl, + .Uniform1dv = mg_glUniform1dv_noimpl, + .CullFace = mg_glCullFace_noimpl, + .CreateProgram = mg_glCreateProgram_noimpl, + .Uniform4i = mg_glUniform4i_noimpl, + .UniformMatrix4x3fv = mg_glUniformMatrix4x3fv_noimpl, + .GetAttribLocation = mg_glGetAttribLocation_noimpl, + .GetShaderPrecisionFormat = mg_glGetShaderPrecisionFormat_noimpl, + .Uniform4iv = mg_glUniform4iv_noimpl, + .CompressedTexSubImage3D = mg_glCompressedTexSubImage3D_noimpl, + .BindImageTextures = mg_glBindImageTextures_noimpl, + .GetBufferParameteri64v = mg_glGetBufferParameteri64v_noimpl, + .FrontFace = mg_glFrontFace_noimpl, + .PopDebugGroup = mg_glPopDebugGroup_noimpl, + .VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl, + .InvalidateBufferData = mg_glInvalidateBufferData_noimpl, + .IsVertexArray = mg_glIsVertexArray_noimpl, + .ScissorArrayv = mg_glScissorArrayv_noimpl, + .ValidateProgram = mg_glValidateProgram_noimpl, + .Uniform2uiv = mg_glUniform2uiv_noimpl, + .TexSubImage2D = mg_glTexSubImage2D_noimpl, + .DebugMessageControl = mg_glDebugMessageControl_noimpl, + .FramebufferParameteri = mg_glFramebufferParameteri_noimpl, + .GetUniformLocation = mg_glGetUniformLocation_noimpl, + .TexStorage3D = mg_glTexStorage3D_noimpl, + .PixelStoref = mg_glPixelStoref_noimpl, + .DepthRangef = mg_glDepthRangef_noimpl, + .VertexAttribI3i = mg_glVertexAttribI3i_noimpl, + .Uniform1uiv = mg_glUniform1uiv_noimpl, + .Disablei = mg_glDisablei_noimpl, + .GetInternalformati64v = mg_glGetInternalformati64v_noimpl, + .ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl, + .GetProgramResourceIndex = mg_glGetProgramResourceIndex_noimpl, + .BlendColor = mg_glBlendColor_noimpl, + .GenSamplers = mg_glGenSamplers_noimpl, + .ColorMaski = mg_glColorMaski_noimpl, + .GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl, + .VertexAttribI4uiv = mg_glVertexAttribI4uiv_noimpl, + .CreateShaderProgramv = mg_glCreateShaderProgramv_noimpl, + .DeleteSamplers = mg_glDeleteSamplers_noimpl, + .VertexAttrib3s = mg_glVertexAttrib3s_noimpl, + .DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl, + .VertexAttribL1d = mg_glVertexAttribL1d_noimpl, + .DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl, + .ClearBufferSubData = mg_glClearBufferSubData_noimpl, + .VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl, + .Uniform2dv = mg_glUniform2dv_noimpl, + .CopyTexSubImage3D = mg_glCopyTexSubImage3D_noimpl, + .CopyTexImage1D = mg_glCopyTexImage1D_noimpl, + .FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl, + .VertexAttribL4d = mg_glVertexAttribL4d_noimpl, + .UnmapBuffer = mg_glUnmapBuffer_noimpl, + .GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl, + .FenceSync = mg_glFenceSync_noimpl, + .DispatchComputeIndirect = mg_glDispatchComputeIndirect_noimpl, + .SamplerParameterIuiv = mg_glSamplerParameterIuiv_noimpl, + .GetFragDataLocation = mg_glGetFragDataLocation_noimpl, + .GetUniformdv = mg_glGetUniformdv_noimpl, + .TexImage3D = mg_glTexImage3D_noimpl, + .ValidateProgramPipeline = mg_glValidateProgramPipeline_noimpl, + .LinkProgram = mg_glLinkProgram_noimpl, + .DeleteQueries = mg_glDeleteQueries_noimpl, + .FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl, + .GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl, + .ProgramUniformMatrix3x2fv = mg_glProgramUniformMatrix3x2fv_noimpl, + .GetTexParameteriv = mg_glGetTexParameteriv_noimpl, + .ProvokingVertex = mg_glProvokingVertex_noimpl, + .BindAttribLocation = mg_glBindAttribLocation_noimpl, + .VertexAttrib3fv = mg_glVertexAttrib3fv_noimpl, + .GetActiveUniformBlockName = mg_glGetActiveUniformBlockName_noimpl, + .DrawArrays = mg_glDrawArrays_noimpl, + .GetnUniformuiv = mg_glGetnUniformuiv_noimpl, + .ProgramUniform1uiv = mg_glProgramUniform1uiv_noimpl, + .DrawElementsIndirect = mg_glDrawElementsIndirect_noimpl, + .VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl, + .BlendEquationSeparatei = mg_glBlendEquationSeparatei_noimpl, + .DrawElements = mg_glDrawElements_noimpl, + .GetShaderSource = mg_glGetShaderSource_noimpl, + .TransformFeedbackVaryings = mg_glTransformFeedbackVaryings_noimpl, + .GetError = mg_glGetError_noimpl, + .IsBuffer = mg_glIsBuffer_noimpl, + .ClearBufferuiv = mg_glClearBufferuiv_noimpl, + .GetVertexAttribiv = mg_glGetVertexAttribiv_noimpl, + .GetProgramResourceName = mg_glGetProgramResourceName_noimpl, + .Uniform2ui = mg_glUniform2ui_noimpl, + .StencilFunc = mg_glStencilFunc_noimpl, + .Enablei = mg_glEnablei_noimpl, + .SamplerParameteriv = mg_glSamplerParameteriv_noimpl, + .GetInteger64i_v = mg_glGetInteger64i_v_noimpl, + .ProgramUniform4i = mg_glProgramUniform4i_noimpl, + .Uniform4ui = mg_glUniform4ui_noimpl, + .UniformMatrix2x4fv = mg_glUniformMatrix2x4fv_noimpl, + .ReadnPixels = mg_glReadnPixels_noimpl, + .DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl, + .PointSize = mg_glPointSize_noimpl, + .ProgramUniformMatrix4fv = mg_glProgramUniformMatrix4fv_noimpl, + .ViewportArrayv = mg_glViewportArrayv_noimpl, + .StencilOpSeparate = mg_glStencilOpSeparate_noimpl, + .Uniform3ui = mg_glUniform3ui_noimpl, + .Uniform4uiv = mg_glUniform4uiv_noimpl, + .Uniform3iv = mg_glUniform3iv_noimpl, + .Uniform4f = mg_glUniform4f_noimpl, + .FramebufferTexture2D = mg_glFramebufferTexture2D_noimpl, + .GetIntegeri_v = mg_glGetIntegeri_v_noimpl, + .MultiDrawElements = mg_glMultiDrawElements_noimpl, + .UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl, + .ProgramUniformMatrix2x3fv = mg_glProgramUniformMatrix2x3fv_noimpl, + .CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl, + .TexSubImage3D = mg_glTexSubImage3D_noimpl, + .GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl, + .GenProgramPipelines = mg_glGenProgramPipelines_noimpl, + .ProgramUniform4iv = mg_glProgramUniform4iv_noimpl, + .UniformMatrix3x4fv = mg_glUniformMatrix3x4fv_noimpl, + .UniformBlockBinding = mg_glUniformBlockBinding_noimpl, + .DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl, + .TexParameterfv = mg_glTexParameterfv_noimpl, + .MapBuffer = mg_glMapBuffer_noimpl, + .DeleteProgramPipelines = mg_glDeleteProgramPipelines_noimpl, + .MinSampleShading = mg_glMinSampleShading_noimpl, + .PauseTransformFeedback = mg_glPauseTransformFeedback_noimpl, + .EndQueryIndexed = mg_glEndQueryIndexed_noimpl, + .GetProgramBinary = mg_glGetProgramBinary_noimpl, + .ProgramUniform2i = mg_glProgramUniform2i_noimpl, + .DepthMask = mg_glDepthMask_noimpl, + .ActiveTexture = mg_glActiveTexture_noimpl, + .UseProgramStages = mg_glUseProgramStages_noimpl, + .PatchParameterfv = mg_glPatchParameterfv_noimpl, + .ShaderBinary = mg_glShaderBinary_noimpl, + .GetFloatv = mg_glGetFloatv_noimpl, + .ProgramUniform1f = mg_glProgramUniform1f_noimpl, + .TexImage1D = mg_glTexImage1D_noimpl, + .ProgramUniform2uiv = mg_glProgramUniform2uiv_noimpl, + .ClearBufferData = mg_glClearBufferData_noimpl, + .UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl, + .CompressedTexImage2D = mg_glCompressedTexImage2D_noimpl, + .VertexAttrib4fv = mg_glVertexAttrib4fv_noimpl, + .GetProgramResourceiv = mg_glGetProgramResourceiv_noimpl, + .GetString = mg_glGetString_noimpl, + .ProgramUniformMatrix2fv = mg_glProgramUniformMatrix2fv_noimpl, + .GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl, + .VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl, + .TexBufferRange = mg_glTexBufferRange_noimpl, + .UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl, + .GetProgramInterfaceiv = mg_glGetProgramInterfaceiv_noimpl, + .TexParameterIuiv = mg_glTexParameterIuiv_noimpl, + .DeleteShader = mg_glDeleteShader_noimpl, + .GetFloati_v = mg_glGetFloati_v_noimpl, + .DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl, + .VertexAttrib4s = mg_glVertexAttrib4s_noimpl, +}; + +void mg_gl_load_gl41(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gl41"; + api->PointParameterfv = loadProc("glPointParameterfv"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform1i = loadProc("glUniform1i"); + api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); + api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); + api->ClampColor = loadProc("glClampColor"); + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniform2d = loadProc("glProgramUniform2d"); + api->BindBuffer = loadProc("glBindBuffer"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->InvalidateFramebuffer = mg_glInvalidateFramebuffer_noimpl; + api->PixelStorei = loadProc("glPixelStorei"); + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); + api->IsTexture = loadProc("glIsTexture"); + api->VertexAttrib4d = loadProc("glVertexAttrib4d"); + api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); + api->GetObjectLabel = mg_glGetObjectLabel_noimpl; + api->BeginConditionalRender = loadProc("glBeginConditionalRender"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->CompileShader = loadProc("glCompileShader"); + api->VertexAttribBinding = mg_glVertexAttribBinding_noimpl; + api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->TexImage2D = loadProc("glTexImage2D"); + api->Flush = loadProc("glFlush"); + api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); + api->IsProgram = loadProc("glIsProgram"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->Uniform1d = loadProc("glUniform1d"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ColorMask = loadProc("glColorMask"); + api->ClearDepth = loadProc("glClearDepth"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); + api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; + api->SampleMaski = loadProc("glSampleMaski"); + api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; + api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); + api->BindFragDataLocation = loadProc("glBindFragDataLocation"); + api->GetFragDataIndex = loadProc("glGetFragDataIndex"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); + api->MultiDrawArrays = loadProc("glMultiDrawArrays"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->BufferData = loadProc("glBufferData"); + api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); + api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); + api->IsQuery = loadProc("glIsQuery"); + api->ClearColor = loadProc("glClearColor"); + api->BlendFunc = loadProc("glBlendFunc"); + api->GetDoublei_v = loadProc("glGetDoublei_v"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); + api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); + api->VertexAttribIFormat = mg_glVertexAttribIFormat_noimpl; + api->MemoryBarrier = mg_glMemoryBarrier_noimpl; + api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->PushDebugGroup = mg_glPushDebugGroup_noimpl; + api->GenTextures = loadProc("glGenTextures"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Hint = loadProc("glHint"); + api->TexParameterf = loadProc("glTexParameterf"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->Clear = loadProc("glClear"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ScissorIndexedv = loadProc("glScissorIndexedv"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->TexStorage2D = mg_glTexStorage2D_noimpl; + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Enable = loadProc("glEnable"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->LogicOp = loadProc("glLogicOp"); + api->DepthFunc = loadProc("glDepthFunc"); + api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); + api->Uniform2d = loadProc("glUniform2d"); + api->DetachShader = loadProc("glDetachShader"); + api->VertexBindingDivisor = mg_glVertexBindingDivisor_noimpl; + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetDoublev = loadProc("glGetDoublev"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ProgramUniform4d = loadProc("glProgramUniform4d"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->DispatchCompute = mg_glDispatchCompute_noimpl; + api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->VertexAttrib1s = loadProc("glVertexAttrib1s"); + api->VertexAttribI2i = loadProc("glVertexAttribI2i"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->BufferSubData = loadProc("glBufferSubData"); + api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); + api->EndConditionalRender = loadProc("glEndConditionalRender"); + api->GetPointerv = mg_glGetPointerv_noimpl; + api->GetnUniformiv = mg_glGetnUniformiv_noimpl; + api->BlendEquation = loadProc("glBlendEquation"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->GetnUniformfv = mg_glGetnUniformfv_noimpl; + api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform3f = loadProc("glUniform3f"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; + api->Scissor = loadProc("glScissor"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribFormat = mg_glVertexAttribFormat_noimpl; + api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); + api->IsEnabled = loadProc("glIsEnabled"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->PointParameterf = loadProc("glPointParameterf"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->BeginQuery = loadProc("glBeginQuery"); + api->Uniform4dv = loadProc("glUniform4dv"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->Uniform3i = loadProc("glUniform3i"); + api->GetActiveUniformName = loadProc("glGetActiveUniformName"); + api->GetProgramResourceLocation = mg_glGetProgramResourceLocation_noimpl; + api->ShaderSource = loadProc("glShaderSource"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->Finish = loadProc("glFinish"); + api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; + api->DeleteProgram = loadProc("glDeleteProgram"); + api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->GenBuffers = loadProc("glGenBuffers"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); + api->TexStorage2DMultisample = mg_glTexStorage2DMultisample_noimpl; + api->BindSamplers = mg_glBindSamplers_noimpl; + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); + api->GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl; + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; + api->PolygonMode = loadProc("glPolygonMode"); + api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->VertexAttribI1i = loadProc("glVertexAttribI1i"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->IsSync = loadProc("glIsSync"); + api->TexStorage1D = mg_glTexStorage1D_noimpl; + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->IsEnabledi = loadProc("glIsEnabledi"); + api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->GetInternalformativ = mg_glGetInternalformativ_noimpl; + api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); + api->VertexAttrib2s = loadProc("glVertexAttrib2s"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); + api->GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl; + api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); + api->ViewportIndexedf = loadProc("glViewportIndexedf"); + api->DeleteSync = loadProc("glDeleteSync"); + api->CopyImageSubData = mg_glCopyImageSubData_noimpl; + api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; + api->ScissorIndexed = loadProc("glScissorIndexed"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->BindBuffersBase = mg_glBindBuffersBase_noimpl; + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->IsShader = loadProc("glIsShader"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->BufferStorage = mg_glBufferStorage_noimpl; + api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->StencilMask = loadProc("glStencilMask"); + api->BindSampler = loadProc("glBindSampler"); + api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); + api->BindImageTexture = mg_glBindImageTexture_noimpl; + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); + api->GetTexImage = loadProc("glGetTexImage"); + api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->VertexAttrib2d = loadProc("glVertexAttrib2d"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; + api->EndQuery = loadProc("glEndQuery"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->BindVertexBuffer = mg_glBindVertexBuffer_noimpl; + api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); + api->Uniform1f = loadProc("glUniform1f"); + api->DebugMessageCallback = mg_glDebugMessageCallback_noimpl; + api->ReadPixels = loadProc("glReadPixels"); + api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->CreateShader = loadProc("glCreateShader"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->AttachShader = loadProc("glAttachShader"); + api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; + api->Uniform2iv = loadProc("glUniform2iv"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->VertexAttribL3d = loadProc("glVertexAttribL3d"); + api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); + api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; + api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); + api->InvalidateSubFramebuffer = mg_glInvalidateSubFramebuffer_noimpl; + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); + api->Viewport = loadProc("glViewport"); + api->BlendFunci = loadProc("glBlendFunci"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->GetFramebufferParameteriv = mg_glGetFramebufferParameteriv_noimpl; + api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); + api->ObjectLabel = mg_glObjectLabel_noimpl; + api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); + api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; + api->BindBuffersRange = mg_glBindBuffersRange_noimpl; + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); + api->ObjectPtrLabel = mg_glObjectPtrLabel_noimpl; + api->ProgramUniform3d = loadProc("glProgramUniform3d"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl; + api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); + api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib3d = loadProc("glVertexAttrib3d"); + api->PointParameteri = loadProc("glPointParameteri"); + api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); + api->ProgramUniform1d = loadProc("glProgramUniform1d"); + api->PointParameteriv = loadProc("glPointParameteriv"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->TextureView = mg_glTextureView_noimpl; + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); + api->QueryCounter = loadProc("glQueryCounter"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->ClearStencil = loadProc("glClearStencil"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); + api->GetProgramStageiv = loadProc("glGetProgramStageiv"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->TexSubImage1D = loadProc("glTexSubImage1D"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); + api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); + api->WaitSync = loadProc("glWaitSync"); + api->ClearTexImage = mg_glClearTexImage_noimpl; + api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->DepthRange = loadProc("glDepthRange"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); + api->UseProgram = loadProc("glUseProgram"); + api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); + api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); + api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); + api->GetBufferSubData = loadProc("glGetBufferSubData"); + api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); + api->DebugMessageInsert = mg_glDebugMessageInsert_noimpl; + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->Uniform3dv = loadProc("glUniform3dv"); + api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); + api->Uniform4d = loadProc("glUniform4d"); + api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->TexParameteri = loadProc("glTexParameteri"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); + api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->TexBuffer = loadProc("glTexBuffer"); + api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; + api->Disable = loadProc("glDisable"); + api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); + api->IsSampler = loadProc("glIsSampler"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); + api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); + api->GetStringi = loadProc("glGetStringi"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->VertexAttrib1d = loadProc("glVertexAttrib1d"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->Uniform2i = loadProc("glUniform2i"); + api->DrawBuffer = loadProc("glDrawBuffer"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->BlendBarrier = mg_glBlendBarrier_noimpl; + api->VertexAttribL2d = loadProc("glVertexAttribL2d"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); + api->BindTextures = mg_glBindTextures_noimpl; + api->Uniform3d = loadProc("glUniform3d"); + api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); + api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); + api->LineWidth = loadProc("glLineWidth"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); + api->Uniform1dv = loadProc("glUniform1dv"); + api->CullFace = loadProc("glCullFace"); + api->CreateProgram = loadProc("glCreateProgram"); + api->Uniform4i = loadProc("glUniform4i"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->BindImageTextures = mg_glBindImageTextures_noimpl; + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->FrontFace = loadProc("glFrontFace"); + api->PopDebugGroup = mg_glPopDebugGroup_noimpl; + api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); + api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ScissorArrayv = loadProc("glScissorArrayv"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->DebugMessageControl = mg_glDebugMessageControl_noimpl; + api->FramebufferParameteri = mg_glFramebufferParameteri_noimpl; + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->TexStorage3D = mg_glTexStorage3D_noimpl; + api->PixelStoref = loadProc("glPixelStoref"); + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttribI3i = loadProc("glVertexAttribI3i"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Disablei = loadProc("glDisablei"); + api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; + api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); + api->GetProgramResourceIndex = mg_glGetProgramResourceIndex_noimpl; + api->BlendColor = loadProc("glBlendColor"); + api->GenSamplers = loadProc("glGenSamplers"); + api->ColorMaski = loadProc("glColorMaski"); + api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->VertexAttrib3s = loadProc("glVertexAttrib3s"); + api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); + api->VertexAttribL1d = loadProc("glVertexAttribL1d"); + api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; + api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; + api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; + api->Uniform2dv = loadProc("glUniform2dv"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CopyTexImage1D = loadProc("glCopyTexImage1D"); + api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); + api->VertexAttribL4d = loadProc("glVertexAttribL4d"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); + api->FenceSync = loadProc("glFenceSync"); + api->DispatchComputeIndirect = mg_glDispatchComputeIndirect_noimpl; + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->GetUniformdv = loadProc("glGetUniformdv"); + api->TexImage3D = loadProc("glTexImage3D"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->LinkProgram = loadProc("glLinkProgram"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); + api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->ProvokingVertex = loadProc("glProvokingVertex"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->DrawElements = loadProc("glDrawElements"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetError = loadProc("glGetError"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetProgramResourceName = mg_glGetProgramResourceName_noimpl; + api->Uniform2ui = loadProc("glUniform2ui"); + api->StencilFunc = loadProc("glStencilFunc"); + api->Enablei = loadProc("glEnablei"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->ReadnPixels = mg_glReadnPixels_noimpl; + api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; + api->PointSize = loadProc("glPointSize"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ViewportArrayv = loadProc("glViewportArrayv"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4f = loadProc("glUniform4f"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->MultiDrawElements = loadProc("glMultiDrawElements"); + api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->MapBuffer = loadProc("glMapBuffer"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->EndQueryIndexed = loadProc("glEndQueryIndexed"); + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->DepthMask = loadProc("glDepthMask"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->PatchParameterfv = loadProc("glPatchParameterfv"); + api->ShaderBinary = loadProc("glShaderBinary"); + api->GetFloatv = loadProc("glGetFloatv"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->TexImage1D = loadProc("glTexImage1D"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ClearBufferData = mg_glClearBufferData_noimpl; + api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->GetProgramResourceiv = mg_glGetProgramResourceiv_noimpl; + api->GetString = loadProc("glGetString"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); + api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); + api->TexBufferRange = mg_glTexBufferRange_noimpl; + api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); + api->GetProgramInterfaceiv = mg_glGetProgramInterfaceiv_noimpl; + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->DeleteShader = loadProc("glDeleteShader"); + api->GetFloati_v = loadProc("glGetFloati_v"); + api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; + api->VertexAttrib4s = loadProc("glVertexAttrib4s"); +} + +void mg_gl_load_gl43(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gl43"; + api->PointParameterfv = loadProc("glPointParameterfv"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform1i = loadProc("glUniform1i"); + api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); + api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); + api->ClampColor = loadProc("glClampColor"); + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniform2d = loadProc("glProgramUniform2d"); + api->BindBuffer = loadProc("glBindBuffer"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->PixelStorei = loadProc("glPixelStorei"); + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); + api->IsTexture = loadProc("glIsTexture"); + api->VertexAttrib4d = loadProc("glVertexAttrib4d"); + api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); + api->GetObjectLabel = loadProc("glGetObjectLabel"); + api->BeginConditionalRender = loadProc("glBeginConditionalRender"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->CompileShader = loadProc("glCompileShader"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->TexImage2D = loadProc("glTexImage2D"); + api->Flush = loadProc("glFlush"); + api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); + api->IsProgram = loadProc("glIsProgram"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->Uniform1d = loadProc("glUniform1d"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ColorMask = loadProc("glColorMask"); + api->ClearDepth = loadProc("glClearDepth"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); + api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->InvalidateTexImage = loadProc("glInvalidateTexImage"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetProgramResourceLocationIndex = loadProc("glGetProgramResourceLocationIndex"); + api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); + api->BindFragDataLocation = loadProc("glBindFragDataLocation"); + api->GetFragDataIndex = loadProc("glGetFragDataIndex"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); + api->MultiDrawArrays = loadProc("glMultiDrawArrays"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->BufferData = loadProc("glBufferData"); + api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); + api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); + api->IsQuery = loadProc("glIsQuery"); + api->ClearColor = loadProc("glClearColor"); + api->BlendFunc = loadProc("glBlendFunc"); + api->GetDoublei_v = loadProc("glGetDoublei_v"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); + api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->PushDebugGroup = loadProc("glPushDebugGroup"); + api->GenTextures = loadProc("glGenTextures"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Hint = loadProc("glHint"); + api->TexParameterf = loadProc("glTexParameterf"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->Clear = loadProc("glClear"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ScissorIndexedv = loadProc("glScissorIndexedv"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Enable = loadProc("glEnable"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->LogicOp = loadProc("glLogicOp"); + api->DepthFunc = loadProc("glDepthFunc"); + api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); + api->Uniform2d = loadProc("glUniform2d"); + api->DetachShader = loadProc("glDetachShader"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetDoublev = loadProc("glGetDoublev"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ProgramUniform4d = loadProc("glProgramUniform4d"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->VertexAttrib1s = loadProc("glVertexAttrib1s"); + api->VertexAttribI2i = loadProc("glVertexAttribI2i"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->BufferSubData = loadProc("glBufferSubData"); + api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); + api->EndConditionalRender = loadProc("glEndConditionalRender"); + api->GetPointerv = loadProc("glGetPointerv"); + api->GetnUniformiv = mg_glGetnUniformiv_noimpl; + api->BlendEquation = loadProc("glBlendEquation"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->GetnUniformfv = mg_glGetnUniformfv_noimpl; + api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform3f = loadProc("glUniform3f"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; + api->Scissor = loadProc("glScissor"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); + api->IsEnabled = loadProc("glIsEnabled"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->PointParameterf = loadProc("glPointParameterf"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->BeginQuery = loadProc("glBeginQuery"); + api->Uniform4dv = loadProc("glUniform4dv"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->Uniform3i = loadProc("glUniform3i"); + api->GetActiveUniformName = loadProc("glGetActiveUniformName"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->ShaderSource = loadProc("glShaderSource"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->Finish = loadProc("glFinish"); + api->DrawArraysInstancedBaseInstance = loadProc("glDrawArraysInstancedBaseInstance"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->GenBuffers = loadProc("glGenBuffers"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->BindSamplers = mg_glBindSamplers_noimpl; + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); + api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->DrawElementsInstancedBaseInstance = loadProc("glDrawElementsInstancedBaseInstance"); + api->PolygonMode = loadProc("glPolygonMode"); + api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->VertexAttribI1i = loadProc("glVertexAttribI1i"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->IsSync = loadProc("glIsSync"); + api->TexStorage1D = loadProc("glTexStorage1D"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->IsEnabledi = loadProc("glIsEnabledi"); + api->MultiDrawElementsIndirect = loadProc("glMultiDrawElementsIndirect"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); + api->VertexAttrib2s = loadProc("glVertexAttrib2s"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); + api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); + api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); + api->ViewportIndexedf = loadProc("glViewportIndexedf"); + api->DeleteSync = loadProc("glDeleteSync"); + api->CopyImageSubData = loadProc("glCopyImageSubData"); + api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; + api->ScissorIndexed = loadProc("glScissorIndexed"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->BindBuffersBase = mg_glBindBuffersBase_noimpl; + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->IsShader = loadProc("glIsShader"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->GetActiveAtomicCounterBufferiv = loadProc("glGetActiveAtomicCounterBufferiv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->BufferStorage = mg_glBufferStorage_noimpl; + api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->StencilMask = loadProc("glStencilMask"); + api->BindSampler = loadProc("glBindSampler"); + api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); + api->GetTexImage = loadProc("glGetTexImage"); + api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->VertexAttrib2d = loadProc("glVertexAttrib2d"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->InvalidateBufferSubData = loadProc("glInvalidateBufferSubData"); + api->EndQuery = loadProc("glEndQuery"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); + api->Uniform1f = loadProc("glUniform1f"); + api->DebugMessageCallback = loadProc("glDebugMessageCallback"); + api->ReadPixels = loadProc("glReadPixels"); + api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->CreateShader = loadProc("glCreateShader"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->AttachShader = loadProc("glAttachShader"); + api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->MultiDrawArraysIndirect = loadProc("glMultiDrawArraysIndirect"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->VertexAttribL3d = loadProc("glVertexAttribL3d"); + api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); + api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; + api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); + api->Viewport = loadProc("glViewport"); + api->BlendFunci = loadProc("glBlendFunci"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); + api->ObjectLabel = loadProc("glObjectLabel"); + api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); + api->InvalidateTexSubImage = loadProc("glInvalidateTexSubImage"); + api->BindBuffersRange = mg_glBindBuffersRange_noimpl; + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); + api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); + api->ProgramUniform3d = loadProc("glProgramUniform3d"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); + api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); + api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib3d = loadProc("glVertexAttrib3d"); + api->PointParameteri = loadProc("glPointParameteri"); + api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); + api->ProgramUniform1d = loadProc("glProgramUniform1d"); + api->PointParameteriv = loadProc("glPointParameteriv"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->TextureView = loadProc("glTextureView"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); + api->QueryCounter = loadProc("glQueryCounter"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->ClearStencil = loadProc("glClearStencil"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); + api->GetProgramStageiv = loadProc("glGetProgramStageiv"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->TexSubImage1D = loadProc("glTexSubImage1D"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); + api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); + api->WaitSync = loadProc("glWaitSync"); + api->ClearTexImage = mg_glClearTexImage_noimpl; + api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->DepthRange = loadProc("glDepthRange"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); + api->UseProgram = loadProc("glUseProgram"); + api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); + api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); + api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); + api->GetBufferSubData = loadProc("glGetBufferSubData"); + api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); + api->DebugMessageInsert = loadProc("glDebugMessageInsert"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->Uniform3dv = loadProc("glUniform3dv"); + api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); + api->Uniform4d = loadProc("glUniform4d"); + api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->TexParameteri = loadProc("glTexParameteri"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); + api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->TexBuffer = loadProc("glTexBuffer"); + api->ShaderStorageBlockBinding = loadProc("glShaderStorageBlockBinding"); + api->Disable = loadProc("glDisable"); + api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); + api->IsSampler = loadProc("glIsSampler"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); + api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); + api->GetStringi = loadProc("glGetStringi"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->VertexAttrib1d = loadProc("glVertexAttrib1d"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->Uniform2i = loadProc("glUniform2i"); + api->DrawBuffer = loadProc("glDrawBuffer"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->BlendBarrier = mg_glBlendBarrier_noimpl; + api->VertexAttribL2d = loadProc("glVertexAttribL2d"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); + api->BindTextures = mg_glBindTextures_noimpl; + api->Uniform3d = loadProc("glUniform3d"); + api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); + api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); + api->LineWidth = loadProc("glLineWidth"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); + api->Uniform1dv = loadProc("glUniform1dv"); + api->CullFace = loadProc("glCullFace"); + api->CreateProgram = loadProc("glCreateProgram"); + api->Uniform4i = loadProc("glUniform4i"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->BindImageTextures = mg_glBindImageTextures_noimpl; + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->FrontFace = loadProc("glFrontFace"); + api->PopDebugGroup = loadProc("glPopDebugGroup"); + api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); + api->InvalidateBufferData = loadProc("glInvalidateBufferData"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ScissorArrayv = loadProc("glScissorArrayv"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->DebugMessageControl = loadProc("glDebugMessageControl"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->PixelStoref = loadProc("glPixelStoref"); + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttribI3i = loadProc("glVertexAttribI3i"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Disablei = loadProc("glDisablei"); + api->GetInternalformati64v = loadProc("glGetInternalformati64v"); + api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->BlendColor = loadProc("glBlendColor"); + api->GenSamplers = loadProc("glGenSamplers"); + api->ColorMaski = loadProc("glColorMaski"); + api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->VertexAttrib3s = loadProc("glVertexAttrib3s"); + api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); + api->VertexAttribL1d = loadProc("glVertexAttribL1d"); + api->DrawElementsInstancedBaseVertexBaseInstance = loadProc("glDrawElementsInstancedBaseVertexBaseInstance"); + api->ClearBufferSubData = loadProc("glClearBufferSubData"); + api->VertexAttribLFormat = loadProc("glVertexAttribLFormat"); + api->Uniform2dv = loadProc("glUniform2dv"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CopyTexImage1D = loadProc("glCopyTexImage1D"); + api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); + api->VertexAttribL4d = loadProc("glVertexAttribL4d"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); + api->FenceSync = loadProc("glFenceSync"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->GetUniformdv = loadProc("glGetUniformdv"); + api->TexImage3D = loadProc("glTexImage3D"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->LinkProgram = loadProc("glLinkProgram"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); + api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->ProvokingVertex = loadProc("glProvokingVertex"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->DrawElements = loadProc("glDrawElements"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetError = loadProc("glGetError"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->StencilFunc = loadProc("glStencilFunc"); + api->Enablei = loadProc("glEnablei"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->ReadnPixels = mg_glReadnPixels_noimpl; + api->DrawTransformFeedbackInstanced = loadProc("glDrawTransformFeedbackInstanced"); + api->PointSize = loadProc("glPointSize"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ViewportArrayv = loadProc("glViewportArrayv"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4f = loadProc("glUniform4f"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->MultiDrawElements = loadProc("glMultiDrawElements"); + api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->MapBuffer = loadProc("glMapBuffer"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->EndQueryIndexed = loadProc("glEndQueryIndexed"); + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->DepthMask = loadProc("glDepthMask"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->PatchParameterfv = loadProc("glPatchParameterfv"); + api->ShaderBinary = loadProc("glShaderBinary"); + api->GetFloatv = loadProc("glGetFloatv"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->TexImage1D = loadProc("glTexImage1D"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ClearBufferData = loadProc("glClearBufferData"); + api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->GetString = loadProc("glGetString"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); + api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); + api->TexBufferRange = loadProc("glTexBufferRange"); + api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->DeleteShader = loadProc("glDeleteShader"); + api->GetFloati_v = loadProc("glGetFloati_v"); + api->DrawTransformFeedbackStreamInstanced = loadProc("glDrawTransformFeedbackStreamInstanced"); + api->VertexAttrib4s = loadProc("glVertexAttrib4s"); +} + +void mg_gl_load_gl44(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gl44"; + api->PointParameterfv = loadProc("glPointParameterfv"); + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform1i = loadProc("glUniform1i"); + api->VertexAttribP3ui = loadProc("glVertexAttribP3ui"); + api->VertexAttrib4sv = loadProc("glVertexAttrib4sv"); + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->ProgramUniform2dv = loadProc("glProgramUniform2dv"); + api->ClampColor = loadProc("glClampColor"); + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniform2d = loadProc("glProgramUniform2d"); + api->BindBuffer = loadProc("glBindBuffer"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->PixelStorei = loadProc("glPixelStorei"); + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib4Nuiv = loadProc("glVertexAttrib4Nuiv"); + api->IsTexture = loadProc("glIsTexture"); + api->VertexAttrib4d = loadProc("glVertexAttrib4d"); + api->ProgramUniformMatrix2x4dv = loadProc("glProgramUniformMatrix2x4dv"); + api->GetObjectLabel = loadProc("glGetObjectLabel"); + api->BeginConditionalRender = loadProc("glBeginConditionalRender"); + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->CompileShader = loadProc("glCompileShader"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->VertexAttribL1dv = loadProc("glVertexAttribL1dv"); + api->Uniform1fv = loadProc("glUniform1fv"); + api->TexImage2D = loadProc("glTexImage2D"); + api->Flush = loadProc("glFlush"); + api->VertexAttribP2uiv = loadProc("glVertexAttribP2uiv"); + api->IsProgram = loadProc("glIsProgram"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->VertexAttribLPointer = loadProc("glVertexAttribLPointer"); + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->Uniform1d = loadProc("glUniform1d"); + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ColorMask = loadProc("glColorMask"); + api->ClearDepth = loadProc("glClearDepth"); + api->GetInteger64v = loadProc("glGetInteger64v"); + api->VertexAttribP2ui = loadProc("glVertexAttribP2ui"); + api->VertexAttrib2dv = loadProc("glVertexAttrib2dv"); + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->InvalidateTexImage = loadProc("glInvalidateTexImage"); + api->SampleMaski = loadProc("glSampleMaski"); + api->GetProgramResourceLocationIndex = loadProc("glGetProgramResourceLocationIndex"); + api->VertexAttrib4dv = loadProc("glVertexAttrib4dv"); + api->BindFragDataLocation = loadProc("glBindFragDataLocation"); + api->GetFragDataIndex = loadProc("glGetFragDataIndex"); + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->VertexAttribP4uiv = loadProc("glVertexAttribP4uiv"); + api->MultiDrawArrays = loadProc("glMultiDrawArrays"); + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->BufferData = loadProc("glBufferData"); + api->GetCompressedTexImage = loadProc("glGetCompressedTexImage"); + api->VertexAttrib3sv = loadProc("glVertexAttrib3sv"); + api->IsQuery = loadProc("glIsQuery"); + api->ClearColor = loadProc("glClearColor"); + api->BlendFunc = loadProc("glBlendFunc"); + api->GetDoublei_v = loadProc("glGetDoublei_v"); + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->PrimitiveRestartIndex = loadProc("glPrimitiveRestartIndex"); + api->VertexAttribP1ui = loadProc("glVertexAttribP1ui"); + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->GetSubroutineUniformLocation = loadProc("glGetSubroutineUniformLocation"); + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->PushDebugGroup = loadProc("glPushDebugGroup"); + api->GenTextures = loadProc("glGenTextures"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Hint = loadProc("glHint"); + api->TexParameterf = loadProc("glTexParameterf"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->Clear = loadProc("glClear"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ScissorIndexedv = loadProc("glScissorIndexedv"); + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Enable = loadProc("glEnable"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->LogicOp = loadProc("glLogicOp"); + api->DepthFunc = loadProc("glDepthFunc"); + api->VertexAttrib1dv = loadProc("glVertexAttrib1dv"); + api->Uniform2d = loadProc("glUniform2d"); + api->DetachShader = loadProc("glDetachShader"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetDoublev = loadProc("glGetDoublev"); + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ProgramUniform4d = loadProc("glProgramUniform4d"); + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->VertexAttrib4bv = loadProc("glVertexAttrib4bv"); + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->VertexAttrib1s = loadProc("glVertexAttrib1s"); + api->VertexAttribI2i = loadProc("glVertexAttribI2i"); + api->SampleCoverage = loadProc("glSampleCoverage"); + api->BufferSubData = loadProc("glBufferSubData"); + api->VertexAttribI1ui = loadProc("glVertexAttribI1ui"); + api->EndConditionalRender = loadProc("glEndConditionalRender"); + api->GetPointerv = loadProc("glGetPointerv"); + api->GetnUniformiv = mg_glGetnUniformiv_noimpl; + api->BlendEquation = loadProc("glBlendEquation"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->GetnUniformfv = mg_glGetnUniformfv_noimpl; + api->VertexAttrib4Nsv = loadProc("glVertexAttrib4Nsv"); + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform3f = loadProc("glUniform3f"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->BindVertexBuffers = loadProc("glBindVertexBuffers"); + api->Scissor = loadProc("glScissor"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->UniformMatrix2dv = loadProc("glUniformMatrix2dv"); + api->IsEnabled = loadProc("glIsEnabled"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->PointParameterf = loadProc("glPointParameterf"); + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->BeginQuery = loadProc("glBeginQuery"); + api->Uniform4dv = loadProc("glUniform4dv"); + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->BeginQueryIndexed = loadProc("glBeginQueryIndexed"); + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->Uniform3i = loadProc("glUniform3i"); + api->GetActiveUniformName = loadProc("glGetActiveUniformName"); + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->ShaderSource = loadProc("glShaderSource"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->Finish = loadProc("glFinish"); + api->DrawArraysInstancedBaseInstance = loadProc("glDrawArraysInstancedBaseInstance"); + api->DeleteProgram = loadProc("glDeleteProgram"); + api->MultiDrawElementsBaseVertex = loadProc("glMultiDrawElementsBaseVertex"); + api->ReadBuffer = loadProc("glReadBuffer"); + api->GenBuffers = loadProc("glGenBuffers"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->VertexAttribL4dv = loadProc("glVertexAttribL4dv"); + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->BindSamplers = loadProc("glBindSamplers"); + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->VertexAttrib4ubv = loadProc("glVertexAttrib4ubv"); + api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->DrawElementsInstancedBaseInstance = loadProc("glDrawElementsInstancedBaseInstance"); + api->PolygonMode = loadProc("glPolygonMode"); + api->VertexAttribP1uiv = loadProc("glVertexAttribP1uiv"); + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->VertexAttribI1i = loadProc("glVertexAttribI1i"); + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->IsSync = loadProc("glIsSync"); + api->TexStorage1D = loadProc("glTexStorage1D"); + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->IsEnabledi = loadProc("glIsEnabledi"); + api->MultiDrawElementsIndirect = loadProc("glMultiDrawElementsIndirect"); + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->VertexAttribI4ubv = loadProc("glVertexAttribI4ubv"); + api->VertexAttrib2s = loadProc("glVertexAttrib2s"); + api->GetBooleanv = loadProc("glGetBooleanv"); + api->VertexAttrib4iv = loadProc("glVertexAttrib4iv"); + api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); + api->UniformMatrix2x4dv = loadProc("glUniformMatrix2x4dv"); + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribdv = loadProc("glGetVertexAttribdv"); + api->ViewportIndexedf = loadProc("glViewportIndexedf"); + api->DeleteSync = loadProc("glDeleteSync"); + api->CopyImageSubData = loadProc("glCopyImageSubData"); + api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; + api->ScissorIndexed = loadProc("glScissorIndexed"); + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->MemoryBarrierByRegion = mg_glMemoryBarrierByRegion_noimpl; + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->BindBuffersBase = loadProc("glBindBuffersBase"); + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->IsShader = loadProc("glIsShader"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->GetActiveAtomicCounterBufferiv = loadProc("glGetActiveAtomicCounterBufferiv"); + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->BufferStorage = loadProc("glBufferStorage"); + api->GetUniformSubroutineuiv = loadProc("glGetUniformSubroutineuiv"); + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->StencilMask = loadProc("glStencilMask"); + api->BindSampler = loadProc("glBindSampler"); + api->UniformMatrix4dv = loadProc("glUniformMatrix4dv"); + api->BindImageTexture = loadProc("glBindImageTexture"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib4Nub = loadProc("glVertexAttrib4Nub"); + api->GetTexImage = loadProc("glGetTexImage"); + api->VertexAttrib3dv = loadProc("glVertexAttrib3dv"); + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->VertexAttrib2d = loadProc("glVertexAttrib2d"); + api->Uniform1ui = loadProc("glUniform1ui"); + api->InvalidateBufferSubData = loadProc("glInvalidateBufferSubData"); + api->EndQuery = loadProc("glEndQuery"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->VertexAttrib2sv = loadProc("glVertexAttrib2sv"); + api->Uniform1f = loadProc("glUniform1f"); + api->DebugMessageCallback = loadProc("glDebugMessageCallback"); + api->ReadPixels = loadProc("glReadPixels"); + api->CompressedTexSubImage1D = loadProc("glCompressedTexSubImage1D"); + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->CreateShader = loadProc("glCreateShader"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->AttachShader = loadProc("glAttachShader"); + api->UniformMatrix2x3dv = loadProc("glUniformMatrix2x3dv"); + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->MultiDrawArraysIndirect = loadProc("glMultiDrawArraysIndirect"); + api->Uniform2iv = loadProc("glUniform2iv"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->VertexAttribL3d = loadProc("glVertexAttribL3d"); + api->TexImage3DMultisample = loadProc("glTexImage3DMultisample"); + api->ClearTexSubImage = loadProc("glClearTexSubImage"); + api->VertexAttrib4Nusv = loadProc("glVertexAttrib4Nusv"); + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->VertexAttribP4ui = loadProc("glVertexAttribP4ui"); + api->Viewport = loadProc("glViewport"); + api->BlendFunci = loadProc("glBlendFunci"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->VertexAttribI2iv = loadProc("glVertexAttribI2iv"); + api->ObjectLabel = loadProc("glObjectLabel"); + api->CompressedTexImage1D = loadProc("glCompressedTexImage1D"); + api->InvalidateTexSubImage = loadProc("glInvalidateTexSubImage"); + api->BindBuffersRange = loadProc("glBindBuffersRange"); + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->VertexAttrib4Nbv = loadProc("glVertexAttrib4Nbv"); + api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); + api->ProgramUniform3d = loadProc("glProgramUniform3d"); + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); + api->VertexAttribL3dv = loadProc("glVertexAttribL3dv"); + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->VertexAttribL2dv = loadProc("glVertexAttribL2dv"); + api->ProgramUniform1dv = loadProc("glProgramUniform1dv"); + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib3d = loadProc("glVertexAttrib3d"); + api->PointParameteri = loadProc("glPointParameteri"); + api->VertexAttribI1uiv = loadProc("glVertexAttribI1uiv"); + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->BindFragDataLocationIndexed = loadProc("glBindFragDataLocationIndexed"); + api->ProgramUniform1d = loadProc("glProgramUniform1d"); + api->PointParameteriv = loadProc("glPointParameteriv"); + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->TextureView = loadProc("glTextureView"); + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->ProgramUniform3dv = loadProc("glProgramUniform3dv"); + api->QueryCounter = loadProc("glQueryCounter"); + api->GetUniformfv = loadProc("glGetUniformfv"); + api->ClearStencil = loadProc("glClearStencil"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->UniformSubroutinesuiv = loadProc("glUniformSubroutinesuiv"); + api->GetProgramStageiv = loadProc("glGetProgramStageiv"); + api->Uniform1iv = loadProc("glUniform1iv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->TexSubImage1D = loadProc("glTexSubImage1D"); + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->GetSubroutineIndex = loadProc("glGetSubroutineIndex"); + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->ProgramUniformMatrix3x2dv = loadProc("glProgramUniformMatrix3x2dv"); + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->ProgramUniformMatrix3x4dv = loadProc("glProgramUniformMatrix3x4dv"); + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->DrawTransformFeedbackStream = loadProc("glDrawTransformFeedbackStream"); + api->VertexAttribI1iv = loadProc("glVertexAttribI1iv"); + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->ProgramUniformMatrix2dv = loadProc("glProgramUniformMatrix2dv"); + api->WaitSync = loadProc("glWaitSync"); + api->ClearTexImage = loadProc("glClearTexImage"); + api->DepthRangeIndexed = loadProc("glDepthRangeIndexed"); + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->DepthRange = loadProc("glDepthRange"); + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->VertexAttribI3uiv = loadProc("glVertexAttribI3uiv"); + api->UseProgram = loadProc("glUseProgram"); + api->GetActiveSubroutineName = loadProc("glGetActiveSubroutineName"); + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4x3dv = loadProc("glProgramUniformMatrix4x3dv"); + api->UniformMatrix4x3dv = loadProc("glUniformMatrix4x3dv"); + api->ProgramUniform4dv = loadProc("glProgramUniform4dv"); + api->GetBufferSubData = loadProc("glGetBufferSubData"); + api->VertexAttrib4uiv = loadProc("glVertexAttrib4uiv"); + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib4usv = loadProc("glVertexAttrib4usv"); + api->DebugMessageInsert = loadProc("glDebugMessageInsert"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->TexImage2DMultisample = loadProc("glTexImage2DMultisample"); + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->Uniform3dv = loadProc("glUniform3dv"); + api->UniformMatrix3x2dv = loadProc("glUniformMatrix3x2dv"); + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->VertexAttribP3uiv = loadProc("glVertexAttribP3uiv"); + api->Uniform4d = loadProc("glUniform4d"); + api->ProgramUniformMatrix3dv = loadProc("glProgramUniformMatrix3dv"); + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->TexParameteri = loadProc("glTexParameteri"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->GetQueryObjectui64v = loadProc("glGetQueryObjectui64v"); + api->VertexAttrib4Niv = loadProc("glVertexAttrib4Niv"); + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4bv = loadProc("glVertexAttribI4bv"); + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniformMatrix4x2dv = loadProc("glProgramUniformMatrix4x2dv"); + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetQueryObjectiv = loadProc("glGetQueryObjectiv"); + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->TexBuffer = loadProc("glTexBuffer"); + api->ShaderStorageBlockBinding = loadProc("glShaderStorageBlockBinding"); + api->Disable = loadProc("glDisable"); + api->VertexAttribI3ui = loadProc("glVertexAttribI3ui"); + api->IsSampler = loadProc("glIsSampler"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->VertexAttribI2uiv = loadProc("glVertexAttribI2uiv"); + api->GetQueryObjecti64v = loadProc("glGetQueryObjecti64v"); + api->GetStringi = loadProc("glGetStringi"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->VertexAttrib1d = loadProc("glVertexAttrib1d"); + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->Uniform2i = loadProc("glUniform2i"); + api->DrawBuffer = loadProc("glDrawBuffer"); + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->ProgramUniformMatrix4dv = loadProc("glProgramUniformMatrix4dv"); + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->BlendBarrier = mg_glBlendBarrier_noimpl; + api->VertexAttribL2d = loadProc("glVertexAttribL2d"); + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttribI2ui = loadProc("glVertexAttribI2ui"); + api->BindTextures = loadProc("glBindTextures"); + api->Uniform3d = loadProc("glUniform3d"); + api->ViewportIndexedfv = loadProc("glViewportIndexedfv"); + api->VertexAttribI4sv = loadProc("glVertexAttribI4sv"); + api->LineWidth = loadProc("glLineWidth"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->VertexAttribI3iv = loadProc("glVertexAttribI3iv"); + api->Uniform1dv = loadProc("glUniform1dv"); + api->CullFace = loadProc("glCullFace"); + api->CreateProgram = loadProc("glCreateProgram"); + api->Uniform4i = loadProc("glUniform4i"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->BindImageTextures = loadProc("glBindImageTextures"); + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->FrontFace = loadProc("glFrontFace"); + api->PopDebugGroup = loadProc("glPopDebugGroup"); + api->VertexAttrib1sv = loadProc("glVertexAttrib1sv"); + api->InvalidateBufferData = loadProc("glInvalidateBufferData"); + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ScissorArrayv = loadProc("glScissorArrayv"); + api->ValidateProgram = loadProc("glValidateProgram"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->DebugMessageControl = loadProc("glDebugMessageControl"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->PixelStoref = loadProc("glPixelStoref"); + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttribI3i = loadProc("glVertexAttribI3i"); + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Disablei = loadProc("glDisablei"); + api->GetInternalformati64v = loadProc("glGetInternalformati64v"); + api->ProgramUniformMatrix2x3dv = loadProc("glProgramUniformMatrix2x3dv"); + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->BlendColor = loadProc("glBlendColor"); + api->GenSamplers = loadProc("glGenSamplers"); + api->ColorMaski = loadProc("glColorMaski"); + api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->VertexAttrib3s = loadProc("glVertexAttrib3s"); + api->DrawTransformFeedback = loadProc("glDrawTransformFeedback"); + api->VertexAttribL1d = loadProc("glVertexAttribL1d"); + api->DrawElementsInstancedBaseVertexBaseInstance = loadProc("glDrawElementsInstancedBaseVertexBaseInstance"); + api->ClearBufferSubData = loadProc("glClearBufferSubData"); + api->VertexAttribLFormat = loadProc("glVertexAttribLFormat"); + api->Uniform2dv = loadProc("glUniform2dv"); + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CopyTexImage1D = loadProc("glCopyTexImage1D"); + api->FramebufferTexture3D = loadProc("glFramebufferTexture3D"); + api->VertexAttribL4d = loadProc("glVertexAttribL4d"); + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetQueryIndexediv = loadProc("glGetQueryIndexediv"); + api->FenceSync = loadProc("glFenceSync"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->GetUniformdv = loadProc("glGetUniformdv"); + api->TexImage3D = loadProc("glTexImage3D"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->LinkProgram = loadProc("glLinkProgram"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->FramebufferTexture1D = loadProc("glFramebufferTexture1D"); + api->GetActiveSubroutineUniformName = loadProc("glGetActiveSubroutineUniformName"); + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->ProvokingVertex = loadProc("glProvokingVertex"); + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->VertexAttribI4usv = loadProc("glVertexAttribI4usv"); + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->DrawElements = loadProc("glDrawElements"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetError = loadProc("glGetError"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->StencilFunc = loadProc("glStencilFunc"); + api->Enablei = loadProc("glEnablei"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->ReadnPixels = mg_glReadnPixels_noimpl; + api->DrawTransformFeedbackInstanced = loadProc("glDrawTransformFeedbackInstanced"); + api->PointSize = loadProc("glPointSize"); + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ViewportArrayv = loadProc("glViewportArrayv"); + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4f = loadProc("glUniform4f"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->MultiDrawElements = loadProc("glMultiDrawElements"); + api->UniformMatrix4x2dv = loadProc("glUniformMatrix4x2dv"); + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->CopyTexSubImage1D = loadProc("glCopyTexSubImage1D"); + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetActiveSubroutineUniformiv = loadProc("glGetActiveSubroutineUniformiv"); + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->DepthRangeArrayv = loadProc("glDepthRangeArrayv"); + api->TexParameterfv = loadProc("glTexParameterfv"); + api->MapBuffer = loadProc("glMapBuffer"); + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->EndQueryIndexed = loadProc("glEndQueryIndexed"); + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->DepthMask = loadProc("glDepthMask"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->PatchParameterfv = loadProc("glPatchParameterfv"); + api->ShaderBinary = loadProc("glShaderBinary"); + api->GetFloatv = loadProc("glGetFloatv"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->TexImage1D = loadProc("glTexImage1D"); + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ClearBufferData = loadProc("glClearBufferData"); + api->UniformMatrix3dv = loadProc("glUniformMatrix3dv"); + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->GetString = loadProc("glGetString"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->GetVertexAttribLdv = loadProc("glGetVertexAttribLdv"); + api->VertexAttrib4Nubv = loadProc("glVertexAttrib4Nubv"); + api->TexBufferRange = loadProc("glTexBufferRange"); + api->UniformMatrix3x4dv = loadProc("glUniformMatrix3x4dv"); + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->DeleteShader = loadProc("glDeleteShader"); + api->GetFloati_v = loadProc("glGetFloati_v"); + api->DrawTransformFeedbackStreamInstanced = loadProc("glDrawTransformFeedbackStreamInstanced"); + api->VertexAttrib4s = loadProc("glVertexAttrib4s"); +} + +void mg_gl_load_gles31(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gles31"; + api->PointParameterfv = mg_glPointParameterfv_noimpl; + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform1i = loadProc("glUniform1i"); + api->VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl; + api->VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl; + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->ProgramUniform2dv = mg_glProgramUniform2dv_noimpl; + api->ClampColor = mg_glClampColor_noimpl; + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniform2d = mg_glProgramUniform2d_noimpl; + api->BindBuffer = loadProc("glBindBuffer"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->PixelStorei = loadProc("glPixelStorei"); + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl; + api->IsTexture = loadProc("glIsTexture"); + api->VertexAttrib4d = mg_glVertexAttrib4d_noimpl; + api->ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl; + api->GetObjectLabel = mg_glGetObjectLabel_noimpl; + api->BeginConditionalRender = mg_glBeginConditionalRender_noimpl; + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->CompileShader = loadProc("glCompileShader"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl; + api->Uniform1fv = loadProc("glUniform1fv"); + api->TexImage2D = loadProc("glTexImage2D"); + api->Flush = loadProc("glFlush"); + api->VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl; + api->IsProgram = loadProc("glIsProgram"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl; + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->Uniform1d = mg_glUniform1d_noimpl; + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ColorMask = loadProc("glColorMask"); + api->ClearDepth = mg_glClearDepth_noimpl; + api->GetInteger64v = loadProc("glGetInteger64v"); + api->VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl; + api->VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl; + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->BlendEquationi = mg_glBlendEquationi_noimpl; + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; + api->SampleMaski = loadProc("glSampleMaski"); + api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; + api->VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl; + api->BindFragDataLocation = mg_glBindFragDataLocation_noimpl; + api->GetFragDataIndex = mg_glGetFragDataIndex_noimpl; + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl; + api->MultiDrawArrays = mg_glMultiDrawArrays_noimpl; + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->BufferData = loadProc("glBufferData"); + api->GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl; + api->VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl; + api->IsQuery = loadProc("glIsQuery"); + api->ClearColor = loadProc("glClearColor"); + api->BlendFunc = loadProc("glBlendFunc"); + api->GetDoublei_v = mg_glGetDoublei_v_noimpl; + api->FramebufferTexture = mg_glFramebufferTexture_noimpl; + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl; + api->VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl; + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl; + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->PushDebugGroup = mg_glPushDebugGroup_noimpl; + api->GenTextures = loadProc("glGenTextures"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Hint = loadProc("glHint"); + api->TexParameterf = loadProc("glTexParameterf"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->DrawRangeElementsBaseVertex = mg_glDrawRangeElementsBaseVertex_noimpl; + api->Clear = loadProc("glClear"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ScissorIndexedv = mg_glScissorIndexedv_noimpl; + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Enable = loadProc("glEnable"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->LogicOp = mg_glLogicOp_noimpl; + api->DepthFunc = loadProc("glDepthFunc"); + api->VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl; + api->Uniform2d = mg_glUniform2d_noimpl; + api->DetachShader = loadProc("glDetachShader"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetDoublev = mg_glGetDoublev_noimpl; + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ProgramUniform4d = mg_glProgramUniform4d_noimpl; + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl; + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->VertexAttrib1s = mg_glVertexAttrib1s_noimpl; + api->VertexAttribI2i = mg_glVertexAttribI2i_noimpl; + api->SampleCoverage = loadProc("glSampleCoverage"); + api->BufferSubData = loadProc("glBufferSubData"); + api->VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl; + api->EndConditionalRender = mg_glEndConditionalRender_noimpl; + api->GetPointerv = mg_glGetPointerv_noimpl; + api->GetnUniformiv = mg_glGetnUniformiv_noimpl; + api->BlendEquation = loadProc("glBlendEquation"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->GetnUniformfv = mg_glGetnUniformfv_noimpl; + api->VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl; + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform3f = loadProc("glUniform3f"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->DrawElementsBaseVertex = mg_glDrawElementsBaseVertex_noimpl; + api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; + api->Scissor = loadProc("glScissor"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl; + api->IsEnabled = loadProc("glIsEnabled"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->PointParameterf = mg_glPointParameterf_noimpl; + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->BeginQuery = loadProc("glBeginQuery"); + api->Uniform4dv = mg_glUniform4dv_noimpl; + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetSamplerParameterIiv = mg_glGetSamplerParameterIiv_noimpl; + api->BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl; + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->Uniform3i = loadProc("glUniform3i"); + api->GetActiveUniformName = mg_glGetActiveUniformName_noimpl; + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->ShaderSource = loadProc("glShaderSource"); + api->SamplerParameterIiv = mg_glSamplerParameterIiv_noimpl; + api->Finish = loadProc("glFinish"); + api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; + api->DeleteProgram = loadProc("glDeleteProgram"); + api->MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl; + api->ReadBuffer = loadProc("glReadBuffer"); + api->GenBuffers = loadProc("glGenBuffers"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl; + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->BindSamplers = mg_glBindSamplers_noimpl; + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl; + api->GetDebugMessageLog = mg_glGetDebugMessageLog_noimpl; + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; + api->PolygonMode = mg_glPolygonMode_noimpl; + api->VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl; + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->VertexAttribI1i = mg_glVertexAttribI1i_noimpl; + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->IsSync = loadProc("glIsSync"); + api->TexStorage1D = mg_glTexStorage1D_noimpl; + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->IsEnabledi = mg_glIsEnabledi_noimpl; + api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl; + api->VertexAttrib2s = mg_glVertexAttrib2s_noimpl; + api->GetBooleanv = loadProc("glGetBooleanv"); + api->VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl; + api->GetObjectPtrLabel = mg_glGetObjectPtrLabel_noimpl; + api->UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl; + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl; + api->ViewportIndexedf = mg_glViewportIndexedf_noimpl; + api->DeleteSync = loadProc("glDeleteSync"); + api->CopyImageSubData = mg_glCopyImageSubData_noimpl; + api->PrimitiveBoundingBox = mg_glPrimitiveBoundingBox_noimpl; + api->ScissorIndexed = mg_glScissorIndexed_noimpl; + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->BindBuffersBase = mg_glBindBuffersBase_noimpl; + api->GetTexParameterIuiv = mg_glGetTexParameterIuiv_noimpl; + api->IsShader = loadProc("glIsShader"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->BufferStorage = mg_glBufferStorage_noimpl; + api->GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl; + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->StencilMask = loadProc("glStencilMask"); + api->BindSampler = loadProc("glBindSampler"); + api->UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl; + api->BindImageTexture = loadProc("glBindImageTexture"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl; + api->GetTexImage = mg_glGetTexImage_noimpl; + api->VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl; + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->VertexAttrib2d = mg_glVertexAttrib2d_noimpl; + api->Uniform1ui = loadProc("glUniform1ui"); + api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; + api->EndQuery = loadProc("glEndQuery"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl; + api->Uniform1f = loadProc("glUniform1f"); + api->DebugMessageCallback = mg_glDebugMessageCallback_noimpl; + api->ReadPixels = loadProc("glReadPixels"); + api->CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl; + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->CreateShader = loadProc("glCreateShader"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->AttachShader = loadProc("glAttachShader"); + api->UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl; + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; + api->Uniform2iv = loadProc("glUniform2iv"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->VertexAttribL3d = mg_glVertexAttribL3d_noimpl; + api->TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl; + api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; + api->VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl; + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl; + api->Viewport = loadProc("glViewport"); + api->BlendFunci = mg_glBlendFunci_noimpl; + api->PolygonOffset = loadProc("glPolygonOffset"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl; + api->ObjectLabel = mg_glObjectLabel_noimpl; + api->CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl; + api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; + api->BindBuffersRange = mg_glBindBuffersRange_noimpl; + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl; + api->ObjectPtrLabel = mg_glObjectPtrLabel_noimpl; + api->ProgramUniform3d = mg_glProgramUniform3d_noimpl; + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->TexStorage3DMultisample = mg_glTexStorage3DMultisample_noimpl; + api->VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl; + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl; + api->ProgramUniform1dv = mg_glProgramUniform1dv_noimpl; + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib3d = mg_glVertexAttrib3d_noimpl; + api->PointParameteri = mg_glPointParameteri_noimpl; + api->VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl; + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl; + api->ProgramUniform1d = mg_glProgramUniform1d_noimpl; + api->PointParameteriv = mg_glPointParameteriv_noimpl; + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->TextureView = mg_glTextureView_noimpl; + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->ProgramUniform3dv = mg_glProgramUniform3dv_noimpl; + api->QueryCounter = mg_glQueryCounter_noimpl; + api->GetUniformfv = loadProc("glGetUniformfv"); + api->ClearStencil = loadProc("glClearStencil"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl; + api->GetProgramStageiv = mg_glGetProgramStageiv_noimpl; + api->Uniform1iv = loadProc("glUniform1iv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->TexSubImage1D = mg_glTexSubImage1D_noimpl; + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl; + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->BlendFuncSeparatei = mg_glBlendFuncSeparatei_noimpl; + api->ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl; + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl; + api->GetSamplerParameterIuiv = mg_glGetSamplerParameterIuiv_noimpl; + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->TexParameterIiv = mg_glTexParameterIiv_noimpl; + api->DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl; + api->VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl; + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->PatchParameteri = mg_glPatchParameteri_noimpl; + api->ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl; + api->WaitSync = loadProc("glWaitSync"); + api->ClearTexImage = mg_glClearTexImage_noimpl; + api->DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl; + api->GetTexParameterIiv = mg_glGetTexParameterIiv_noimpl; + api->DepthRange = mg_glDepthRange_noimpl; + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl; + api->UseProgram = loadProc("glUseProgram"); + api->GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl; + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl; + api->UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl; + api->ProgramUniform4dv = mg_glProgramUniform4dv_noimpl; + api->GetBufferSubData = mg_glGetBufferSubData_noimpl; + api->VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl; + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl; + api->DebugMessageInsert = mg_glDebugMessageInsert_noimpl; + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl; + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->Uniform3dv = mg_glUniform3dv_noimpl; + api->UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl; + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl; + api->Uniform4d = mg_glUniform4d_noimpl; + api->ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl; + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->TexParameteri = loadProc("glTexParameteri"); + api->DrawElementsInstancedBaseVertex = mg_glDrawElementsInstancedBaseVertex_noimpl; + api->GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl; + api->VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl; + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl; + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl; + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl; + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->TexBuffer = mg_glTexBuffer_noimpl; + api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; + api->Disable = loadProc("glDisable"); + api->VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl; + api->IsSampler = loadProc("glIsSampler"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl; + api->GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl; + api->GetStringi = loadProc("glGetStringi"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->VertexAttrib1d = mg_glVertexAttrib1d_noimpl; + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->Uniform2i = loadProc("glUniform2i"); + api->DrawBuffer = mg_glDrawBuffer_noimpl; + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl; + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->BlendBarrier = mg_glBlendBarrier_noimpl; + api->VertexAttribL2d = mg_glVertexAttribL2d_noimpl; + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl; + api->BindTextures = mg_glBindTextures_noimpl; + api->Uniform3d = mg_glUniform3d_noimpl; + api->ViewportIndexedfv = mg_glViewportIndexedfv_noimpl; + api->VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl; + api->LineWidth = loadProc("glLineWidth"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl; + api->Uniform1dv = mg_glUniform1dv_noimpl; + api->CullFace = loadProc("glCullFace"); + api->CreateProgram = loadProc("glCreateProgram"); + api->Uniform4i = loadProc("glUniform4i"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->BindImageTextures = mg_glBindImageTextures_noimpl; + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->FrontFace = loadProc("glFrontFace"); + api->PopDebugGroup = mg_glPopDebugGroup_noimpl; + api->VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl; + api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ScissorArrayv = mg_glScissorArrayv_noimpl; + api->ValidateProgram = loadProc("glValidateProgram"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->DebugMessageControl = mg_glDebugMessageControl_noimpl; + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->PixelStoref = mg_glPixelStoref_noimpl; + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttribI3i = mg_glVertexAttribI3i_noimpl; + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Disablei = mg_glDisablei_noimpl; + api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; + api->ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl; + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->BlendColor = loadProc("glBlendColor"); + api->GenSamplers = loadProc("glGenSamplers"); + api->ColorMaski = mg_glColorMaski_noimpl; + api->GetGraphicsResetStatus = mg_glGetGraphicsResetStatus_noimpl; + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->VertexAttrib3s = mg_glVertexAttrib3s_noimpl; + api->DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl; + api->VertexAttribL1d = mg_glVertexAttribL1d_noimpl; + api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; + api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; + api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; + api->Uniform2dv = mg_glUniform2dv_noimpl; + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CopyTexImage1D = mg_glCopyTexImage1D_noimpl; + api->FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl; + api->VertexAttribL4d = mg_glVertexAttribL4d_noimpl; + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl; + api->FenceSync = loadProc("glFenceSync"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->SamplerParameterIuiv = mg_glSamplerParameterIuiv_noimpl; + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->GetUniformdv = mg_glGetUniformdv_noimpl; + api->TexImage3D = loadProc("glTexImage3D"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->LinkProgram = loadProc("glLinkProgram"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl; + api->GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl; + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->ProvokingVertex = mg_glProvokingVertex_noimpl; + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetnUniformuiv = mg_glGetnUniformuiv_noimpl; + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl; + api->BlendEquationSeparatei = mg_glBlendEquationSeparatei_noimpl; + api->DrawElements = loadProc("glDrawElements"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetError = loadProc("glGetError"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->StencilFunc = loadProc("glStencilFunc"); + api->Enablei = mg_glEnablei_noimpl; + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->ReadnPixels = mg_glReadnPixels_noimpl; + api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; + api->PointSize = mg_glPointSize_noimpl; + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ViewportArrayv = mg_glViewportArrayv_noimpl; + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4f = loadProc("glUniform4f"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->MultiDrawElements = mg_glMultiDrawElements_noimpl; + api->UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl; + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl; + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl; + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl; + api->TexParameterfv = loadProc("glTexParameterfv"); + api->MapBuffer = mg_glMapBuffer_noimpl; + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->MinSampleShading = mg_glMinSampleShading_noimpl; + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->EndQueryIndexed = mg_glEndQueryIndexed_noimpl; + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->DepthMask = loadProc("glDepthMask"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->PatchParameterfv = mg_glPatchParameterfv_noimpl; + api->ShaderBinary = loadProc("glShaderBinary"); + api->GetFloatv = loadProc("glGetFloatv"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->TexImage1D = mg_glTexImage1D_noimpl; + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ClearBufferData = mg_glClearBufferData_noimpl; + api->UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl; + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->GetString = loadProc("glGetString"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl; + api->VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl; + api->TexBufferRange = mg_glTexBufferRange_noimpl; + api->UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl; + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->TexParameterIuiv = mg_glTexParameterIuiv_noimpl; + api->DeleteShader = loadProc("glDeleteShader"); + api->GetFloati_v = mg_glGetFloati_v_noimpl; + api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; + api->VertexAttrib4s = mg_glVertexAttrib4s_noimpl; +} + +void mg_gl_load_gles32(mg_gl_api* api, mg_gl_load_proc loadProc) +{ + api->name = "gles32"; + api->PointParameterfv = mg_glPointParameterfv_noimpl; + api->Uniform3fv = loadProc("glUniform3fv"); + api->Uniform1i = loadProc("glUniform1i"); + api->VertexAttribP3ui = mg_glVertexAttribP3ui_noimpl; + api->VertexAttrib4sv = mg_glVertexAttrib4sv_noimpl; + api->GetBufferParameteriv = loadProc("glGetBufferParameteriv"); + api->ProgramUniform2dv = mg_glProgramUniform2dv_noimpl; + api->ClampColor = mg_glClampColor_noimpl; + api->CompressedTexImage3D = loadProc("glCompressedTexImage3D"); + api->ProgramUniformMatrix2x4fv = loadProc("glProgramUniformMatrix2x4fv"); + api->ProgramUniform2d = mg_glProgramUniform2d_noimpl; + api->BindBuffer = loadProc("glBindBuffer"); + api->GetUniformBlockIndex = loadProc("glGetUniformBlockIndex"); + api->InvalidateFramebuffer = loadProc("glInvalidateFramebuffer"); + api->PixelStorei = loadProc("glPixelStorei"); + api->BindTexture = loadProc("glBindTexture"); + api->VertexAttrib4Nuiv = mg_glVertexAttrib4Nuiv_noimpl; + api->IsTexture = loadProc("glIsTexture"); + api->VertexAttrib4d = mg_glVertexAttrib4d_noimpl; + api->ProgramUniformMatrix2x4dv = mg_glProgramUniformMatrix2x4dv_noimpl; + api->GetObjectLabel = loadProc("glGetObjectLabel"); + api->BeginConditionalRender = mg_glBeginConditionalRender_noimpl; + api->IsFramebuffer = loadProc("glIsFramebuffer"); + api->CompileShader = loadProc("glCompileShader"); + api->VertexAttribBinding = loadProc("glVertexAttribBinding"); + api->VertexAttribL1dv = mg_glVertexAttribL1dv_noimpl; + api->Uniform1fv = loadProc("glUniform1fv"); + api->TexImage2D = loadProc("glTexImage2D"); + api->Flush = loadProc("glFlush"); + api->VertexAttribP2uiv = mg_glVertexAttribP2uiv_noimpl; + api->IsProgram = loadProc("glIsProgram"); + api->ProgramUniform4fv = loadProc("glProgramUniform4fv"); + api->VertexAttribLPointer = mg_glVertexAttribLPointer_noimpl; + api->ClientWaitSync = loadProc("glClientWaitSync"); + api->Uniform1d = mg_glUniform1d_noimpl; + api->ProgramUniform1ui = loadProc("glProgramUniform1ui"); + api->ColorMask = loadProc("glColorMask"); + api->ClearDepth = mg_glClearDepth_noimpl; + api->GetInteger64v = loadProc("glGetInteger64v"); + api->VertexAttribP2ui = mg_glVertexAttribP2ui_noimpl; + api->VertexAttrib2dv = mg_glVertexAttrib2dv_noimpl; + api->VertexAttribI4ui = loadProc("glVertexAttribI4ui"); + api->BlendEquationi = loadProc("glBlendEquationi"); + api->DrawRangeElements = loadProc("glDrawRangeElements"); + api->InvalidateTexImage = mg_glInvalidateTexImage_noimpl; + api->SampleMaski = loadProc("glSampleMaski"); + api->GetProgramResourceLocationIndex = mg_glGetProgramResourceLocationIndex_noimpl; + api->VertexAttrib4dv = mg_glVertexAttrib4dv_noimpl; + api->BindFragDataLocation = mg_glBindFragDataLocation_noimpl; + api->GetFragDataIndex = mg_glGetFragDataIndex_noimpl; + api->GetTexLevelParameterfv = loadProc("glGetTexLevelParameterfv"); + api->VertexAttribP4uiv = mg_glVertexAttribP4uiv_noimpl; + api->MultiDrawArrays = mg_glMultiDrawArrays_noimpl; + api->IsTransformFeedback = loadProc("glIsTransformFeedback"); + api->GetUniformiv = loadProc("glGetUniformiv"); + api->BufferData = loadProc("glBufferData"); + api->GetCompressedTexImage = mg_glGetCompressedTexImage_noimpl; + api->VertexAttrib3sv = mg_glVertexAttrib3sv_noimpl; + api->IsQuery = loadProc("glIsQuery"); + api->ClearColor = loadProc("glClearColor"); + api->BlendFunc = loadProc("glBlendFunc"); + api->GetDoublei_v = mg_glGetDoublei_v_noimpl; + api->FramebufferTexture = loadProc("glFramebufferTexture"); + api->StencilMaskSeparate = loadProc("glStencilMaskSeparate"); + api->PrimitiveRestartIndex = mg_glPrimitiveRestartIndex_noimpl; + api->VertexAttribP1ui = mg_glVertexAttribP1ui_noimpl; + api->VertexAttribIFormat = loadProc("glVertexAttribIFormat"); + api->MemoryBarrier = loadProc("glMemoryBarrier"); + api->GetSubroutineUniformLocation = mg_glGetSubroutineUniformLocation_noimpl; + api->BindRenderbuffer = loadProc("glBindRenderbuffer"); + api->PushDebugGroup = loadProc("glPushDebugGroup"); + api->GenTextures = loadProc("glGenTextures"); + api->GetIntegerv = loadProc("glGetIntegerv"); + api->GetQueryObjectuiv = loadProc("glGetQueryObjectuiv"); + api->Uniform4fv = loadProc("glUniform4fv"); + api->Hint = loadProc("glHint"); + api->TexParameterf = loadProc("glTexParameterf"); + api->ProgramUniform2fv = loadProc("glProgramUniform2fv"); + api->DrawRangeElementsBaseVertex = loadProc("glDrawRangeElementsBaseVertex"); + api->Clear = loadProc("glClear"); + api->BindBufferBase = loadProc("glBindBufferBase"); + api->GetQueryiv = loadProc("glGetQueryiv"); + api->ProgramBinary = loadProc("glProgramBinary"); + api->ScissorIndexedv = mg_glScissorIndexedv_noimpl; + api->VertexAttrib1fv = loadProc("glVertexAttrib1fv"); + api->TexStorage2D = loadProc("glTexStorage2D"); + api->VertexAttrib4f = loadProc("glVertexAttrib4f"); + api->ProgramParameteri = loadProc("glProgramParameteri"); + api->Enable = loadProc("glEnable"); + api->GetBufferPointerv = loadProc("glGetBufferPointerv"); + api->LogicOp = mg_glLogicOp_noimpl; + api->DepthFunc = loadProc("glDepthFunc"); + api->VertexAttrib1dv = mg_glVertexAttrib1dv_noimpl; + api->Uniform2d = mg_glUniform2d_noimpl; + api->DetachShader = loadProc("glDetachShader"); + api->VertexBindingDivisor = loadProc("glVertexBindingDivisor"); + api->IsProgramPipeline = loadProc("glIsProgramPipeline"); + api->ProgramUniform1fv = loadProc("glProgramUniform1fv"); + api->CopyTexSubImage2D = loadProc("glCopyTexSubImage2D"); + api->VertexAttrib2fv = loadProc("glVertexAttrib2fv"); + api->GetDoublev = mg_glGetDoublev_noimpl; + api->ResumeTransformFeedback = loadProc("glResumeTransformFeedback"); + api->ProgramUniform4d = mg_glProgramUniform4d_noimpl; + api->ProgramUniform4uiv = loadProc("glProgramUniform4uiv"); + api->DispatchCompute = loadProc("glDispatchCompute"); + api->VertexAttrib4bv = mg_glVertexAttrib4bv_noimpl; + api->GetSamplerParameterfv = loadProc("glGetSamplerParameterfv"); + api->ProgramUniform3iv = loadProc("glProgramUniform3iv"); + api->VertexAttrib1s = mg_glVertexAttrib1s_noimpl; + api->VertexAttribI2i = mg_glVertexAttribI2i_noimpl; + api->SampleCoverage = loadProc("glSampleCoverage"); + api->BufferSubData = loadProc("glBufferSubData"); + api->VertexAttribI1ui = mg_glVertexAttribI1ui_noimpl; + api->EndConditionalRender = mg_glEndConditionalRender_noimpl; + api->GetPointerv = loadProc("glGetPointerv"); + api->GetnUniformiv = loadProc("glGetnUniformiv"); + api->BlendEquation = loadProc("glBlendEquation"); + api->VertexAttribI4iv = loadProc("glVertexAttribI4iv"); + api->GetnUniformfv = loadProc("glGetnUniformfv"); + api->VertexAttrib4Nsv = mg_glVertexAttrib4Nsv_noimpl; + api->Uniform2fv = loadProc("glUniform2fv"); + api->Uniform3f = loadProc("glUniform3f"); + api->GenerateMipmap = loadProc("glGenerateMipmap"); + api->GenRenderbuffers = loadProc("glGenRenderbuffers"); + api->DrawElementsBaseVertex = loadProc("glDrawElementsBaseVertex"); + api->BindVertexBuffers = mg_glBindVertexBuffers_noimpl; + api->Scissor = loadProc("glScissor"); + api->MapBufferRange = loadProc("glMapBufferRange"); + api->ProgramUniformMatrix4x2fv = loadProc("glProgramUniformMatrix4x2fv"); + api->GetTexParameterfv = loadProc("glGetTexParameterfv"); + api->Uniform2f = loadProc("glUniform2f"); + api->VertexAttribFormat = loadProc("glVertexAttribFormat"); + api->UniformMatrix2dv = mg_glUniformMatrix2dv_noimpl; + api->IsEnabled = loadProc("glIsEnabled"); + api->ClearBufferfi = loadProc("glClearBufferfi"); + api->GetRenderbufferParameteriv = loadProc("glGetRenderbufferParameteriv"); + api->FramebufferTextureLayer = loadProc("glFramebufferTextureLayer"); + api->PointParameterf = mg_glPointParameterf_noimpl; + api->GenVertexArrays = loadProc("glGenVertexArrays"); + api->GetAttachedShaders = loadProc("glGetAttachedShaders"); + api->FramebufferRenderbuffer = loadProc("glFramebufferRenderbuffer"); + api->DeleteTextures = loadProc("glDeleteTextures"); + api->BeginQuery = loadProc("glBeginQuery"); + api->Uniform4dv = mg_glUniform4dv_noimpl; + api->VertexAttribIPointer = loadProc("glVertexAttribIPointer"); + api->GetSamplerParameterIiv = loadProc("glGetSamplerParameterIiv"); + api->BeginQueryIndexed = mg_glBeginQueryIndexed_noimpl; + api->BeginTransformFeedback = loadProc("glBeginTransformFeedback"); + api->Uniform3i = loadProc("glUniform3i"); + api->GetActiveUniformName = mg_glGetActiveUniformName_noimpl; + api->GetProgramResourceLocation = loadProc("glGetProgramResourceLocation"); + api->ShaderSource = loadProc("glShaderSource"); + api->SamplerParameterIiv = loadProc("glSamplerParameterIiv"); + api->Finish = loadProc("glFinish"); + api->DrawArraysInstancedBaseInstance = mg_glDrawArraysInstancedBaseInstance_noimpl; + api->DeleteProgram = loadProc("glDeleteProgram"); + api->MultiDrawElementsBaseVertex = mg_glMultiDrawElementsBaseVertex_noimpl; + api->ReadBuffer = loadProc("glReadBuffer"); + api->GenBuffers = loadProc("glGenBuffers"); + api->ClearDepthf = loadProc("glClearDepthf"); + api->VertexAttribPointer = loadProc("glVertexAttribPointer"); + api->VertexAttribL4dv = mg_glVertexAttribL4dv_noimpl; + api->TexStorage2DMultisample = loadProc("glTexStorage2DMultisample"); + api->BindSamplers = mg_glBindSamplers_noimpl; + api->EnableVertexAttribArray = loadProc("glEnableVertexAttribArray"); + api->VertexAttrib4ubv = mg_glVertexAttrib4ubv_noimpl; + api->GetDebugMessageLog = loadProc("glGetDebugMessageLog"); + api->DisableVertexAttribArray = loadProc("glDisableVertexAttribArray"); + api->DrawElementsInstancedBaseInstance = mg_glDrawElementsInstancedBaseInstance_noimpl; + api->PolygonMode = mg_glPolygonMode_noimpl; + api->VertexAttribP1uiv = mg_glVertexAttribP1uiv_noimpl; + api->ProgramUniform1iv = loadProc("glProgramUniform1iv"); + api->VertexAttribI1i = mg_glVertexAttribI1i_noimpl; + api->GetTexLevelParameteriv = loadProc("glGetTexLevelParameteriv"); + api->IsSync = loadProc("glIsSync"); + api->TexStorage1D = mg_glTexStorage1D_noimpl; + api->GetVertexAttribIiv = loadProc("glGetVertexAttribIiv"); + api->IsEnabledi = loadProc("glIsEnabledi"); + api->MultiDrawElementsIndirect = mg_glMultiDrawElementsIndirect_noimpl; + api->GetBooleani_v = loadProc("glGetBooleani_v"); + api->GetInternalformativ = loadProc("glGetInternalformativ"); + api->VertexAttribI4ubv = mg_glVertexAttribI4ubv_noimpl; + api->VertexAttrib2s = mg_glVertexAttrib2s_noimpl; + api->GetBooleanv = loadProc("glGetBooleanv"); + api->VertexAttrib4iv = mg_glVertexAttrib4iv_noimpl; + api->GetObjectPtrLabel = loadProc("glGetObjectPtrLabel"); + api->UniformMatrix2x4dv = mg_glUniformMatrix2x4dv_noimpl; + api->ProgramUniform4ui = loadProc("glProgramUniform4ui"); + api->GetVertexAttribdv = mg_glGetVertexAttribdv_noimpl; + api->ViewportIndexedf = mg_glViewportIndexedf_noimpl; + api->DeleteSync = loadProc("glDeleteSync"); + api->CopyImageSubData = loadProc("glCopyImageSubData"); + api->PrimitiveBoundingBox = loadProc("glPrimitiveBoundingBox"); + api->ScissorIndexed = mg_glScissorIndexed_noimpl; + api->GenTransformFeedbacks = loadProc("glGenTransformFeedbacks"); + api->MemoryBarrierByRegion = loadProc("glMemoryBarrierByRegion"); + api->DeleteTransformFeedbacks = loadProc("glDeleteTransformFeedbacks"); + api->ProgramUniform4f = loadProc("glProgramUniform4f"); + api->BindBuffersBase = mg_glBindBuffersBase_noimpl; + api->GetTexParameterIuiv = loadProc("glGetTexParameterIuiv"); + api->IsShader = loadProc("glIsShader"); + api->ProgramUniform3i = loadProc("glProgramUniform3i"); + api->GetActiveAtomicCounterBufferiv = mg_glGetActiveAtomicCounterBufferiv_noimpl; + api->ProgramUniformMatrix3x4fv = loadProc("glProgramUniformMatrix3x4fv"); + api->BufferStorage = mg_glBufferStorage_noimpl; + api->GetUniformSubroutineuiv = mg_glGetUniformSubroutineuiv_noimpl; + api->RenderbufferStorageMultisample = loadProc("glRenderbufferStorageMultisample"); + api->GetMultisamplefv = loadProc("glGetMultisamplefv"); + api->VertexAttribDivisor = loadProc("glVertexAttribDivisor"); + api->StencilMask = loadProc("glStencilMask"); + api->BindSampler = loadProc("glBindSampler"); + api->UniformMatrix4dv = mg_glUniformMatrix4dv_noimpl; + api->BindImageTexture = loadProc("glBindImageTexture"); + api->DrawBuffers = loadProc("glDrawBuffers"); + api->VertexAttrib4Nub = mg_glVertexAttrib4Nub_noimpl; + api->GetTexImage = mg_glGetTexImage_noimpl; + api->VertexAttrib3dv = mg_glVertexAttrib3dv_noimpl; + api->BlitFramebuffer = loadProc("glBlitFramebuffer"); + api->VertexAttrib2d = mg_glVertexAttrib2d_noimpl; + api->Uniform1ui = loadProc("glUniform1ui"); + api->InvalidateBufferSubData = mg_glInvalidateBufferSubData_noimpl; + api->EndQuery = loadProc("glEndQuery"); + api->GetUniformuiv = loadProc("glGetUniformuiv"); + api->GetFramebufferAttachmentParameteriv = loadProc("glGetFramebufferAttachmentParameteriv"); + api->ProgramUniform2f = loadProc("glProgramUniform2f"); + api->UniformMatrix3x2fv = loadProc("glUniformMatrix3x2fv"); + api->BindVertexBuffer = loadProc("glBindVertexBuffer"); + api->VertexAttrib2sv = mg_glVertexAttrib2sv_noimpl; + api->Uniform1f = loadProc("glUniform1f"); + api->DebugMessageCallback = loadProc("glDebugMessageCallback"); + api->ReadPixels = loadProc("glReadPixels"); + api->CompressedTexSubImage1D = mg_glCompressedTexSubImage1D_noimpl; + api->DrawArraysIndirect = loadProc("glDrawArraysIndirect"); + api->BlendFuncSeparate = loadProc("glBlendFuncSeparate"); + api->CreateShader = loadProc("glCreateShader"); + api->GetTransformFeedbackVarying = loadProc("glGetTransformFeedbackVarying"); + api->AttachShader = loadProc("glAttachShader"); + api->UniformMatrix2x3dv = mg_glUniformMatrix2x3dv_noimpl; + api->ProgramUniform3uiv = loadProc("glProgramUniform3uiv"); + api->MultiDrawArraysIndirect = mg_glMultiDrawArraysIndirect_noimpl; + api->Uniform2iv = loadProc("glUniform2iv"); + api->BindBufferRange = loadProc("glBindBufferRange"); + api->TexParameteriv = loadProc("glTexParameteriv"); + api->VertexAttribL3d = mg_glVertexAttribL3d_noimpl; + api->TexImage3DMultisample = mg_glTexImage3DMultisample_noimpl; + api->ClearTexSubImage = mg_glClearTexSubImage_noimpl; + api->VertexAttrib4Nusv = mg_glVertexAttrib4Nusv_noimpl; + api->InvalidateSubFramebuffer = loadProc("glInvalidateSubFramebuffer"); + api->GetShaderInfoLog = loadProc("glGetShaderInfoLog"); + api->VertexAttribP4ui = mg_glVertexAttribP4ui_noimpl; + api->Viewport = loadProc("glViewport"); + api->BlendFunci = loadProc("glBlendFunci"); + api->PolygonOffset = loadProc("glPolygonOffset"); + api->ProgramUniform2ui = loadProc("glProgramUniform2ui"); + api->SamplerParameteri = loadProc("glSamplerParameteri"); + api->GetFramebufferParameteriv = loadProc("glGetFramebufferParameteriv"); + api->VertexAttribI2iv = mg_glVertexAttribI2iv_noimpl; + api->ObjectLabel = loadProc("glObjectLabel"); + api->CompressedTexImage1D = mg_glCompressedTexImage1D_noimpl; + api->InvalidateTexSubImage = mg_glInvalidateTexSubImage_noimpl; + api->BindBuffersRange = mg_glBindBuffersRange_noimpl; + api->CopyBufferSubData = loadProc("glCopyBufferSubData"); + api->VertexAttrib4Nbv = mg_glVertexAttrib4Nbv_noimpl; + api->ObjectPtrLabel = loadProc("glObjectPtrLabel"); + api->ProgramUniform3d = mg_glProgramUniform3d_noimpl; + api->GetProgramPipelineiv = loadProc("glGetProgramPipelineiv"); + api->TexStorage3DMultisample = loadProc("glTexStorage3DMultisample"); + api->VertexAttribL3dv = mg_glVertexAttribL3dv_noimpl; + api->DeleteFramebuffers = loadProc("glDeleteFramebuffers"); + api->CheckFramebufferStatus = loadProc("glCheckFramebufferStatus"); + api->VertexAttribL2dv = mg_glVertexAttribL2dv_noimpl; + api->ProgramUniform1dv = mg_glProgramUniform1dv_noimpl; + api->VertexAttrib2f = loadProc("glVertexAttrib2f"); + api->GetVertexAttribIuiv = loadProc("glGetVertexAttribIuiv"); + api->StencilOp = loadProc("glStencilOp"); + api->VertexAttrib3d = mg_glVertexAttrib3d_noimpl; + api->PointParameteri = mg_glPointParameteri_noimpl; + api->VertexAttribI1uiv = mg_glVertexAttribI1uiv_noimpl; + api->ClearBufferfv = loadProc("glClearBufferfv"); + api->BindFragDataLocationIndexed = mg_glBindFragDataLocationIndexed_noimpl; + api->ProgramUniform1d = mg_glProgramUniform1d_noimpl; + api->PointParameteriv = mg_glPointParameteriv_noimpl; + api->FlushMappedBufferRange = loadProc("glFlushMappedBufferRange"); + api->TextureView = mg_glTextureView_noimpl; + api->GetProgramPipelineInfoLog = loadProc("glGetProgramPipelineInfoLog"); + api->CopyTexImage2D = loadProc("glCopyTexImage2D"); + api->ProgramUniform3dv = mg_glProgramUniform3dv_noimpl; + api->QueryCounter = mg_glQueryCounter_noimpl; + api->GetUniformfv = loadProc("glGetUniformfv"); + api->ClearStencil = loadProc("glClearStencil"); + api->GetProgramiv = loadProc("glGetProgramiv"); + api->UniformSubroutinesuiv = mg_glUniformSubroutinesuiv_noimpl; + api->GetProgramStageiv = mg_glGetProgramStageiv_noimpl; + api->Uniform1iv = loadProc("glUniform1iv"); + api->GetVertexAttribPointerv = loadProc("glGetVertexAttribPointerv"); + api->TexSubImage1D = mg_glTexSubImage1D_noimpl; + api->StencilFuncSeparate = loadProc("glStencilFuncSeparate"); + api->GetSubroutineIndex = mg_glGetSubroutineIndex_noimpl; + api->DrawElementsInstanced = loadProc("glDrawElementsInstanced"); + api->BlendFuncSeparatei = loadProc("glBlendFuncSeparatei"); + api->ProgramUniformMatrix3x2dv = mg_glProgramUniformMatrix3x2dv_noimpl; + api->GetActiveUniformsiv = loadProc("glGetActiveUniformsiv"); + api->UniformMatrix3fv = loadProc("glUniformMatrix3fv"); + api->ProgramUniformMatrix3x4dv = mg_glProgramUniformMatrix3x4dv_noimpl; + api->GetSamplerParameterIuiv = loadProc("glGetSamplerParameterIuiv"); + api->VertexAttribI4i = loadProc("glVertexAttribI4i"); + api->BlendEquationSeparate = loadProc("glBlendEquationSeparate"); + api->UniformMatrix4x2fv = loadProc("glUniformMatrix4x2fv"); + api->TexParameterIiv = loadProc("glTexParameterIiv"); + api->DrawTransformFeedbackStream = mg_glDrawTransformFeedbackStream_noimpl; + api->VertexAttribI1iv = mg_glVertexAttribI1iv_noimpl; + api->GetUniformIndices = loadProc("glGetUniformIndices"); + api->GetShaderiv = loadProc("glGetShaderiv"); + api->GetActiveUniform = loadProc("glGetActiveUniform"); + api->Uniform3uiv = loadProc("glUniform3uiv"); + api->PatchParameteri = loadProc("glPatchParameteri"); + api->ProgramUniformMatrix2dv = mg_glProgramUniformMatrix2dv_noimpl; + api->WaitSync = loadProc("glWaitSync"); + api->ClearTexImage = mg_glClearTexImage_noimpl; + api->DepthRangeIndexed = mg_glDepthRangeIndexed_noimpl; + api->GetTexParameterIiv = loadProc("glGetTexParameterIiv"); + api->DepthRange = mg_glDepthRange_noimpl; + api->GetActiveAttrib = loadProc("glGetActiveAttrib"); + api->IsRenderbuffer = loadProc("glIsRenderbuffer"); + api->ClearBufferiv = loadProc("glClearBufferiv"); + api->ProgramUniform3fv = loadProc("glProgramUniform3fv"); + api->VertexAttribI3uiv = mg_glVertexAttribI3uiv_noimpl; + api->UseProgram = loadProc("glUseProgram"); + api->GetActiveSubroutineName = mg_glGetActiveSubroutineName_noimpl; + api->ProgramUniformMatrix3fv = loadProc("glProgramUniformMatrix3fv"); + api->ProgramUniformMatrix4x3dv = mg_glProgramUniformMatrix4x3dv_noimpl; + api->UniformMatrix4x3dv = mg_glUniformMatrix4x3dv_noimpl; + api->ProgramUniform4dv = mg_glProgramUniform4dv_noimpl; + api->GetBufferSubData = mg_glGetBufferSubData_noimpl; + api->VertexAttrib4uiv = mg_glVertexAttrib4uiv_noimpl; + api->VertexAttrib1f = loadProc("glVertexAttrib1f"); + api->VertexAttrib4usv = mg_glVertexAttrib4usv_noimpl; + api->DebugMessageInsert = loadProc("glDebugMessageInsert"); + api->EndTransformFeedback = loadProc("glEndTransformFeedback"); + api->TexImage2DMultisample = mg_glTexImage2DMultisample_noimpl; + api->BindTransformFeedback = loadProc("glBindTransformFeedback"); + api->Uniform3dv = mg_glUniform3dv_noimpl; + api->UniformMatrix3x2dv = mg_glUniformMatrix3x2dv_noimpl; + api->GetSamplerParameteriv = loadProc("glGetSamplerParameteriv"); + api->VertexAttribP3uiv = mg_glVertexAttribP3uiv_noimpl; + api->Uniform4d = mg_glUniform4d_noimpl; + api->ProgramUniformMatrix3dv = mg_glProgramUniformMatrix3dv_noimpl; + api->ProgramUniform3ui = loadProc("glProgramUniform3ui"); + api->DeleteVertexArrays = loadProc("glDeleteVertexArrays"); + api->TexParameteri = loadProc("glTexParameteri"); + api->DrawElementsInstancedBaseVertex = loadProc("glDrawElementsInstancedBaseVertex"); + api->GetQueryObjectui64v = mg_glGetQueryObjectui64v_noimpl; + api->VertexAttrib4Niv = mg_glVertexAttrib4Niv_noimpl; + api->SamplerParameterfv = loadProc("glSamplerParameterfv"); + api->VertexAttribI4bv = mg_glVertexAttribI4bv_noimpl; + api->ProgramUniform1i = loadProc("glProgramUniform1i"); + api->ProgramUniformMatrix4x2dv = mg_glProgramUniformMatrix4x2dv_noimpl; + api->GetSynciv = loadProc("glGetSynciv"); + api->VertexAttrib3f = loadProc("glVertexAttrib3f"); + api->GetQueryObjectiv = mg_glGetQueryObjectiv_noimpl; + api->GetProgramInfoLog = loadProc("glGetProgramInfoLog"); + api->GetActiveUniformBlockiv = loadProc("glGetActiveUniformBlockiv"); + api->GenQueries = loadProc("glGenQueries"); + api->ProgramUniformMatrix4x3fv = loadProc("glProgramUniformMatrix4x3fv"); + api->TexBuffer = loadProc("glTexBuffer"); + api->ShaderStorageBlockBinding = mg_glShaderStorageBlockBinding_noimpl; + api->Disable = loadProc("glDisable"); + api->VertexAttribI3ui = mg_glVertexAttribI3ui_noimpl; + api->IsSampler = loadProc("glIsSampler"); + api->ActiveShaderProgram = loadProc("glActiveShaderProgram"); + api->BindVertexArray = loadProc("glBindVertexArray"); + api->UniformMatrix2x3fv = loadProc("glUniformMatrix2x3fv"); + api->DrawArraysInstanced = loadProc("glDrawArraysInstanced"); + api->VertexAttribI2uiv = mg_glVertexAttribI2uiv_noimpl; + api->GetQueryObjecti64v = mg_glGetQueryObjecti64v_noimpl; + api->GetStringi = loadProc("glGetStringi"); + api->BindProgramPipeline = loadProc("glBindProgramPipeline"); + api->BindFramebuffer = loadProc("glBindFramebuffer"); + api->VertexAttrib1d = mg_glVertexAttrib1d_noimpl; + api->RenderbufferStorage = loadProc("glRenderbufferStorage"); + api->ReleaseShaderCompiler = loadProc("glReleaseShaderCompiler"); + api->Uniform2i = loadProc("glUniform2i"); + api->DrawBuffer = mg_glDrawBuffer_noimpl; + api->DeleteRenderbuffers = loadProc("glDeleteRenderbuffers"); + api->DeleteBuffers = loadProc("glDeleteBuffers"); + api->GenFramebuffers = loadProc("glGenFramebuffers"); + api->ProgramUniformMatrix4dv = mg_glProgramUniformMatrix4dv_noimpl; + api->ProgramUniform3f = loadProc("glProgramUniform3f"); + api->ProgramUniform2iv = loadProc("glProgramUniform2iv"); + api->BlendBarrier = loadProc("glBlendBarrier"); + api->VertexAttribL2d = mg_glVertexAttribL2d_noimpl; + api->CompressedTexSubImage2D = loadProc("glCompressedTexSubImage2D"); + api->UniformMatrix2fv = loadProc("glUniformMatrix2fv"); + api->SamplerParameterf = loadProc("glSamplerParameterf"); + api->UniformMatrix4fv = loadProc("glUniformMatrix4fv"); + api->VertexAttribI2ui = mg_glVertexAttribI2ui_noimpl; + api->BindTextures = mg_glBindTextures_noimpl; + api->Uniform3d = mg_glUniform3d_noimpl; + api->ViewportIndexedfv = mg_glViewportIndexedfv_noimpl; + api->VertexAttribI4sv = mg_glVertexAttribI4sv_noimpl; + api->LineWidth = loadProc("glLineWidth"); + api->GetVertexAttribfv = loadProc("glGetVertexAttribfv"); + api->VertexAttribI3iv = mg_glVertexAttribI3iv_noimpl; + api->Uniform1dv = mg_glUniform1dv_noimpl; + api->CullFace = loadProc("glCullFace"); + api->CreateProgram = loadProc("glCreateProgram"); + api->Uniform4i = loadProc("glUniform4i"); + api->UniformMatrix4x3fv = loadProc("glUniformMatrix4x3fv"); + api->GetAttribLocation = loadProc("glGetAttribLocation"); + api->GetShaderPrecisionFormat = loadProc("glGetShaderPrecisionFormat"); + api->Uniform4iv = loadProc("glUniform4iv"); + api->CompressedTexSubImage3D = loadProc("glCompressedTexSubImage3D"); + api->BindImageTextures = mg_glBindImageTextures_noimpl; + api->GetBufferParameteri64v = loadProc("glGetBufferParameteri64v"); + api->FrontFace = loadProc("glFrontFace"); + api->PopDebugGroup = loadProc("glPopDebugGroup"); + api->VertexAttrib1sv = mg_glVertexAttrib1sv_noimpl; + api->InvalidateBufferData = mg_glInvalidateBufferData_noimpl; + api->IsVertexArray = loadProc("glIsVertexArray"); + api->ScissorArrayv = mg_glScissorArrayv_noimpl; + api->ValidateProgram = loadProc("glValidateProgram"); + api->Uniform2uiv = loadProc("glUniform2uiv"); + api->TexSubImage2D = loadProc("glTexSubImage2D"); + api->DebugMessageControl = loadProc("glDebugMessageControl"); + api->FramebufferParameteri = loadProc("glFramebufferParameteri"); + api->GetUniformLocation = loadProc("glGetUniformLocation"); + api->TexStorage3D = loadProc("glTexStorage3D"); + api->PixelStoref = mg_glPixelStoref_noimpl; + api->DepthRangef = loadProc("glDepthRangef"); + api->VertexAttribI3i = mg_glVertexAttribI3i_noimpl; + api->Uniform1uiv = loadProc("glUniform1uiv"); + api->Disablei = loadProc("glDisablei"); + api->GetInternalformati64v = mg_glGetInternalformati64v_noimpl; + api->ProgramUniformMatrix2x3dv = mg_glProgramUniformMatrix2x3dv_noimpl; + api->GetProgramResourceIndex = loadProc("glGetProgramResourceIndex"); + api->BlendColor = loadProc("glBlendColor"); + api->GenSamplers = loadProc("glGenSamplers"); + api->ColorMaski = loadProc("glColorMaski"); + api->GetGraphicsResetStatus = loadProc("glGetGraphicsResetStatus"); + api->VertexAttribI4uiv = loadProc("glVertexAttribI4uiv"); + api->CreateShaderProgramv = loadProc("glCreateShaderProgramv"); + api->DeleteSamplers = loadProc("glDeleteSamplers"); + api->VertexAttrib3s = mg_glVertexAttrib3s_noimpl; + api->DrawTransformFeedback = mg_glDrawTransformFeedback_noimpl; + api->VertexAttribL1d = mg_glVertexAttribL1d_noimpl; + api->DrawElementsInstancedBaseVertexBaseInstance = mg_glDrawElementsInstancedBaseVertexBaseInstance_noimpl; + api->ClearBufferSubData = mg_glClearBufferSubData_noimpl; + api->VertexAttribLFormat = mg_glVertexAttribLFormat_noimpl; + api->Uniform2dv = mg_glUniform2dv_noimpl; + api->CopyTexSubImage3D = loadProc("glCopyTexSubImage3D"); + api->CopyTexImage1D = mg_glCopyTexImage1D_noimpl; + api->FramebufferTexture3D = mg_glFramebufferTexture3D_noimpl; + api->VertexAttribL4d = mg_glVertexAttribL4d_noimpl; + api->UnmapBuffer = loadProc("glUnmapBuffer"); + api->GetQueryIndexediv = mg_glGetQueryIndexediv_noimpl; + api->FenceSync = loadProc("glFenceSync"); + api->DispatchComputeIndirect = loadProc("glDispatchComputeIndirect"); + api->SamplerParameterIuiv = loadProc("glSamplerParameterIuiv"); + api->GetFragDataLocation = loadProc("glGetFragDataLocation"); + api->GetUniformdv = mg_glGetUniformdv_noimpl; + api->TexImage3D = loadProc("glTexImage3D"); + api->ValidateProgramPipeline = loadProc("glValidateProgramPipeline"); + api->LinkProgram = loadProc("glLinkProgram"); + api->DeleteQueries = loadProc("glDeleteQueries"); + api->FramebufferTexture1D = mg_glFramebufferTexture1D_noimpl; + api->GetActiveSubroutineUniformName = mg_glGetActiveSubroutineUniformName_noimpl; + api->ProgramUniformMatrix3x2fv = loadProc("glProgramUniformMatrix3x2fv"); + api->GetTexParameteriv = loadProc("glGetTexParameteriv"); + api->ProvokingVertex = mg_glProvokingVertex_noimpl; + api->BindAttribLocation = loadProc("glBindAttribLocation"); + api->VertexAttrib3fv = loadProc("glVertexAttrib3fv"); + api->GetActiveUniformBlockName = loadProc("glGetActiveUniformBlockName"); + api->DrawArrays = loadProc("glDrawArrays"); + api->GetnUniformuiv = loadProc("glGetnUniformuiv"); + api->ProgramUniform1uiv = loadProc("glProgramUniform1uiv"); + api->DrawElementsIndirect = loadProc("glDrawElementsIndirect"); + api->VertexAttribI4usv = mg_glVertexAttribI4usv_noimpl; + api->BlendEquationSeparatei = loadProc("glBlendEquationSeparatei"); + api->DrawElements = loadProc("glDrawElements"); + api->GetShaderSource = loadProc("glGetShaderSource"); + api->TransformFeedbackVaryings = loadProc("glTransformFeedbackVaryings"); + api->GetError = loadProc("glGetError"); + api->IsBuffer = loadProc("glIsBuffer"); + api->ClearBufferuiv = loadProc("glClearBufferuiv"); + api->GetVertexAttribiv = loadProc("glGetVertexAttribiv"); + api->GetProgramResourceName = loadProc("glGetProgramResourceName"); + api->Uniform2ui = loadProc("glUniform2ui"); + api->StencilFunc = loadProc("glStencilFunc"); + api->Enablei = loadProc("glEnablei"); + api->SamplerParameteriv = loadProc("glSamplerParameteriv"); + api->GetInteger64i_v = loadProc("glGetInteger64i_v"); + api->ProgramUniform4i = loadProc("glProgramUniform4i"); + api->Uniform4ui = loadProc("glUniform4ui"); + api->UniformMatrix2x4fv = loadProc("glUniformMatrix2x4fv"); + api->ReadnPixels = loadProc("glReadnPixels"); + api->DrawTransformFeedbackInstanced = mg_glDrawTransformFeedbackInstanced_noimpl; + api->PointSize = mg_glPointSize_noimpl; + api->ProgramUniformMatrix4fv = loadProc("glProgramUniformMatrix4fv"); + api->ViewportArrayv = mg_glViewportArrayv_noimpl; + api->StencilOpSeparate = loadProc("glStencilOpSeparate"); + api->Uniform3ui = loadProc("glUniform3ui"); + api->Uniform4uiv = loadProc("glUniform4uiv"); + api->Uniform3iv = loadProc("glUniform3iv"); + api->Uniform4f = loadProc("glUniform4f"); + api->FramebufferTexture2D = loadProc("glFramebufferTexture2D"); + api->GetIntegeri_v = loadProc("glGetIntegeri_v"); + api->MultiDrawElements = mg_glMultiDrawElements_noimpl; + api->UniformMatrix4x2dv = mg_glUniformMatrix4x2dv_noimpl; + api->ProgramUniformMatrix2x3fv = loadProc("glProgramUniformMatrix2x3fv"); + api->CopyTexSubImage1D = mg_glCopyTexSubImage1D_noimpl; + api->TexSubImage3D = loadProc("glTexSubImage3D"); + api->GetActiveSubroutineUniformiv = mg_glGetActiveSubroutineUniformiv_noimpl; + api->GenProgramPipelines = loadProc("glGenProgramPipelines"); + api->ProgramUniform4iv = loadProc("glProgramUniform4iv"); + api->UniformMatrix3x4fv = loadProc("glUniformMatrix3x4fv"); + api->UniformBlockBinding = loadProc("glUniformBlockBinding"); + api->DepthRangeArrayv = mg_glDepthRangeArrayv_noimpl; + api->TexParameterfv = loadProc("glTexParameterfv"); + api->MapBuffer = mg_glMapBuffer_noimpl; + api->DeleteProgramPipelines = loadProc("glDeleteProgramPipelines"); + api->MinSampleShading = loadProc("glMinSampleShading"); + api->PauseTransformFeedback = loadProc("glPauseTransformFeedback"); + api->EndQueryIndexed = mg_glEndQueryIndexed_noimpl; + api->GetProgramBinary = loadProc("glGetProgramBinary"); + api->ProgramUniform2i = loadProc("glProgramUniform2i"); + api->DepthMask = loadProc("glDepthMask"); + api->ActiveTexture = loadProc("glActiveTexture"); + api->UseProgramStages = loadProc("glUseProgramStages"); + api->PatchParameterfv = mg_glPatchParameterfv_noimpl; + api->ShaderBinary = loadProc("glShaderBinary"); + api->GetFloatv = loadProc("glGetFloatv"); + api->ProgramUniform1f = loadProc("glProgramUniform1f"); + api->TexImage1D = mg_glTexImage1D_noimpl; + api->ProgramUniform2uiv = loadProc("glProgramUniform2uiv"); + api->ClearBufferData = mg_glClearBufferData_noimpl; + api->UniformMatrix3dv = mg_glUniformMatrix3dv_noimpl; + api->CompressedTexImage2D = loadProc("glCompressedTexImage2D"); + api->VertexAttrib4fv = loadProc("glVertexAttrib4fv"); + api->GetProgramResourceiv = loadProc("glGetProgramResourceiv"); + api->GetString = loadProc("glGetString"); + api->ProgramUniformMatrix2fv = loadProc("glProgramUniformMatrix2fv"); + api->GetVertexAttribLdv = mg_glGetVertexAttribLdv_noimpl; + api->VertexAttrib4Nubv = mg_glVertexAttrib4Nubv_noimpl; + api->TexBufferRange = loadProc("glTexBufferRange"); + api->UniformMatrix3x4dv = mg_glUniformMatrix3x4dv_noimpl; + api->GetProgramInterfaceiv = loadProc("glGetProgramInterfaceiv"); + api->TexParameterIuiv = loadProc("glTexParameterIuiv"); + api->DeleteShader = loadProc("glDeleteShader"); + api->GetFloati_v = mg_glGetFloati_v_noimpl; + api->DrawTransformFeedbackStreamInstanced = mg_glDrawTransformFeedbackStreamInstanced_noimpl; + api->VertexAttrib4s = mg_glVertexAttrib4s_noimpl; +} + +void mg_gl_select_api(mg_gl_api* api){ __mgGLAPI = api; } +void mg_gl_deselect_api(){ __mgGLAPI = &__mgGLNoAPI; } +mg_gl_api* mg_gl_get_api(void) { return(__mgGLAPI); } + diff --git a/src/gl_loader.h b/src/gl_loader.h index 882c902..07300d5 100644 --- a/src/gl_loader.h +++ b/src/gl_loader.h @@ -1,23 +1,23 @@ -/******************************************************** -* -* @file: gl_loader.h -* @note: auto-generated by glapi.py from gl.xml -* @date: 12/072023 -* -*********************************************************/ -#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_gl44(mg_gl_api* api, mg_gl_load_proc loadProc); -void mg_gl_load_gles30(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_select_api(mg_gl_api* api); - -#endif // __GL_LOADER_H__ +/******************************************************** +* +* @file: gl_loader.h +* @note: auto-generated by glapi.py from gl.xml +* @date: 07/082023 +* +*********************************************************/ +#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_gl44(mg_gl_api* api, mg_gl_load_proc loadProc); +void mg_gl_load_gles30(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_select_api(mg_gl_api* api); + +#endif // __GL_LOADER_H__ diff --git a/src/graphics_surface.c b/src/graphics_surface.c index e3d3023..240db5b 100644 --- a/src/graphics_surface.c +++ b/src/graphics_surface.c @@ -207,6 +207,11 @@ void mg_surface_destroy(mg_surface handle) mg_surface_data* surface = mg_surface_data_from_handle(handle); if(surface) { + if(__mgSelectedSurface.h == handle.h) + { + mg_surface_deselect(); + } + if(surface->backend && surface->backend->destroy) { surface->backend->destroy(surface->backend); @@ -350,7 +355,12 @@ void mg_surface_render_commands(mg_surface surface, mg_path_elt* elements) { mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->backend) + + if(surface.h != __mgSelectedSurface.h) + { + log_error("surface is not selected. Make sure to call mg_surface_prepare() before drawing onto a surface.\n"); + } + else if(surfaceData && surfaceData->backend) { surfaceData->backend->render(surfaceData->backend, clearColor, @@ -380,7 +390,12 @@ mg_image mg_image_create(mg_surface surface, u32 width, u32 height) { mg_image image = mg_image_nil(); mg_surface_data* surfaceData = mg_surface_data_from_handle(surface); - if(surfaceData && surfaceData->backend) + + if(surface.h != __mgSelectedSurface.h) + { + log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); + } + else if(surfaceData && surfaceData->backend) { DEBUG_ASSERT(surfaceData->api == MG_CANVAS); @@ -397,13 +412,21 @@ mg_image mg_image_create(mg_surface surface, u32 width, u32 height) void mg_image_destroy(mg_image image) { mg_image_data* imageData = mg_image_data_from_handle(image); + if(imageData) { - mg_surface_data* surface = mg_surface_data_from_handle(imageData->surface); - if(surface && surface->backend) + if(imageData->surface.h != __mgSelectedSurface.h) { - surface->backend->imageDestroy(surface->backend, imageData); - mg_handle_recycle(image.h); + log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); + } + else + { + mg_surface_data* surface = mg_surface_data_from_handle(imageData->surface); + if(surface && surface->backend) + { + surface->backend->imageDestroy(surface->backend, imageData); + mg_handle_recycle(image.h); + } } } } @@ -411,13 +434,21 @@ void mg_image_destroy(mg_image image) void mg_image_upload_region_rgba8(mg_image image, mp_rect region, u8* pixels) { mg_image_data* imageData = mg_image_data_from_handle(image); + if(imageData) { - mg_surface_data* surfaceData = mg_surface_data_from_handle(imageData->surface); - if(surfaceData) + if(imageData->surface.h != __mgSelectedSurface.h) { - DEBUG_ASSERT(surfaceData->backend); - surfaceData->backend->imageUploadRegion(surfaceData->backend, imageData, region, pixels); + log_error("surface is not selected. Make sure to call mg_surface_prepare() before modifying graphics resources.\n"); + } + else + { + mg_surface_data* surfaceData = mg_surface_data_from_handle(imageData->surface); + if(surfaceData) + { + DEBUG_ASSERT(surfaceData->backend); + surfaceData->backend->imageUploadRegion(surfaceData->backend, imageData, region, pixels); + } } } } diff --git a/src/milepost.c b/src/milepost.c index 6f224ae..3e7a381 100644 --- a/src/milepost.c +++ b/src/milepost.c @@ -27,6 +27,7 @@ #include"platform/osx_clock.c" #include"platform/posix_io.c" #include"platform/posix_thread.c" + /* #include"platform/unix_rng.c" #include"platform/posix_socket.c" diff --git a/src/mp_app.h b/src/mp_app.h index ffe79fb..49b876c 100644 --- a/src/mp_app.h +++ b/src/mp_app.h @@ -330,6 +330,14 @@ MP_API void mp_window_center(mp_window window); MP_API mp_rect mp_window_content_rect_for_frame_rect(mp_rect frameRect, mp_window_style style); MP_API mp_rect mp_window_frame_rect_for_content_rect(mp_rect contentRect, mp_window_style style); +//--------------------------------------------------------------- +// Dispatching stuff to the main thread +//--------------------------------------------------------------- + +typedef i32 (*mp_dispatch_proc)(void* user); + +MP_API i32 mp_dispatch_on_main_thread_sync(mp_window main_window, mp_dispatch_proc proc, void* user); + //-------------------------------------------------------------------- // Clipboard //-------------------------------------------------------------------- diff --git a/src/osx_app.m b/src/osx_app.m index 093f0d6..1653d6a 100644 --- a/src/osx_app.m +++ b/src/osx_app.m @@ -1629,7 +1629,6 @@ void mg_surface_cleanup(mg_surface_data* surface) void mg_surface_init_for_window(mg_surface_data* surface, mp_window_data* window) {@autoreleasepool{ - surface->nativeLayer = mg_osx_surface_native_layer; surface->contentsScaling = mg_osx_surface_contents_scaling; surface->getSize = mg_osx_surface_get_size; @@ -1901,6 +1900,25 @@ void mp_pump_events(f64 timeout) } } +i32 mp_dispatch_on_main_thread_sync(mp_window main_window, mp_dispatch_proc proc, void* user) +{ + __block i32 result = 0; + dispatch_block_t block = ^{ + result = proc(user); + }; + + if([NSThread isMainThread]) + { + block(); + } + else + { + dispatch_sync(dispatch_get_main_queue(), block); + } + + return(result); +} + //-------------------------------------------------------------------- // system dialogs windows //-------------------------------------------------------------------- diff --git a/src/platform/orca_malloc.c b/src/platform/orca_malloc.c index 35d7ad9..5079b5d 100644 --- a/src/platform/orca_malloc.c +++ b/src/platform/orca_malloc.c @@ -8,7 +8,7 @@ extern void* orca_mem_grow(u64 size); #define MORECORE orca_mem_grow - +#define MORECORE_CONTIGUOUS 0 /* This is a version (aka dlmalloc) of malloc/free/realloc written by Doug Lea and released to the public domain. Use, modify, and diff --git a/src/platform/win32_thread.c b/src/platform/win32_thread.c index 614298c..adbb89a 100644 --- a/src/platform/win32_thread.c +++ b/src/platform/win32_thread.c @@ -3,13 +3,12 @@ * @file: win32_thread.c * @author: Reuben Dunnington * @date: 7/30/2023 -* @revision: * *****************************************************************/ - #include #include #include //INFINITY +#include // PostMessage #include"platform_thread.h" @@ -45,7 +44,7 @@ mp_thread* mp_thread_create_with_name(mp_thread_start_function start, void* user thread->name[0] = '\0'; } - SECURITY_ATTRIBUTES childProcessSecurity = { + SECURITY_ATTRIBUTES childProcessSecurity = { .nLength = sizeof(SECURITY_ATTRIBUTES), .bInheritHandle = false, }; diff --git a/src/util/macro_helpers.h b/src/util/macro_helpers.h index 006f602..1184f87 100644 --- a/src/util/macro_helpers.h +++ b/src/util/macro_helpers.h @@ -120,4 +120,24 @@ static inline u64 next_pow2_u64(u64 x) #define defer_loop(begin, end) begin; for(int __i__=0; __i__<1; __i__++, end) + +#define ORCA_COMMA , +#define ORCA_PASS(A, ...) A(__VA_ARGS__) +#define ORCA_EXPAND(...) __VA_ARGS__ +#define ORCA_EXPAND_NIL(...) +#define ORCA_PASTE(a , b) a##b +#define ORCA_ARG1_UTIL(a, ...) a +#define ORCA_ARG1(...) ORCA_ARG1_UTIL(__VA_ARGS__) +#define ORCA_VA_COMMA_TAIL(a, ...) , ##__VA_ARGS__ + +//NOTE: this expands to opt if __VA_ARGS__ is empty, and to , va1, va2, ... opt otherwise +#define ORCA_VA_NOPT_UTIL(opt, ...) ,##__VA_ARGS__ opt + +//NOTE: this expands to opt if __VA_ARGS__ is empty, and to nothing otherwise +#define ORCA_VA_NOPT(opt, ...) ORCA_PASS(ORCA_ARG1, ORCA_VA_NOPT_UTIL(opt, ##__VA_ARGS__)) + +//NOTE: this expands to opt if __VA_ARGS__ is non empty, and to nothing otherwise +#define ORCA_VA_OPT(opt, ...) ORCA_PASS(ORCA_PASTE, ORCA_EXPAND , ORCA_VA_NOPT(_NIL, ##__VA_ARGS__))(opt) + + #endif //__MACRO_HELPERS_H_ diff --git a/src/wgl_surface.c b/src/wgl_surface.c index 375b4dd..40cc5e5 100644 --- a/src/wgl_surface.c +++ b/src/wgl_surface.c @@ -156,6 +156,7 @@ void mg_wgl_surface_present(mg_surface_data* interface) void mg_wgl_surface_deselect(mg_surface_data* interface) { wglMakeCurrent(NULL, NULL); + mg_gl_deselect_api(); } void mg_wgl_surface_swap_interval(mg_surface_data* interface, int swap) diff --git a/src/win32_app.c b/src/win32_app.c index 89b9f97..7cfdc4d 100644 --- a/src/win32_app.c +++ b/src/win32_app.c @@ -9,6 +9,7 @@ #include #include"mp_app.c" +#include"platform_thread.h" void mp_init_keys() { @@ -504,6 +505,13 @@ LRESULT WinProc(HWND windowHandle, UINT message, WPARAM wParam, LPARAM lParam) //TODO } break; + case MP_WM_USER_DISPATCH_PROC: + { + mp_dispatch_proc proc = (mp_dispatch_proc)wParam; + void* user = (void*)lParam; + result = proc(user); + } break; + default: { result = DefWindowProc(windowHandle, message, wParam, lParam); @@ -552,6 +560,15 @@ void mp_pump_events(f64 timeout) } } +i32 mp_dispatch_on_main_thread_sync(mp_window main_window, mp_dispatch_proc proc, void* user) +{ + mp_window_data* window_data = mp_window_ptr_from_handle(main_window); + DEBUG_ASSERT(window_data != NULL); + + LRESULT result = SendMessage(window_data->win32.hWnd, MP_WM_USER_DISPATCH_PROC, (WPARAM)proc, (LPARAM)user); + return result; +} + //-------------------------------------------------------------------- // window management //-------------------------------------------------------------------- diff --git a/src/win32_app.h b/src/win32_app.h index 2eb0e44..6522424 100644 --- a/src/win32_app.h +++ b/src/win32_app.h @@ -45,4 +45,9 @@ typedef struct win32_app_data #define MP_PLATFORM_APP_DATA win32_app_data win32; +enum MP_WM_USER +{ + MP_WM_USER_DISPATCH_PROC = 0x0400, // WM_USER messages are defined from 0x400 to 0x7FFF +}; + #endif __WIN32_APP_H_