| /** |
| * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0 |
| */ |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| #include <glad/gles2.h> |
| |
| #ifndef GLAD_IMPL_UTIL_C_ |
| #define GLAD_IMPL_UTIL_C_ |
| |
| #ifdef _MSC_VER |
| #define GLAD_IMPL_UTIL_SSCANF sscanf_s |
| #else |
| #define GLAD_IMPL_UTIL_SSCANF sscanf |
| #endif |
| |
| #endif /* GLAD_IMPL_UTIL_C_ */ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| |
| |
| int GLAD_GL_ES_VERSION_2_0 = 0; |
| int GLAD_GL_ES_VERSION_3_0 = 0; |
| int GLAD_GL_ES_VERSION_3_1 = 0; |
| int GLAD_GL_EXT_base_instance = 0; |
| int GLAD_GL_EXT_clip_cull_distance = 0; |
| int GLAD_GL_EXT_multisampled_render_to_texture = 0; |
| int GLAD_GL_KHR_blend_equation_advanced = 0; |
| int GLAD_GL_KHR_blend_equation_advanced_coherent = 0; |
| int GLAD_GL_KHR_debug = 0; |
| int GLAD_GL_KHR_parallel_shader_compile = 0; |
| |
| |
| |
| PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL; |
| PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL; |
| PFNGLATTACHSHADERPROC glad_glAttachShader = NULL; |
| PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL; |
| PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL; |
| PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL; |
| PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL; |
| PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL; |
| PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL; |
| PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL; |
| PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture = NULL; |
| PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL; |
| PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL; |
| PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL; |
| PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL; |
| PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL; |
| PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL; |
| PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer = NULL; |
| PFNGLBLENDBARRIERKHRPROC glad_glBlendBarrierKHR = NULL; |
| PFNGLBLENDCOLORPROC glad_glBlendColor = NULL; |
| PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL; |
| PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL; |
| PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL; |
| PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL; |
| PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL; |
| PFNGLBUFFERDATAPROC glad_glBufferData = NULL; |
| PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL; |
| PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL; |
| PFNGLCLEARPROC glad_glClear = NULL; |
| PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL; |
| PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL; |
| PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL; |
| PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL; |
| PFNGLCLEARCOLORPROC glad_glClearColor = NULL; |
| PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL; |
| PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL; |
| PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL; |
| PFNGLCOLORMASKPROC glad_glColorMask = NULL; |
| PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL; |
| PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL; |
| PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL; |
| PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL; |
| PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL; |
| PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL; |
| PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL; |
| PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL; |
| PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL; |
| PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL; |
| PFNGLCREATESHADERPROC glad_glCreateShader = NULL; |
| PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL; |
| PFNGLCULLFACEPROC glad_glCullFace = NULL; |
| PFNGLDEBUGMESSAGECALLBACKKHRPROC glad_glDebugMessageCallbackKHR = NULL; |
| PFNGLDEBUGMESSAGECONTROLKHRPROC glad_glDebugMessageControlKHR = NULL; |
| PFNGLDEBUGMESSAGEINSERTKHRPROC glad_glDebugMessageInsertKHR = NULL; |
| PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL; |
| PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL; |
| PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL; |
| PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL; |
| PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL; |
| PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL; |
| PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL; |
| PFNGLDELETESHADERPROC glad_glDeleteShader = NULL; |
| PFNGLDELETESYNCPROC glad_glDeleteSync = NULL; |
| PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL; |
| PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks = NULL; |
| PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL; |
| PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL; |
| PFNGLDEPTHMASKPROC glad_glDepthMask = NULL; |
| PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL; |
| PFNGLDETACHSHADERPROC glad_glDetachShader = NULL; |
| PFNGLDISABLEPROC glad_glDisable = NULL; |
| PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL; |
| PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute = NULL; |
| PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect = NULL; |
| PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL; |
| PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect = NULL; |
| PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL; |
| PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC glad_glDrawArraysInstancedBaseInstanceEXT = NULL; |
| PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL; |
| PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL; |
| PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect = NULL; |
| PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL; |
| PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC glad_glDrawElementsInstancedBaseInstanceEXT = NULL; |
| PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC glad_glDrawElementsInstancedBaseVertexBaseInstanceEXT = NULL; |
| PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL; |
| PFNGLENABLEPROC glad_glEnable = NULL; |
| PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL; |
| PFNGLENDQUERYPROC glad_glEndQuery = NULL; |
| PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL; |
| PFNGLFENCESYNCPROC glad_glFenceSync = NULL; |
| PFNGLFINISHPROC glad_glFinish = NULL; |
| PFNGLFLUSHPROC glad_glFlush = NULL; |
| PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL; |
| PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri = NULL; |
| PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL; |
| PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL; |
| PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC glad_glFramebufferTexture2DMultisampleEXT = NULL; |
| PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL; |
| PFNGLFRONTFACEPROC glad_glFrontFace = NULL; |
| PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL; |
| PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL; |
| PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL; |
| PFNGLGENQUERIESPROC glad_glGenQueries = NULL; |
| PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL; |
| PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL; |
| PFNGLGENTEXTURESPROC glad_glGenTextures = NULL; |
| PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL; |
| PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL; |
| PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL; |
| PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL; |
| PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL; |
| PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL; |
| PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL; |
| PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL; |
| PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL; |
| PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL; |
| PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL; |
| PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL; |
| PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL; |
| PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL; |
| PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL; |
| PFNGLGETDEBUGMESSAGELOGKHRPROC glad_glGetDebugMessageLogKHR = NULL; |
| PFNGLGETERRORPROC glad_glGetError = NULL; |
| PFNGLGETFLOATVPROC glad_glGetFloatv = NULL; |
| PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL; |
| PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL; |
| PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL; |
| PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL; |
| PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL; |
| PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL; |
| PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL; |
| PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL; |
| PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL; |
| PFNGLGETOBJECTLABELKHRPROC glad_glGetObjectLabelKHR = NULL; |
| PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR = NULL; |
| PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR = NULL; |
| PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL; |
| PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL; |
| PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv = NULL; |
| PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog = NULL; |
| PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv = NULL; |
| PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex = NULL; |
| PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation = NULL; |
| PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName = NULL; |
| PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv = NULL; |
| PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL; |
| PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL; |
| PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL; |
| PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL; |
| PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL; |
| PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL; |
| PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL; |
| PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL; |
| PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL; |
| PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL; |
| PFNGLGETSTRINGPROC glad_glGetString = NULL; |
| PFNGLGETSTRINGIPROC glad_glGetStringi = NULL; |
| PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL; |
| PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL; |
| PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL; |
| PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL; |
| PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL; |
| PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL; |
| PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL; |
| PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL; |
| PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL; |
| PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL; |
| PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL; |
| PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL; |
| PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL; |
| PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL; |
| PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL; |
| PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL; |
| PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL; |
| PFNGLHINTPROC glad_glHint = NULL; |
| PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer = NULL; |
| PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer = NULL; |
| PFNGLISBUFFERPROC glad_glIsBuffer = NULL; |
| PFNGLISENABLEDPROC glad_glIsEnabled = NULL; |
| PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL; |
| PFNGLISPROGRAMPROC glad_glIsProgram = NULL; |
| PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL; |
| PFNGLISQUERYPROC glad_glIsQuery = NULL; |
| PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL; |
| PFNGLISSAMPLERPROC glad_glIsSampler = NULL; |
| PFNGLISSHADERPROC glad_glIsShader = NULL; |
| PFNGLISSYNCPROC glad_glIsSync = NULL; |
| PFNGLISTEXTUREPROC glad_glIsTexture = NULL; |
| PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL; |
| PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL; |
| PFNGLLINEWIDTHPROC glad_glLineWidth = NULL; |
| PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL; |
| PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL; |
| PFNGLMAXSHADERCOMPILERTHREADSKHRPROC glad_glMaxShaderCompilerThreadsKHR = NULL; |
| PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier = NULL; |
| PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion = NULL; |
| PFNGLOBJECTLABELKHRPROC glad_glObjectLabelKHR = NULL; |
| PFNGLOBJECTPTRLABELKHRPROC glad_glObjectPtrLabelKHR = NULL; |
| PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL; |
| PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL; |
| PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL; |
| PFNGLPOPDEBUGGROUPKHRPROC glad_glPopDebugGroupKHR = NULL; |
| PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL; |
| PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL; |
| PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f = NULL; |
| PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv = NULL; |
| PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i = NULL; |
| PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv = NULL; |
| PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui = NULL; |
| PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv = NULL; |
| PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f = NULL; |
| PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv = NULL; |
| PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i = NULL; |
| PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv = NULL; |
| PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui = NULL; |
| PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv = NULL; |
| PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f = NULL; |
| PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv = NULL; |
| PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i = NULL; |
| PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv = NULL; |
| PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui = NULL; |
| PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv = NULL; |
| PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f = NULL; |
| PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv = NULL; |
| PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL; |
| PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL; |
| PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL; |
| PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL; |
| PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL; |
| PFNGLPUSHDEBUGGROUPKHRPROC glad_glPushDebugGroupKHR = NULL; |
| PFNGLREADBUFFERPROC glad_glReadBuffer = NULL; |
| PFNGLREADPIXELSPROC glad_glReadPixels = NULL; |
| PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL; |
| PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL; |
| PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL; |
| PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT = NULL; |
| PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL; |
| PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL; |
| PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL; |
| PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL; |
| PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL; |
| PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL; |
| PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL; |
| PFNGLSCISSORPROC glad_glScissor = NULL; |
| PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL; |
| PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL; |
| PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL; |
| PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL; |
| PFNGLSTENCILMASKPROC glad_glStencilMask = NULL; |
| PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL; |
| PFNGLSTENCILOPPROC glad_glStencilOp = NULL; |
| PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL; |
| PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL; |
| PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL; |
| PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL; |
| PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL; |
| PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL; |
| PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL; |
| PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D = NULL; |
| PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample = NULL; |
| PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D = NULL; |
| PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL; |
| PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL; |
| PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL; |
| PFNGLUNIFORM1FPROC glad_glUniform1f = NULL; |
| PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL; |
| PFNGLUNIFORM1IPROC glad_glUniform1i = NULL; |
| PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL; |
| PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL; |
| PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL; |
| PFNGLUNIFORM2FPROC glad_glUniform2f = NULL; |
| PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL; |
| PFNGLUNIFORM2IPROC glad_glUniform2i = NULL; |
| PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL; |
| PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL; |
| PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL; |
| PFNGLUNIFORM3FPROC glad_glUniform3f = NULL; |
| PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL; |
| PFNGLUNIFORM3IPROC glad_glUniform3i = NULL; |
| PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL; |
| PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL; |
| PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL; |
| PFNGLUNIFORM4FPROC glad_glUniform4f = NULL; |
| PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL; |
| PFNGLUNIFORM4IPROC glad_glUniform4i = NULL; |
| PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL; |
| PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL; |
| PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL; |
| PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL; |
| PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL; |
| PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL; |
| PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL; |
| PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL; |
| PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL; |
| PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL; |
| PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL; |
| PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL; |
| PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL; |
| PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL; |
| PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL; |
| PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL; |
| PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL; |
| PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL; |
| PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL; |
| PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL; |
| PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL; |
| PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL; |
| PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL; |
| PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL; |
| PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL; |
| PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL; |
| PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding = NULL; |
| PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL; |
| PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat = NULL; |
| PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL; |
| PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL; |
| PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL; |
| PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL; |
| PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat = NULL; |
| PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL; |
| PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL; |
| PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor = NULL; |
| PFNGLVIEWPORTPROC glad_glViewport = NULL; |
| PFNGLWAITSYNCPROC glad_glWaitSync = NULL; |
| |
| |
| static void glad_gl_load_GL_ES_VERSION_2_0( GLADuserptrloadfunc load, void* userptr) { |
| if(!GLAD_GL_ES_VERSION_2_0) return; |
| glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture"); |
| glad_glAttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader"); |
| glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation"); |
| glad_glBindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer"); |
| glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer"); |
| glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer"); |
| glad_glBindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture"); |
| glad_glBlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor"); |
| glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation"); |
| glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate"); |
| glad_glBlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc"); |
| glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate"); |
| glad_glBufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData"); |
| glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData"); |
| glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus"); |
| glad_glClear = (PFNGLCLEARPROC) load(userptr, "glClear"); |
| glad_glClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor"); |
| glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf"); |
| glad_glClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil"); |
| glad_glColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask"); |
| glad_glCompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader"); |
| glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D"); |
| glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D"); |
| glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D"); |
| glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D"); |
| glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram"); |
| glad_glCreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader"); |
| glad_glCullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace"); |
| glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers"); |
| glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers"); |
| glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram"); |
| glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers"); |
| glad_glDeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader"); |
| glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures"); |
| glad_glDepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc"); |
| glad_glDepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask"); |
| glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef"); |
| glad_glDetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader"); |
| glad_glDisable = (PFNGLDISABLEPROC) load(userptr, "glDisable"); |
| glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray"); |
| glad_glDrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays"); |
| glad_glDrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements"); |
| glad_glEnable = (PFNGLENABLEPROC) load(userptr, "glEnable"); |
| glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray"); |
| glad_glFinish = (PFNGLFINISHPROC) load(userptr, "glFinish"); |
| glad_glFlush = (PFNGLFLUSHPROC) load(userptr, "glFlush"); |
| glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer"); |
| glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D"); |
| glad_glFrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace"); |
| glad_glGenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers"); |
| glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers"); |
| glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers"); |
| glad_glGenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures"); |
| glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap"); |
| glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib"); |
| glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform"); |
| glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders"); |
| glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation"); |
| glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv"); |
| glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv"); |
| glad_glGetError = (PFNGLGETERRORPROC) load(userptr, "glGetError"); |
| glad_glGetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv"); |
| glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv"); |
| glad_glGetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv"); |
| glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog"); |
| glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv"); |
| glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv"); |
| glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog"); |
| glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat"); |
| glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource"); |
| glad_glGetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv"); |
| glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); |
| glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv"); |
| glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv"); |
| glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation"); |
| glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv"); |
| glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv"); |
| glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv"); |
| glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv"); |
| glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv"); |
| glad_glHint = (PFNGLHINTPROC) load(userptr, "glHint"); |
| glad_glIsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer"); |
| glad_glIsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled"); |
| glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer"); |
| glad_glIsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram"); |
| glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer"); |
| glad_glIsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader"); |
| glad_glIsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture"); |
| glad_glLineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth"); |
| glad_glLinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram"); |
| glad_glPixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei"); |
| glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset"); |
| glad_glReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels"); |
| glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler"); |
| glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage"); |
| glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage"); |
| glad_glScissor = (PFNGLSCISSORPROC) load(userptr, "glScissor"); |
| glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary"); |
| glad_glShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource"); |
| glad_glStencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc"); |
| glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate"); |
| glad_glStencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask"); |
| glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate"); |
| glad_glStencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp"); |
| glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate"); |
| glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D"); |
| glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf"); |
| glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv"); |
| glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri"); |
| glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv"); |
| glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D"); |
| glad_glUniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f"); |
| glad_glUniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv"); |
| glad_glUniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i"); |
| glad_glUniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv"); |
| glad_glUniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f"); |
| glad_glUniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv"); |
| glad_glUniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i"); |
| glad_glUniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv"); |
| glad_glUniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f"); |
| glad_glUniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv"); |
| glad_glUniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i"); |
| glad_glUniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv"); |
| glad_glUniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f"); |
| glad_glUniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv"); |
| glad_glUniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i"); |
| glad_glUniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv"); |
| glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv"); |
| glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv"); |
| glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv"); |
| glad_glUseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram"); |
| glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram"); |
| glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f"); |
| glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv"); |
| glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f"); |
| glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv"); |
| glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f"); |
| glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv"); |
| glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f"); |
| glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv"); |
| glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer"); |
| glad_glViewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport"); |
| } |
| static void glad_gl_load_GL_ES_VERSION_3_0( GLADuserptrloadfunc load, void* userptr) { |
| if(!GLAD_GL_ES_VERSION_3_0) return; |
| glad_glBeginQuery = (PFNGLBEGINQUERYPROC) load(userptr, "glBeginQuery"); |
| glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC) load(userptr, "glBeginTransformFeedback"); |
| glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase"); |
| glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange"); |
| glad_glBindSampler = (PFNGLBINDSAMPLERPROC) load(userptr, "glBindSampler"); |
| glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC) load(userptr, "glBindTransformFeedback"); |
| glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) load(userptr, "glBindVertexArray"); |
| glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) load(userptr, "glBlitFramebuffer"); |
| glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC) load(userptr, "glClearBufferfi"); |
| glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC) load(userptr, "glClearBufferfv"); |
| glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC) load(userptr, "glClearBufferiv"); |
| glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC) load(userptr, "glClearBufferuiv"); |
| glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC) load(userptr, "glClientWaitSync"); |
| glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC) load(userptr, "glCompressedTexImage3D"); |
| glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) load(userptr, "glCompressedTexSubImage3D"); |
| glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) load(userptr, "glCopyBufferSubData"); |
| glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC) load(userptr, "glCopyTexSubImage3D"); |
| glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC) load(userptr, "glDeleteQueries"); |
| glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC) load(userptr, "glDeleteSamplers"); |
| glad_glDeleteSync = (PFNGLDELETESYNCPROC) load(userptr, "glDeleteSync"); |
| glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC) load(userptr, "glDeleteTransformFeedbacks"); |
| glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) load(userptr, "glDeleteVertexArrays"); |
| glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC) load(userptr, "glDrawArraysInstanced"); |
| glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC) load(userptr, "glDrawBuffers"); |
| glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC) load(userptr, "glDrawElementsInstanced"); |
| glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC) load(userptr, "glDrawRangeElements"); |
| glad_glEndQuery = (PFNGLENDQUERYPROC) load(userptr, "glEndQuery"); |
| glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC) load(userptr, "glEndTransformFeedback"); |
| glad_glFenceSync = (PFNGLFENCESYNCPROC) load(userptr, "glFenceSync"); |
| glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) load(userptr, "glFlushMappedBufferRange"); |
| glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glFramebufferTextureLayer"); |
| glad_glGenQueries = (PFNGLGENQUERIESPROC) load(userptr, "glGenQueries"); |
| glad_glGenSamplers = (PFNGLGENSAMPLERSPROC) load(userptr, "glGenSamplers"); |
| glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC) load(userptr, "glGenTransformFeedbacks"); |
| glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) load(userptr, "glGenVertexArrays"); |
| glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) load(userptr, "glGetActiveUniformBlockName"); |
| glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) load(userptr, "glGetActiveUniformBlockiv"); |
| glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) load(userptr, "glGetActiveUniformsiv"); |
| glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC) load(userptr, "glGetBufferParameteri64v"); |
| glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC) load(userptr, "glGetBufferPointerv"); |
| glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC) load(userptr, "glGetFragDataLocation"); |
| glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC) load(userptr, "glGetInteger64i_v"); |
| glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC) load(userptr, "glGetInteger64v"); |
| glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v"); |
| glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC) load(userptr, "glGetInternalformativ"); |
| glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC) load(userptr, "glGetProgramBinary"); |
| glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) load(userptr, "glGetQueryObjectuiv"); |
| glad_glGetQueryiv = (PFNGLGETQUERYIVPROC) load(userptr, "glGetQueryiv"); |
| glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC) load(userptr, "glGetSamplerParameterfv"); |
| glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC) load(userptr, "glGetSamplerParameteriv"); |
| glad_glGetStringi = (PFNGLGETSTRINGIPROC) load(userptr, "glGetStringi"); |
| glad_glGetSynciv = (PFNGLGETSYNCIVPROC) load(userptr, "glGetSynciv"); |
| glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) load(userptr, "glGetTransformFeedbackVarying"); |
| glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) load(userptr, "glGetUniformBlockIndex"); |
| glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) load(userptr, "glGetUniformIndices"); |
| glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC) load(userptr, "glGetUniformuiv"); |
| glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC) load(userptr, "glGetVertexAttribIiv"); |
| glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC) load(userptr, "glGetVertexAttribIuiv"); |
| glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC) load(userptr, "glInvalidateFramebuffer"); |
| glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC) load(userptr, "glInvalidateSubFramebuffer"); |
| glad_glIsQuery = (PFNGLISQUERYPROC) load(userptr, "glIsQuery"); |
| glad_glIsSampler = (PFNGLISSAMPLERPROC) load(userptr, "glIsSampler"); |
| glad_glIsSync = (PFNGLISSYNCPROC) load(userptr, "glIsSync"); |
| glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC) load(userptr, "glIsTransformFeedback"); |
| glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC) load(userptr, "glIsVertexArray"); |
| glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC) load(userptr, "glMapBufferRange"); |
| glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC) load(userptr, "glPauseTransformFeedback"); |
| glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC) load(userptr, "glProgramBinary"); |
| glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC) load(userptr, "glProgramParameteri"); |
| glad_glReadBuffer = (PFNGLREADBUFFERPROC) load(userptr, "glReadBuffer"); |
| glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glRenderbufferStorageMultisample"); |
| glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC) load(userptr, "glResumeTransformFeedback"); |
| glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC) load(userptr, "glSamplerParameterf"); |
| glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC) load(userptr, "glSamplerParameterfv"); |
| glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC) load(userptr, "glSamplerParameteri"); |
| glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC) load(userptr, "glSamplerParameteriv"); |
| glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC) load(userptr, "glTexImage3D"); |
| glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC) load(userptr, "glTexStorage2D"); |
| glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC) load(userptr, "glTexStorage3D"); |
| glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC) load(userptr, "glTexSubImage3D"); |
| glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC) load(userptr, "glTransformFeedbackVaryings"); |
| glad_glUniform1ui = (PFNGLUNIFORM1UIPROC) load(userptr, "glUniform1ui"); |
| glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC) load(userptr, "glUniform1uiv"); |
| glad_glUniform2ui = (PFNGLUNIFORM2UIPROC) load(userptr, "glUniform2ui"); |
| glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC) load(userptr, "glUniform2uiv"); |
| glad_glUniform3ui = (PFNGLUNIFORM3UIPROC) load(userptr, "glUniform3ui"); |
| glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC) load(userptr, "glUniform3uiv"); |
| glad_glUniform4ui = (PFNGLUNIFORM4UIPROC) load(userptr, "glUniform4ui"); |
| glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC) load(userptr, "glUniform4uiv"); |
| glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) load(userptr, "glUniformBlockBinding"); |
| glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC) load(userptr, "glUniformMatrix2x3fv"); |
| glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC) load(userptr, "glUniformMatrix2x4fv"); |
| glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC) load(userptr, "glUniformMatrix3x2fv"); |
| glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC) load(userptr, "glUniformMatrix3x4fv"); |
| glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC) load(userptr, "glUniformMatrix4x2fv"); |
| glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) load(userptr, "glUniformMatrix4x3fv"); |
| glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC) load(userptr, "glUnmapBuffer"); |
| glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC) load(userptr, "glVertexAttribDivisor"); |
| glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC) load(userptr, "glVertexAttribI4i"); |
| glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC) load(userptr, "glVertexAttribI4iv"); |
| glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC) load(userptr, "glVertexAttribI4ui"); |
| glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC) load(userptr, "glVertexAttribI4uiv"); |
| glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC) load(userptr, "glVertexAttribIPointer"); |
| glad_glWaitSync = (PFNGLWAITSYNCPROC) load(userptr, "glWaitSync"); |
| } |
| static void glad_gl_load_GL_ES_VERSION_3_1( GLADuserptrloadfunc load, void* userptr) { |
| if(!GLAD_GL_ES_VERSION_3_1) return; |
| glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC) load(userptr, "glActiveShaderProgram"); |
| glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC) load(userptr, "glBindImageTexture"); |
| glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC) load(userptr, "glBindProgramPipeline"); |
| glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC) load(userptr, "glBindVertexBuffer"); |
| glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC) load(userptr, "glCreateShaderProgramv"); |
| glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC) load(userptr, "glDeleteProgramPipelines"); |
| glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC) load(userptr, "glDispatchCompute"); |
| glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC) load(userptr, "glDispatchComputeIndirect"); |
| glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC) load(userptr, "glDrawArraysIndirect"); |
| glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC) load(userptr, "glDrawElementsIndirect"); |
| glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC) load(userptr, "glFramebufferParameteri"); |
| glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC) load(userptr, "glGenProgramPipelines"); |
| glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC) load(userptr, "glGetBooleani_v"); |
| glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetFramebufferParameteriv"); |
| glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) load(userptr, "glGetMultisamplefv"); |
| glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC) load(userptr, "glGetProgramInterfaceiv"); |
| glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC) load(userptr, "glGetProgramPipelineInfoLog"); |
| glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC) load(userptr, "glGetProgramPipelineiv"); |
| glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC) load(userptr, "glGetProgramResourceIndex"); |
| glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC) load(userptr, "glGetProgramResourceLocation"); |
| glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC) load(userptr, "glGetProgramResourceName"); |
| glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC) load(userptr, "glGetProgramResourceiv"); |
| glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC) load(userptr, "glGetTexLevelParameterfv"); |
| glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC) load(userptr, "glGetTexLevelParameteriv"); |
| glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC) load(userptr, "glIsProgramPipeline"); |
| glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC) load(userptr, "glMemoryBarrier"); |
| glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC) load(userptr, "glMemoryBarrierByRegion"); |
| glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC) load(userptr, "glProgramUniform1f"); |
| glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC) load(userptr, "glProgramUniform1fv"); |
| glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC) load(userptr, "glProgramUniform1i"); |
| glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC) load(userptr, "glProgramUniform1iv"); |
| glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC) load(userptr, "glProgramUniform1ui"); |
| glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC) load(userptr, "glProgramUniform1uiv"); |
| glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC) load(userptr, "glProgramUniform2f"); |
| glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC) load(userptr, "glProgramUniform2fv"); |
| glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC) load(userptr, "glProgramUniform2i"); |
| glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC) load(userptr, "glProgramUniform2iv"); |
| glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC) load(userptr, "glProgramUniform2ui"); |
| glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC) load(userptr, "glProgramUniform2uiv"); |
| glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC) load(userptr, "glProgramUniform3f"); |
| glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC) load(userptr, "glProgramUniform3fv"); |
| glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC) load(userptr, "glProgramUniform3i"); |
| glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC) load(userptr, "glProgramUniform3iv"); |
| glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC) load(userptr, "glProgramUniform3ui"); |
| glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC) load(userptr, "glProgramUniform3uiv"); |
| glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC) load(userptr, "glProgramUniform4f"); |
| glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC) load(userptr, "glProgramUniform4fv"); |
| glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC) load(userptr, "glProgramUniform4i"); |
| glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC) load(userptr, "glProgramUniform4iv"); |
| glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC) load(userptr, "glProgramUniform4ui"); |
| glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC) load(userptr, "glProgramUniform4uiv"); |
| glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC) load(userptr, "glProgramUniformMatrix2fv"); |
| glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) load(userptr, "glProgramUniformMatrix2x3fv"); |
| glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) load(userptr, "glProgramUniformMatrix2x4fv"); |
| glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC) load(userptr, "glProgramUniformMatrix3fv"); |
| glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) load(userptr, "glProgramUniformMatrix3x2fv"); |
| glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) load(userptr, "glProgramUniformMatrix3x4fv"); |
| glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC) load(userptr, "glProgramUniformMatrix4fv"); |
| glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) load(userptr, "glProgramUniformMatrix4x2fv"); |
| glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) load(userptr, "glProgramUniformMatrix4x3fv"); |
| glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC) load(userptr, "glSampleMaski"); |
| glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC) load(userptr, "glTexStorage2DMultisample"); |
| glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC) load(userptr, "glUseProgramStages"); |
| glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC) load(userptr, "glValidateProgramPipeline"); |
| glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC) load(userptr, "glVertexAttribBinding"); |
| glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC) load(userptr, "glVertexAttribFormat"); |
| glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC) load(userptr, "glVertexAttribIFormat"); |
| glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC) load(userptr, "glVertexBindingDivisor"); |
| } |
| static void glad_gl_load_GL_EXT_base_instance( GLADuserptrloadfunc load, void* userptr) { |
| if(!GLAD_GL_EXT_base_instance) return; |
| glad_glDrawArraysInstancedBaseInstanceEXT = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) load(userptr, "glDrawArraysInstancedBaseInstanceEXT"); |
| glad_glDrawElementsInstancedBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) load(userptr, "glDrawElementsInstancedBaseInstanceEXT"); |
| glad_glDrawElementsInstancedBaseVertexBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) load(userptr, "glDrawElementsInstancedBaseVertexBaseInstanceEXT"); |
| } |
| static void glad_gl_load_GL_EXT_multisampled_render_to_texture( GLADuserptrloadfunc load, void* userptr) { |
| if(!GLAD_GL_EXT_multisampled_render_to_texture) return; |
| glad_glFramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) load(userptr, "glFramebufferTexture2DMultisampleEXT"); |
| glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) load(userptr, "glRenderbufferStorageMultisampleEXT"); |
| } |
| static void glad_gl_load_GL_KHR_blend_equation_advanced( GLADuserptrloadfunc load, void* userptr) { |
| if(!GLAD_GL_KHR_blend_equation_advanced) return; |
| glad_glBlendBarrierKHR = (PFNGLBLENDBARRIERKHRPROC) load(userptr, "glBlendBarrierKHR"); |
| } |
| static void glad_gl_load_GL_KHR_debug( GLADuserptrloadfunc load, void* userptr) { |
| if(!GLAD_GL_KHR_debug) return; |
| glad_glDebugMessageCallbackKHR = (PFNGLDEBUGMESSAGECALLBACKKHRPROC) load(userptr, "glDebugMessageCallbackKHR"); |
| glad_glDebugMessageControlKHR = (PFNGLDEBUGMESSAGECONTROLKHRPROC) load(userptr, "glDebugMessageControlKHR"); |
| glad_glDebugMessageInsertKHR = (PFNGLDEBUGMESSAGEINSERTKHRPROC) load(userptr, "glDebugMessageInsertKHR"); |
| glad_glGetDebugMessageLogKHR = (PFNGLGETDEBUGMESSAGELOGKHRPROC) load(userptr, "glGetDebugMessageLogKHR"); |
| glad_glGetObjectLabelKHR = (PFNGLGETOBJECTLABELKHRPROC) load(userptr, "glGetObjectLabelKHR"); |
| glad_glGetObjectPtrLabelKHR = (PFNGLGETOBJECTPTRLABELKHRPROC) load(userptr, "glGetObjectPtrLabelKHR"); |
| glad_glGetPointervKHR = (PFNGLGETPOINTERVKHRPROC) load(userptr, "glGetPointervKHR"); |
| glad_glObjectLabelKHR = (PFNGLOBJECTLABELKHRPROC) load(userptr, "glObjectLabelKHR"); |
| glad_glObjectPtrLabelKHR = (PFNGLOBJECTPTRLABELKHRPROC) load(userptr, "glObjectPtrLabelKHR"); |
| glad_glPopDebugGroupKHR = (PFNGLPOPDEBUGGROUPKHRPROC) load(userptr, "glPopDebugGroupKHR"); |
| glad_glPushDebugGroupKHR = (PFNGLPUSHDEBUGGROUPKHRPROC) load(userptr, "glPushDebugGroupKHR"); |
| } |
| static void glad_gl_load_GL_KHR_parallel_shader_compile( GLADuserptrloadfunc load, void* userptr) { |
| if(!GLAD_GL_KHR_parallel_shader_compile) return; |
| glad_glMaxShaderCompilerThreadsKHR = (PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) load(userptr, "glMaxShaderCompilerThreadsKHR"); |
| } |
| |
| |
| |
| static void glad_gl_free_extensions(char **exts_i) { |
| if (exts_i != NULL) { |
| unsigned int index; |
| for(index = 0; exts_i[index]; index++) { |
| free((void *) (exts_i[index])); |
| } |
| free((void *)exts_i); |
| exts_i = NULL; |
| } |
| } |
| static int glad_gl_get_extensions( const char **out_exts, char ***out_exts_i) { |
| #if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) |
| if (glad_glGetStringi != NULL && glad_glGetIntegerv != NULL) { |
| unsigned int index = 0; |
| unsigned int num_exts_i = 0; |
| char **exts_i = NULL; |
| glad_glGetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i); |
| exts_i = (char **) malloc((num_exts_i + 1) * (sizeof *exts_i)); |
| if (exts_i == NULL) { |
| return 0; |
| } |
| for(index = 0; index < num_exts_i; index++) { |
| const char *gl_str_tmp = (const char*) glad_glGetStringi(GL_EXTENSIONS, index); |
| size_t len = strlen(gl_str_tmp) + 1; |
| |
| char *local_str = (char*) malloc(len * sizeof(char)); |
| if(local_str == NULL) { |
| exts_i[index] = NULL; |
| glad_gl_free_extensions(exts_i); |
| return 0; |
| } |
| |
| memcpy(local_str, gl_str_tmp, len * sizeof(char)); |
| exts_i[index] = local_str; |
| } |
| exts_i[index] = NULL; |
| |
| *out_exts_i = exts_i; |
| |
| return 1; |
| } |
| #else |
| GLAD_UNUSED(out_exts_i); |
| #endif |
| if (glad_glGetString == NULL) { |
| return 0; |
| } |
| *out_exts = (const char *)glad_glGetString(GL_EXTENSIONS); |
| return 1; |
| } |
| static int glad_gl_has_extension(const char *exts, char **exts_i, const char *ext) { |
| if(exts_i) { |
| unsigned int index; |
| for(index = 0; exts_i[index]; index++) { |
| const char *e = exts_i[index]; |
| if(strcmp(e, ext) == 0) { |
| return 1; |
| } |
| } |
| } else { |
| const char *extensions; |
| const char *loc; |
| const char *terminator; |
| extensions = exts; |
| if(extensions == NULL || ext == NULL) { |
| return 0; |
| } |
| while(1) { |
| loc = strstr(extensions, ext); |
| if(loc == NULL) { |
| return 0; |
| } |
| terminator = loc + strlen(ext); |
| if((loc == extensions || *(loc - 1) == ' ') && |
| (*terminator == ' ' || *terminator == '\0')) { |
| return 1; |
| } |
| extensions = terminator; |
| } |
| } |
| return 0; |
| } |
| |
| static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) { |
| return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name); |
| } |
| |
| static int glad_gl_find_extensions_gles2(void) { |
| const char *exts = NULL; |
| char **exts_i = NULL; |
| if (!glad_gl_get_extensions(&exts, &exts_i)) return 0; |
| |
| GLAD_GL_EXT_base_instance = glad_gl_has_extension(exts, exts_i, "GL_EXT_base_instance"); |
| GLAD_GL_EXT_clip_cull_distance = glad_gl_has_extension(exts, exts_i, "GL_EXT_clip_cull_distance"); |
| GLAD_GL_EXT_multisampled_render_to_texture = glad_gl_has_extension(exts, exts_i, "GL_EXT_multisampled_render_to_texture"); |
| GLAD_GL_KHR_blend_equation_advanced = glad_gl_has_extension(exts, exts_i, "GL_KHR_blend_equation_advanced"); |
| GLAD_GL_KHR_blend_equation_advanced_coherent = glad_gl_has_extension(exts, exts_i, "GL_KHR_blend_equation_advanced_coherent"); |
| GLAD_GL_KHR_debug = glad_gl_has_extension(exts, exts_i, "GL_KHR_debug"); |
| GLAD_GL_KHR_parallel_shader_compile = glad_gl_has_extension(exts, exts_i, "GL_KHR_parallel_shader_compile"); |
| |
| glad_gl_free_extensions(exts_i); |
| |
| return 1; |
| } |
| |
| static int glad_gl_find_core_gles2(void) { |
| int i; |
| const char* version; |
| const char* prefixes[] = { |
| "OpenGL ES-CM ", |
| "OpenGL ES-CL ", |
| "OpenGL ES ", |
| "OpenGL SC ", |
| NULL |
| }; |
| int major = 0; |
| int minor = 0; |
| version = (const char*) glad_glGetString(GL_VERSION); |
| if (!version) return 0; |
| for (i = 0; prefixes[i]; i++) { |
| const size_t length = strlen(prefixes[i]); |
| if (strncmp(version, prefixes[i], length) == 0) { |
| version += length; |
| break; |
| } |
| } |
| |
| GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor); |
| |
| GLAD_GL_ES_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; |
| GLAD_GL_ES_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; |
| GLAD_GL_ES_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; |
| |
| return GLAD_MAKE_VERSION(major, minor); |
| } |
| |
| int gladLoadGLES2UserPtr( GLADuserptrloadfunc load, void *userptr) { |
| int version; |
| |
| glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); |
| if(glad_glGetString == NULL) return 0; |
| version = glad_gl_find_core_gles2(); |
| |
| glad_gl_load_GL_ES_VERSION_2_0(load, userptr); |
| glad_gl_load_GL_ES_VERSION_3_0(load, userptr); |
| glad_gl_load_GL_ES_VERSION_3_1(load, userptr); |
| |
| if (!glad_gl_find_extensions_gles2()) return 0; |
| glad_gl_load_GL_EXT_base_instance(load, userptr); |
| glad_gl_load_GL_EXT_multisampled_render_to_texture(load, userptr); |
| glad_gl_load_GL_KHR_blend_equation_advanced(load, userptr); |
| glad_gl_load_GL_KHR_debug(load, userptr); |
| glad_gl_load_GL_KHR_parallel_shader_compile(load, userptr); |
| |
| |
| |
| return version; |
| } |
| |
| |
| int gladLoadGLES2( GLADloadfunc load) { |
| return gladLoadGLES2UserPtr( glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load); |
| } |
| |
| |
| |
| |
| |
| #ifdef GLAD_GLES2 |
| |
| #ifndef GLAD_LOADER_LIBRARY_C_ |
| #define GLAD_LOADER_LIBRARY_C_ |
| |
| #include <stddef.h> |
| #include <stdlib.h> |
| |
| #if GLAD_PLATFORM_WIN32 |
| #include <windows.h> |
| #else |
| #include <dlfcn.h> |
| #endif |
| |
| |
| static void* glad_get_dlopen_handle(const char *lib_names[], int length) { |
| void *handle = NULL; |
| int i; |
| |
| for (i = 0; i < length; ++i) { |
| #if GLAD_PLATFORM_WIN32 |
| #if GLAD_PLATFORM_UWP |
| size_t buffer_size = (strlen(lib_names[i]) + 1) * sizeof(WCHAR); |
| LPWSTR buffer = (LPWSTR) malloc(buffer_size); |
| if (buffer != NULL) { |
| int ret = MultiByteToWideChar(CP_ACP, 0, lib_names[i], -1, buffer, buffer_size); |
| if (ret != 0) { |
| handle = (void*) LoadPackagedLibrary(buffer, 0); |
| } |
| free((void*) buffer); |
| } |
| #else |
| handle = (void*) LoadLibraryA(lib_names[i]); |
| #endif |
| #else |
| handle = dlopen(lib_names[i], RTLD_LAZY | RTLD_LOCAL); |
| #endif |
| if (handle != NULL) { |
| return handle; |
| } |
| } |
| |
| return NULL; |
| } |
| |
| static void glad_close_dlopen_handle(void* handle) { |
| if (handle != NULL) { |
| #if GLAD_PLATFORM_WIN32 |
| FreeLibrary((HMODULE) handle); |
| #else |
| dlclose(handle); |
| #endif |
| } |
| } |
| |
| static GLADapiproc glad_dlsym_handle(void* handle, const char *name) { |
| if (handle == NULL) { |
| return NULL; |
| } |
| |
| #if GLAD_PLATFORM_WIN32 |
| return (GLADapiproc) GetProcAddress((HMODULE) handle, name); |
| #else |
| return GLAD_GNUC_EXTENSION (GLADapiproc) dlsym(handle, name); |
| #endif |
| } |
| |
| #endif /* GLAD_LOADER_LIBRARY_C_ */ |
| |
| #if GLAD_PLATFORM_EMSCRIPTEN |
| #ifndef GLAD_EGL_H_ |
| typedef void (*__eglMustCastToProperFunctionPointerType)(void); |
| typedef __eglMustCastToProperFunctionPointerType (GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char *name); |
| #endif |
| extern __eglMustCastToProperFunctionPointerType emscripten_GetProcAddress(const char *name); |
| #elif defined(GLAD_GLES2_USE_SYSTEM_EGL) |
| #include <EGL/egl.h> |
| typedef __eglMustCastToProperFunctionPointerType (GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char *name); |
| #else |
| #include <glad/egl.h> |
| #endif |
| |
| |
| struct _glad_gles2_userptr { |
| void *handle; |
| PFNEGLGETPROCADDRESSPROC get_proc_address_ptr; |
| }; |
| |
| |
| static GLADapiproc glad_gles2_get_proc(void *vuserptr, const char* name) { |
| struct _glad_gles2_userptr userptr = *(struct _glad_gles2_userptr*) vuserptr; |
| GLADapiproc result = NULL; |
| |
| #if GLAD_PLATFORM_EMSCRIPTEN |
| GLAD_UNUSED(&glad_dlsym_handle); |
| #else |
| result = glad_dlsym_handle(userptr.handle, name); |
| #endif |
| if (result == NULL) { |
| result = userptr.get_proc_address_ptr(name); |
| } |
| |
| return result; |
| } |
| |
| static void* _glad_GLES2_loader_handle = NULL; |
| |
| static void* glad_gles2_dlopen_handle(void) { |
| #if GLAD_PLATFORM_EMSCRIPTEN |
| #elif GLAD_PLATFORM_APPLE |
| static const char *NAMES[] = {"libGLESv2.dylib"}; |
| #elif GLAD_PLATFORM_WIN32 |
| static const char *NAMES[] = {"GLESv2.dll", "libGLESv2.dll"}; |
| #else |
| static const char *NAMES[] = {"libGLESv2.so.2", "libGLESv2.so"}; |
| #endif |
| |
| #if GLAD_PLATFORM_EMSCRIPTEN |
| GLAD_UNUSED(&glad_get_dlopen_handle); |
| return NULL; |
| #else |
| if (_glad_GLES2_loader_handle == NULL) { |
| _glad_GLES2_loader_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); |
| } |
| |
| return _glad_GLES2_loader_handle; |
| #endif |
| } |
| |
| static struct _glad_gles2_userptr glad_gles2_build_userptr(void *handle) { |
| struct _glad_gles2_userptr userptr; |
| #if GLAD_PLATFORM_EMSCRIPTEN |
| GLAD_UNUSED(handle); |
| userptr.get_proc_address_ptr = emscripten_GetProcAddress; |
| #else |
| userptr.handle = handle; |
| userptr.get_proc_address_ptr = eglGetProcAddress; |
| #endif |
| return userptr; |
| } |
| |
| int gladLoaderLoadGLES2(void) { |
| int version = 0; |
| void *handle = NULL; |
| int did_load = 0; |
| struct _glad_gles2_userptr userptr; |
| |
| #if GLAD_PLATFORM_EMSCRIPTEN |
| GLAD_UNUSED(handle); |
| GLAD_UNUSED(did_load); |
| GLAD_UNUSED(&glad_gles2_dlopen_handle); |
| GLAD_UNUSED(&glad_gles2_build_userptr); |
| userptr.get_proc_address_ptr = emscripten_GetProcAddress; |
| version = gladLoadGLES2UserPtr(glad_gles2_get_proc, &userptr); |
| #else |
| #ifndef GLAD_GLES2_USE_SYSTEM_EGL |
| if (eglGetProcAddress == NULL) { |
| return 0; |
| } |
| #endif |
| did_load = _glad_GLES2_loader_handle == NULL; |
| handle = glad_gles2_dlopen_handle(); |
| if (handle != NULL) { |
| userptr = glad_gles2_build_userptr(handle); |
| |
| version = gladLoadGLES2UserPtr(glad_gles2_get_proc, &userptr); |
| |
| if (!version && did_load) { |
| gladLoaderUnloadGLES2(); |
| } |
| } |
| #endif |
| |
| return version; |
| } |
| |
| |
| |
| void gladLoaderUnloadGLES2(void) { |
| if (_glad_GLES2_loader_handle != NULL) { |
| glad_close_dlopen_handle(_glad_GLES2_loader_handle); |
| _glad_GLES2_loader_handle = NULL; |
| } |
| } |
| |
| #endif /* GLAD_GLES2 */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |