/* This file is part of Magnum. Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Vladimír Vondruš Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "flextGLWindowsDesktop.h" #include #include #include "Magnum/Platform/Implementation/OpenGLFunctionLoader.h" void flextGLInit(Magnum::GL::Context&) { Magnum::Platform::Implementation::OpenGLFunctionLoader loader; /* GL_ES_VERSION_2_0 */ flextglActiveTexture = reinterpret_cast(loader.load("glActiveTexture")); flextglAttachShader = reinterpret_cast(loader.load("glAttachShader")); flextglBindAttribLocation = reinterpret_cast(loader.load("glBindAttribLocation")); flextglBindBuffer = reinterpret_cast(loader.load("glBindBuffer")); flextglBindFramebuffer = reinterpret_cast(loader.load("glBindFramebuffer")); flextglBindRenderbuffer = reinterpret_cast(loader.load("glBindRenderbuffer")); flextglBlendColor = reinterpret_cast(loader.load("glBlendColor")); flextglBlendEquation = reinterpret_cast(loader.load("glBlendEquation")); flextglBlendEquationSeparate = reinterpret_cast(loader.load("glBlendEquationSeparate")); flextglBlendFuncSeparate = reinterpret_cast(loader.load("glBlendFuncSeparate")); flextglBufferData = reinterpret_cast(loader.load("glBufferData")); flextglBufferSubData = reinterpret_cast(loader.load("glBufferSubData")); flextglCheckFramebufferStatus = reinterpret_cast(loader.load("glCheckFramebufferStatus")); flextglClearDepthf = reinterpret_cast(loader.load("glClearDepthf")); flextglCompileShader = reinterpret_cast(loader.load("glCompileShader")); flextglCompressedTexImage2D = reinterpret_cast(loader.load("glCompressedTexImage2D")); flextglCompressedTexSubImage2D = reinterpret_cast(loader.load("glCompressedTexSubImage2D")); flextglCreateProgram = reinterpret_cast(loader.load("glCreateProgram")); flextglCreateShader = reinterpret_cast(loader.load("glCreateShader")); flextglDeleteBuffers = reinterpret_cast(loader.load("glDeleteBuffers")); flextglDeleteFramebuffers = reinterpret_cast(loader.load("glDeleteFramebuffers")); flextglDeleteProgram = reinterpret_cast(loader.load("glDeleteProgram")); flextglDeleteRenderbuffers = reinterpret_cast(loader.load("glDeleteRenderbuffers")); flextglDeleteShader = reinterpret_cast(loader.load("glDeleteShader")); flextglDepthRangef = reinterpret_cast(loader.load("glDepthRangef")); flextglDetachShader = reinterpret_cast(loader.load("glDetachShader")); flextglDisableVertexAttribArray = reinterpret_cast(loader.load("glDisableVertexAttribArray")); flextglEnableVertexAttribArray = reinterpret_cast(loader.load("glEnableVertexAttribArray")); flextglFramebufferRenderbuffer = reinterpret_cast(loader.load("glFramebufferRenderbuffer")); flextglFramebufferTexture2D = reinterpret_cast(loader.load("glFramebufferTexture2D")); flextglGenBuffers = reinterpret_cast(loader.load("glGenBuffers")); flextglGenFramebuffers = reinterpret_cast(loader.load("glGenFramebuffers")); flextglGenRenderbuffers = reinterpret_cast(loader.load("glGenRenderbuffers")); flextglGenerateMipmap = reinterpret_cast(loader.load("glGenerateMipmap")); flextglGetActiveAttrib = reinterpret_cast(loader.load("glGetActiveAttrib")); flextglGetActiveUniform = reinterpret_cast(loader.load("glGetActiveUniform")); flextglGetAttachedShaders = reinterpret_cast(loader.load("glGetAttachedShaders")); flextglGetAttribLocation = reinterpret_cast(loader.load("glGetAttribLocation")); flextglGetBufferParameteriv = reinterpret_cast(loader.load("glGetBufferParameteriv")); flextglGetFramebufferAttachmentParameteriv = reinterpret_cast(loader.load("glGetFramebufferAttachmentParameteriv")); flextglGetProgramInfoLog = reinterpret_cast(loader.load("glGetProgramInfoLog")); flextglGetProgramiv = reinterpret_cast(loader.load("glGetProgramiv")); flextglGetRenderbufferParameteriv = reinterpret_cast(loader.load("glGetRenderbufferParameteriv")); flextglGetShaderInfoLog = reinterpret_cast(loader.load("glGetShaderInfoLog")); flextglGetShaderPrecisionFormat = reinterpret_cast(loader.load("glGetShaderPrecisionFormat")); flextglGetShaderSource = reinterpret_cast(loader.load("glGetShaderSource")); flextglGetShaderiv = reinterpret_cast(loader.load("glGetShaderiv")); flextglGetUniformLocation = reinterpret_cast(loader.load("glGetUniformLocation")); flextglGetUniformfv = reinterpret_cast(loader.load("glGetUniformfv")); flextglGetUniformiv = reinterpret_cast(loader.load("glGetUniformiv")); flextglGetVertexAttribPointerv = reinterpret_cast(loader.load("glGetVertexAttribPointerv")); flextglGetVertexAttribfv = reinterpret_cast(loader.load("glGetVertexAttribfv")); flextglGetVertexAttribiv = reinterpret_cast(loader.load("glGetVertexAttribiv")); flextglIsBuffer = reinterpret_cast(loader.load("glIsBuffer")); flextglIsFramebuffer = reinterpret_cast(loader.load("glIsFramebuffer")); flextglIsProgram = reinterpret_cast(loader.load("glIsProgram")); flextglIsRenderbuffer = reinterpret_cast(loader.load("glIsRenderbuffer")); flextglIsShader = reinterpret_cast(loader.load("glIsShader")); flextglLinkProgram = reinterpret_cast(loader.load("glLinkProgram")); flextglReleaseShaderCompiler = reinterpret_cast(loader.load("glReleaseShaderCompiler")); flextglRenderbufferStorage = reinterpret_cast(loader.load("glRenderbufferStorage")); flextglSampleCoverage = reinterpret_cast(loader.load("glSampleCoverage")); flextglShaderBinary = reinterpret_cast(loader.load("glShaderBinary")); flextglShaderSource = reinterpret_cast(loader.load("glShaderSource")); flextglStencilFuncSeparate = reinterpret_cast(loader.load("glStencilFuncSeparate")); flextglStencilMaskSeparate = reinterpret_cast(loader.load("glStencilMaskSeparate")); flextglStencilOpSeparate = reinterpret_cast(loader.load("glStencilOpSeparate")); flextglUniform1f = reinterpret_cast(loader.load("glUniform1f")); flextglUniform1fv = reinterpret_cast(loader.load("glUniform1fv")); flextglUniform1i = reinterpret_cast(loader.load("glUniform1i")); flextglUniform1iv = reinterpret_cast(loader.load("glUniform1iv")); flextglUniform2f = reinterpret_cast(loader.load("glUniform2f")); flextglUniform2fv = reinterpret_cast(loader.load("glUniform2fv")); flextglUniform2i = reinterpret_cast(loader.load("glUniform2i")); flextglUniform2iv = reinterpret_cast(loader.load("glUniform2iv")); flextglUniform3f = reinterpret_cast(loader.load("glUniform3f")); flextglUniform3fv = reinterpret_cast(loader.load("glUniform3fv")); flextglUniform3i = reinterpret_cast(loader.load("glUniform3i")); flextglUniform3iv = reinterpret_cast(loader.load("glUniform3iv")); flextglUniform4f = reinterpret_cast(loader.load("glUniform4f")); flextglUniform4fv = reinterpret_cast(loader.load("glUniform4fv")); flextglUniform4i = reinterpret_cast(loader.load("glUniform4i")); flextglUniform4iv = reinterpret_cast(loader.load("glUniform4iv")); flextglUniformMatrix2fv = reinterpret_cast(loader.load("glUniformMatrix2fv")); flextglUniformMatrix3fv = reinterpret_cast(loader.load("glUniformMatrix3fv")); flextglUniformMatrix4fv = reinterpret_cast(loader.load("glUniformMatrix4fv")); flextglUseProgram = reinterpret_cast(loader.load("glUseProgram")); flextglValidateProgram = reinterpret_cast(loader.load("glValidateProgram")); flextglVertexAttrib1f = reinterpret_cast(loader.load("glVertexAttrib1f")); flextglVertexAttrib1fv = reinterpret_cast(loader.load("glVertexAttrib1fv")); flextglVertexAttrib2f = reinterpret_cast(loader.load("glVertexAttrib2f")); flextglVertexAttrib2fv = reinterpret_cast(loader.load("glVertexAttrib2fv")); flextglVertexAttrib3f = reinterpret_cast(loader.load("glVertexAttrib3f")); flextglVertexAttrib3fv = reinterpret_cast(loader.load("glVertexAttrib3fv")); flextglVertexAttrib4f = reinterpret_cast(loader.load("glVertexAttrib4f")); flextglVertexAttrib4fv = reinterpret_cast(loader.load("glVertexAttrib4fv")); flextglVertexAttribPointer = reinterpret_cast(loader.load("glVertexAttribPointer")); /* GL_ES_VERSION_3_0 */ flextglBeginQuery = reinterpret_cast(loader.load("glBeginQuery")); flextglBeginTransformFeedback = reinterpret_cast(loader.load("glBeginTransformFeedback")); flextglBindBufferBase = reinterpret_cast(loader.load("glBindBufferBase")); flextglBindBufferRange = reinterpret_cast(loader.load("glBindBufferRange")); flextglBindSampler = reinterpret_cast(loader.load("glBindSampler")); flextglBindTransformFeedback = reinterpret_cast(loader.load("glBindTransformFeedback")); flextglBindVertexArray = reinterpret_cast(loader.load("glBindVertexArray")); flextglBlitFramebuffer = reinterpret_cast(loader.load("glBlitFramebuffer")); flextglClearBufferfi = reinterpret_cast(loader.load("glClearBufferfi")); flextglClearBufferfv = reinterpret_cast(loader.load("glClearBufferfv")); flextglClearBufferiv = reinterpret_cast(loader.load("glClearBufferiv")); flextglClearBufferuiv = reinterpret_cast(loader.load("glClearBufferuiv")); flextglClientWaitSync = reinterpret_cast(loader.load("glClientWaitSync")); flextglCompressedTexImage3D = reinterpret_cast(loader.load("glCompressedTexImage3D")); flextglCompressedTexSubImage3D = reinterpret_cast(loader.load("glCompressedTexSubImage3D")); flextglCopyBufferSubData = reinterpret_cast(loader.load("glCopyBufferSubData")); flextglCopyTexSubImage3D = reinterpret_cast(loader.load("glCopyTexSubImage3D")); flextglDeleteQueries = reinterpret_cast(loader.load("glDeleteQueries")); flextglDeleteSamplers = reinterpret_cast(loader.load("glDeleteSamplers")); flextglDeleteSync = reinterpret_cast(loader.load("glDeleteSync")); flextglDeleteTransformFeedbacks = reinterpret_cast(loader.load("glDeleteTransformFeedbacks")); flextglDeleteVertexArrays = reinterpret_cast(loader.load("glDeleteVertexArrays")); flextglDrawArraysInstanced = reinterpret_cast(loader.load("glDrawArraysInstanced")); flextglDrawBuffers = reinterpret_cast(loader.load("glDrawBuffers")); flextglDrawElementsInstanced = reinterpret_cast(loader.load("glDrawElementsInstanced")); flextglDrawRangeElements = reinterpret_cast(loader.load("glDrawRangeElements")); flextglEndQuery = reinterpret_cast(loader.load("glEndQuery")); flextglEndTransformFeedback = reinterpret_cast(loader.load("glEndTransformFeedback")); flextglFenceSync = reinterpret_cast(loader.load("glFenceSync")); flextglFlushMappedBufferRange = reinterpret_cast(loader.load("glFlushMappedBufferRange")); flextglFramebufferTextureLayer = reinterpret_cast(loader.load("glFramebufferTextureLayer")); flextglGenQueries = reinterpret_cast(loader.load("glGenQueries")); flextglGenSamplers = reinterpret_cast(loader.load("glGenSamplers")); flextglGenTransformFeedbacks = reinterpret_cast(loader.load("glGenTransformFeedbacks")); flextglGenVertexArrays = reinterpret_cast(loader.load("glGenVertexArrays")); flextglGetActiveUniformBlockName = reinterpret_cast(loader.load("glGetActiveUniformBlockName")); flextglGetActiveUniformBlockiv = reinterpret_cast(loader.load("glGetActiveUniformBlockiv")); flextglGetActiveUniformsiv = reinterpret_cast(loader.load("glGetActiveUniformsiv")); flextglGetBufferParameteri64v = reinterpret_cast(loader.load("glGetBufferParameteri64v")); flextglGetBufferPointerv = reinterpret_cast(loader.load("glGetBufferPointerv")); flextglGetFragDataLocation = reinterpret_cast(loader.load("glGetFragDataLocation")); flextglGetInteger64i_v = reinterpret_cast(loader.load("glGetInteger64i_v")); flextglGetInteger64v = reinterpret_cast(loader.load("glGetInteger64v")); flextglGetIntegeri_v = reinterpret_cast(loader.load("glGetIntegeri_v")); flextglGetInternalformativ = reinterpret_cast(loader.load("glGetInternalformativ")); flextglGetProgramBinary = reinterpret_cast(loader.load("glGetProgramBinary")); flextglGetQueryObjectuiv = reinterpret_cast(loader.load("glGetQueryObjectuiv")); flextglGetQueryiv = reinterpret_cast(loader.load("glGetQueryiv")); flextglGetSamplerParameterfv = reinterpret_cast(loader.load("glGetSamplerParameterfv")); flextglGetSamplerParameteriv = reinterpret_cast(loader.load("glGetSamplerParameteriv")); flextglGetStringi = reinterpret_cast(loader.load("glGetStringi")); flextglGetSynciv = reinterpret_cast(loader.load("glGetSynciv")); flextglGetTransformFeedbackVarying = reinterpret_cast(loader.load("glGetTransformFeedbackVarying")); flextglGetUniformBlockIndex = reinterpret_cast(loader.load("glGetUniformBlockIndex")); flextglGetUniformIndices = reinterpret_cast(loader.load("glGetUniformIndices")); flextglGetUniformuiv = reinterpret_cast(loader.load("glGetUniformuiv")); flextglGetVertexAttribIiv = reinterpret_cast(loader.load("glGetVertexAttribIiv")); flextglGetVertexAttribIuiv = reinterpret_cast(loader.load("glGetVertexAttribIuiv")); flextglInvalidateFramebuffer = reinterpret_cast(loader.load("glInvalidateFramebuffer")); flextglInvalidateSubFramebuffer = reinterpret_cast(loader.load("glInvalidateSubFramebuffer")); flextglIsQuery = reinterpret_cast(loader.load("glIsQuery")); flextglIsSampler = reinterpret_cast(loader.load("glIsSampler")); flextglIsSync = reinterpret_cast(loader.load("glIsSync")); flextglIsTransformFeedback = reinterpret_cast(loader.load("glIsTransformFeedback")); flextglIsVertexArray = reinterpret_cast(loader.load("glIsVertexArray")); flextglMapBufferRange = reinterpret_cast(loader.load("glMapBufferRange")); flextglPauseTransformFeedback = reinterpret_cast(loader.load("glPauseTransformFeedback")); flextglProgramBinary = reinterpret_cast(loader.load("glProgramBinary")); flextglProgramParameteri = reinterpret_cast(loader.load("glProgramParameteri")); flextglRenderbufferStorageMultisample = reinterpret_cast(loader.load("glRenderbufferStorageMultisample")); flextglResumeTransformFeedback = reinterpret_cast(loader.load("glResumeTransformFeedback")); flextglSamplerParameterf = reinterpret_cast(loader.load("glSamplerParameterf")); flextglSamplerParameterfv = reinterpret_cast(loader.load("glSamplerParameterfv")); flextglSamplerParameteri = reinterpret_cast(loader.load("glSamplerParameteri")); flextglSamplerParameteriv = reinterpret_cast(loader.load("glSamplerParameteriv")); flextglTexImage3D = reinterpret_cast(loader.load("glTexImage3D")); flextglTexStorage2D = reinterpret_cast(loader.load("glTexStorage2D")); flextglTexStorage3D = reinterpret_cast(loader.load("glTexStorage3D")); flextglTexSubImage3D = reinterpret_cast(loader.load("glTexSubImage3D")); flextglTransformFeedbackVaryings = reinterpret_cast(loader.load("glTransformFeedbackVaryings")); flextglUniform1ui = reinterpret_cast(loader.load("glUniform1ui")); flextglUniform1uiv = reinterpret_cast(loader.load("glUniform1uiv")); flextglUniform2ui = reinterpret_cast(loader.load("glUniform2ui")); flextglUniform2uiv = reinterpret_cast(loader.load("glUniform2uiv")); flextglUniform3ui = reinterpret_cast(loader.load("glUniform3ui")); flextglUniform3uiv = reinterpret_cast(loader.load("glUniform3uiv")); flextglUniform4ui = reinterpret_cast(loader.load("glUniform4ui")); flextglUniform4uiv = reinterpret_cast(loader.load("glUniform4uiv")); flextglUniformBlockBinding = reinterpret_cast(loader.load("glUniformBlockBinding")); flextglUniformMatrix2x3fv = reinterpret_cast(loader.load("glUniformMatrix2x3fv")); flextglUniformMatrix2x4fv = reinterpret_cast(loader.load("glUniformMatrix2x4fv")); flextglUniformMatrix3x2fv = reinterpret_cast(loader.load("glUniformMatrix3x2fv")); flextglUniformMatrix3x4fv = reinterpret_cast(loader.load("glUniformMatrix3x4fv")); flextglUniformMatrix4x2fv = reinterpret_cast(loader.load("glUniformMatrix4x2fv")); flextglUniformMatrix4x3fv = reinterpret_cast(loader.load("glUniformMatrix4x3fv")); flextglUnmapBuffer = reinterpret_cast(loader.load("glUnmapBuffer")); flextglVertexAttribDivisor = reinterpret_cast(loader.load("glVertexAttribDivisor")); flextglVertexAttribI4i = reinterpret_cast(loader.load("glVertexAttribI4i")); flextglVertexAttribI4iv = reinterpret_cast(loader.load("glVertexAttribI4iv")); flextglVertexAttribI4ui = reinterpret_cast(loader.load("glVertexAttribI4ui")); flextglVertexAttribI4uiv = reinterpret_cast(loader.load("glVertexAttribI4uiv")); flextglVertexAttribIPointer = reinterpret_cast(loader.load("glVertexAttribIPointer")); flextglWaitSync = reinterpret_cast(loader.load("glWaitSync")); /* GL_ES_VERSION_3_1 */ flextglActiveShaderProgram = reinterpret_cast(loader.load("glActiveShaderProgram")); flextglBindImageTexture = reinterpret_cast(loader.load("glBindImageTexture")); flextglBindProgramPipeline = reinterpret_cast(loader.load("glBindProgramPipeline")); flextglBindVertexBuffer = reinterpret_cast(loader.load("glBindVertexBuffer")); flextglCreateShaderProgramv = reinterpret_cast(loader.load("glCreateShaderProgramv")); flextglDeleteProgramPipelines = reinterpret_cast(loader.load("glDeleteProgramPipelines")); flextglDispatchCompute = reinterpret_cast(loader.load("glDispatchCompute")); flextglDispatchComputeIndirect = reinterpret_cast(loader.load("glDispatchComputeIndirect")); flextglDrawArraysIndirect = reinterpret_cast(loader.load("glDrawArraysIndirect")); flextglDrawElementsIndirect = reinterpret_cast(loader.load("glDrawElementsIndirect")); flextglFramebufferParameteri = reinterpret_cast(loader.load("glFramebufferParameteri")); flextglGenProgramPipelines = reinterpret_cast(loader.load("glGenProgramPipelines")); flextglGetBooleani_v = reinterpret_cast(loader.load("glGetBooleani_v")); flextglGetFramebufferParameteriv = reinterpret_cast(loader.load("glGetFramebufferParameteriv")); flextglGetMultisamplefv = reinterpret_cast(loader.load("glGetMultisamplefv")); flextglGetProgramInterfaceiv = reinterpret_cast(loader.load("glGetProgramInterfaceiv")); flextglGetProgramPipelineInfoLog = reinterpret_cast(loader.load("glGetProgramPipelineInfoLog")); flextglGetProgramPipelineiv = reinterpret_cast(loader.load("glGetProgramPipelineiv")); flextglGetProgramResourceIndex = reinterpret_cast(loader.load("glGetProgramResourceIndex")); flextglGetProgramResourceLocation = reinterpret_cast(loader.load("glGetProgramResourceLocation")); flextglGetProgramResourceName = reinterpret_cast(loader.load("glGetProgramResourceName")); flextglGetProgramResourceiv = reinterpret_cast(loader.load("glGetProgramResourceiv")); flextglIsProgramPipeline = reinterpret_cast(loader.load("glIsProgramPipeline")); flextglMemoryBarrier = reinterpret_cast(loader.load("glMemoryBarrier")); flextglMemoryBarrierByRegion = reinterpret_cast(loader.load("glMemoryBarrierByRegion")); flextglProgramUniform1f = reinterpret_cast(loader.load("glProgramUniform1f")); flextglProgramUniform1fv = reinterpret_cast(loader.load("glProgramUniform1fv")); flextglProgramUniform1i = reinterpret_cast(loader.load("glProgramUniform1i")); flextglProgramUniform1iv = reinterpret_cast(loader.load("glProgramUniform1iv")); flextglProgramUniform1ui = reinterpret_cast(loader.load("glProgramUniform1ui")); flextglProgramUniform1uiv = reinterpret_cast(loader.load("glProgramUniform1uiv")); flextglProgramUniform2f = reinterpret_cast(loader.load("glProgramUniform2f")); flextglProgramUniform2fv = reinterpret_cast(loader.load("glProgramUniform2fv")); flextglProgramUniform2i = reinterpret_cast(loader.load("glProgramUniform2i")); flextglProgramUniform2iv = reinterpret_cast(loader.load("glProgramUniform2iv")); flextglProgramUniform2ui = reinterpret_cast(loader.load("glProgramUniform2ui")); flextglProgramUniform2uiv = reinterpret_cast(loader.load("glProgramUniform2uiv")); flextglProgramUniform3f = reinterpret_cast(loader.load("glProgramUniform3f")); flextglProgramUniform3fv = reinterpret_cast(loader.load("glProgramUniform3fv")); flextglProgramUniform3i = reinterpret_cast(loader.load("glProgramUniform3i")); flextglProgramUniform3iv = reinterpret_cast(loader.load("glProgramUniform3iv")); flextglProgramUniform3ui = reinterpret_cast(loader.load("glProgramUniform3ui")); flextglProgramUniform3uiv = reinterpret_cast(loader.load("glProgramUniform3uiv")); flextglProgramUniform4f = reinterpret_cast(loader.load("glProgramUniform4f")); flextglProgramUniform4fv = reinterpret_cast(loader.load("glProgramUniform4fv")); flextglProgramUniform4i = reinterpret_cast(loader.load("glProgramUniform4i")); flextglProgramUniform4iv = reinterpret_cast(loader.load("glProgramUniform4iv")); flextglProgramUniform4ui = reinterpret_cast(loader.load("glProgramUniform4ui")); flextglProgramUniform4uiv = reinterpret_cast(loader.load("glProgramUniform4uiv")); flextglProgramUniformMatrix2fv = reinterpret_cast(loader.load("glProgramUniformMatrix2fv")); flextglProgramUniformMatrix2x3fv = reinterpret_cast(loader.load("glProgramUniformMatrix2x3fv")); flextglProgramUniformMatrix2x4fv = reinterpret_cast(loader.load("glProgramUniformMatrix2x4fv")); flextglProgramUniformMatrix3fv = reinterpret_cast(loader.load("glProgramUniformMatrix3fv")); flextglProgramUniformMatrix3x2fv = reinterpret_cast(loader.load("glProgramUniformMatrix3x2fv")); flextglProgramUniformMatrix3x4fv = reinterpret_cast(loader.load("glProgramUniformMatrix3x4fv")); flextglProgramUniformMatrix4fv = reinterpret_cast(loader.load("glProgramUniformMatrix4fv")); flextglProgramUniformMatrix4x2fv = reinterpret_cast(loader.load("glProgramUniformMatrix4x2fv")); flextglProgramUniformMatrix4x3fv = reinterpret_cast(loader.load("glProgramUniformMatrix4x3fv")); flextglSampleMaski = reinterpret_cast(loader.load("glSampleMaski")); flextglTexStorage2DMultisample = reinterpret_cast(loader.load("glTexStorage2DMultisample")); flextglUseProgramStages = reinterpret_cast(loader.load("glUseProgramStages")); flextglValidateProgramPipeline = reinterpret_cast(loader.load("glValidateProgramPipeline")); flextglVertexAttribBinding = reinterpret_cast(loader.load("glVertexAttribBinding")); flextglVertexAttribFormat = reinterpret_cast(loader.load("glVertexAttribFormat")); flextglVertexAttribIFormat = reinterpret_cast(loader.load("glVertexAttribIFormat")); flextglVertexBindingDivisor = reinterpret_cast(loader.load("glVertexBindingDivisor")); /* GL_ES_VERSION_3_2 */ flextglBlendBarrier = reinterpret_cast(loader.load("glBlendBarrier")); flextglBlendEquationSeparatei = reinterpret_cast(loader.load("glBlendEquationSeparatei")); flextglBlendEquationi = reinterpret_cast(loader.load("glBlendEquationi")); flextglBlendFuncSeparatei = reinterpret_cast(loader.load("glBlendFuncSeparatei")); flextglBlendFunci = reinterpret_cast(loader.load("glBlendFunci")); flextglColorMaski = reinterpret_cast(loader.load("glColorMaski")); flextglCopyImageSubData = reinterpret_cast(loader.load("glCopyImageSubData")); flextglDebugMessageCallback = reinterpret_cast(loader.load("glDebugMessageCallback")); flextglDebugMessageControl = reinterpret_cast(loader.load("glDebugMessageControl")); flextglDebugMessageInsert = reinterpret_cast(loader.load("glDebugMessageInsert")); flextglDisablei = reinterpret_cast(loader.load("glDisablei")); flextglDrawElementsBaseVertex = reinterpret_cast(loader.load("glDrawElementsBaseVertex")); flextglDrawElementsInstancedBaseVertex = reinterpret_cast(loader.load("glDrawElementsInstancedBaseVertex")); flextglDrawRangeElementsBaseVertex = reinterpret_cast(loader.load("glDrawRangeElementsBaseVertex")); flextglEnablei = reinterpret_cast(loader.load("glEnablei")); flextglFramebufferTexture = reinterpret_cast(loader.load("glFramebufferTexture")); flextglGetDebugMessageLog = reinterpret_cast(loader.load("glGetDebugMessageLog")); flextglGetGraphicsResetStatus = reinterpret_cast(loader.load("glGetGraphicsResetStatus")); flextglGetObjectLabel = reinterpret_cast(loader.load("glGetObjectLabel")); flextglGetObjectPtrLabel = reinterpret_cast(loader.load("glGetObjectPtrLabel")); flextglGetPointerv = reinterpret_cast(loader.load("glGetPointerv")); flextglGetSamplerParameterIiv = reinterpret_cast(loader.load("glGetSamplerParameterIiv")); flextglGetSamplerParameterIuiv = reinterpret_cast(loader.load("glGetSamplerParameterIuiv")); flextglGetTexParameterIiv = reinterpret_cast(loader.load("glGetTexParameterIiv")); flextglGetTexParameterIuiv = reinterpret_cast(loader.load("glGetTexParameterIuiv")); flextglGetnUniformfv = reinterpret_cast(loader.load("glGetnUniformfv")); flextglGetnUniformiv = reinterpret_cast(loader.load("glGetnUniformiv")); flextglGetnUniformuiv = reinterpret_cast(loader.load("glGetnUniformuiv")); flextglIsEnabledi = reinterpret_cast(loader.load("glIsEnabledi")); flextglMinSampleShading = reinterpret_cast(loader.load("glMinSampleShading")); flextglObjectLabel = reinterpret_cast(loader.load("glObjectLabel")); flextglObjectPtrLabel = reinterpret_cast(loader.load("glObjectPtrLabel")); flextglPatchParameteri = reinterpret_cast(loader.load("glPatchParameteri")); flextglPopDebugGroup = reinterpret_cast(loader.load("glPopDebugGroup")); flextglPrimitiveBoundingBox = reinterpret_cast(loader.load("glPrimitiveBoundingBox")); flextglPushDebugGroup = reinterpret_cast(loader.load("glPushDebugGroup")); flextglReadnPixels = reinterpret_cast(loader.load("glReadnPixels")); flextglSamplerParameterIiv = reinterpret_cast(loader.load("glSamplerParameterIiv")); flextglSamplerParameterIuiv = reinterpret_cast(loader.load("glSamplerParameterIuiv")); flextglTexBuffer = reinterpret_cast(loader.load("glTexBuffer")); flextglTexBufferRange = reinterpret_cast(loader.load("glTexBufferRange")); flextglTexParameterIiv = reinterpret_cast(loader.load("glTexParameterIiv")); flextglTexParameterIuiv = reinterpret_cast(loader.load("glTexParameterIuiv")); flextglTexStorage3DMultisample = reinterpret_cast(loader.load("glTexStorage3DMultisample")); /* GL_EXT_copy_image */ flextglCopyImageSubDataEXT = reinterpret_cast(loader.load("glCopyImageSubDataEXT")); /* GL_EXT_debug_label */ flextglGetObjectLabelEXT = reinterpret_cast(loader.load("glGetObjectLabelEXT")); flextglLabelObjectEXT = reinterpret_cast(loader.load("glLabelObjectEXT")); /* GL_EXT_debug_marker */ flextglInsertEventMarkerEXT = reinterpret_cast(loader.load("glInsertEventMarkerEXT")); flextglPopGroupMarkerEXT = reinterpret_cast(loader.load("glPopGroupMarkerEXT")); flextglPushGroupMarkerEXT = reinterpret_cast(loader.load("glPushGroupMarkerEXT")); /* GL_EXT_disjoint_timer_query */ flextglBeginQueryEXT = reinterpret_cast(loader.load("glBeginQueryEXT")); flextglDeleteQueriesEXT = reinterpret_cast(loader.load("glDeleteQueriesEXT")); flextglEndQueryEXT = reinterpret_cast(loader.load("glEndQueryEXT")); flextglGenQueriesEXT = reinterpret_cast(loader.load("glGenQueriesEXT")); flextglGetQueryObjecti64vEXT = reinterpret_cast(loader.load("glGetQueryObjecti64vEXT")); flextglGetQueryObjectivEXT = reinterpret_cast(loader.load("glGetQueryObjectivEXT")); flextglGetQueryObjectui64vEXT = reinterpret_cast(loader.load("glGetQueryObjectui64vEXT")); flextglGetQueryObjectuivEXT = reinterpret_cast(loader.load("glGetQueryObjectuivEXT")); flextglGetQueryivEXT = reinterpret_cast(loader.load("glGetQueryivEXT")); flextglIsQueryEXT = reinterpret_cast(loader.load("glIsQueryEXT")); flextglQueryCounterEXT = reinterpret_cast(loader.load("glQueryCounterEXT")); /* GL_EXT_draw_buffers_indexed */ flextglBlendEquationSeparateiEXT = reinterpret_cast(loader.load("glBlendEquationSeparateiEXT")); flextglBlendEquationiEXT = reinterpret_cast(loader.load("glBlendEquationiEXT")); flextglBlendFuncSeparateiEXT = reinterpret_cast(loader.load("glBlendFuncSeparateiEXT")); flextglBlendFunciEXT = reinterpret_cast(loader.load("glBlendFunciEXT")); flextglColorMaskiEXT = reinterpret_cast(loader.load("glColorMaskiEXT")); flextglDisableiEXT = reinterpret_cast(loader.load("glDisableiEXT")); flextglEnableiEXT = reinterpret_cast(loader.load("glEnableiEXT")); flextglIsEnablediEXT = reinterpret_cast(loader.load("glIsEnablediEXT")); /* GL_EXT_geometry_shader */ flextglFramebufferTextureEXT = reinterpret_cast(loader.load("glFramebufferTextureEXT")); /* GL_EXT_multi_draw_arrays */ flextglMultiDrawArraysEXT = reinterpret_cast(loader.load("glMultiDrawArraysEXT")); flextglMultiDrawElementsEXT = reinterpret_cast(loader.load("glMultiDrawElementsEXT")); /* GL_EXT_multisampled_render_to_texture */ flextglFramebufferTexture2DMultisampleEXT = reinterpret_cast(loader.load("glFramebufferTexture2DMultisampleEXT")); flextglRenderbufferStorageMultisampleEXT = reinterpret_cast(loader.load("glRenderbufferStorageMultisampleEXT")); /* GL_EXT_polygon_offset_clamp */ flextglPolygonOffsetClampEXT = reinterpret_cast(loader.load("glPolygonOffsetClampEXT")); /* GL_EXT_primitive_bounding_box */ flextglPrimitiveBoundingBoxEXT = reinterpret_cast(loader.load("glPrimitiveBoundingBoxEXT")); /* GL_EXT_robustness */ flextglGetGraphicsResetStatusEXT = reinterpret_cast(loader.load("glGetGraphicsResetStatusEXT")); flextglGetnUniformfvEXT = reinterpret_cast(loader.load("glGetnUniformfvEXT")); flextglGetnUniformivEXT = reinterpret_cast(loader.load("glGetnUniformivEXT")); flextglReadnPixelsEXT = reinterpret_cast(loader.load("glReadnPixelsEXT")); /* GL_EXT_separate_shader_objects */ flextglActiveShaderProgramEXT = reinterpret_cast(loader.load("glActiveShaderProgramEXT")); flextglBindProgramPipelineEXT = reinterpret_cast(loader.load("glBindProgramPipelineEXT")); flextglCreateShaderProgramvEXT = reinterpret_cast(loader.load("glCreateShaderProgramvEXT")); flextglDeleteProgramPipelinesEXT = reinterpret_cast(loader.load("glDeleteProgramPipelinesEXT")); flextglGenProgramPipelinesEXT = reinterpret_cast(loader.load("glGenProgramPipelinesEXT")); flextglGetProgramPipelineInfoLogEXT = reinterpret_cast(loader.load("glGetProgramPipelineInfoLogEXT")); flextglGetProgramPipelineivEXT = reinterpret_cast(loader.load("glGetProgramPipelineivEXT")); flextglIsProgramPipelineEXT = reinterpret_cast(loader.load("glIsProgramPipelineEXT")); flextglProgramParameteriEXT = reinterpret_cast(loader.load("glProgramParameteriEXT")); flextglProgramUniform1fEXT = reinterpret_cast(loader.load("glProgramUniform1fEXT")); flextglProgramUniform1fvEXT = reinterpret_cast(loader.load("glProgramUniform1fvEXT")); flextglProgramUniform1iEXT = reinterpret_cast(loader.load("glProgramUniform1iEXT")); flextglProgramUniform1ivEXT = reinterpret_cast(loader.load("glProgramUniform1ivEXT")); flextglProgramUniform1uiEXT = reinterpret_cast(loader.load("glProgramUniform1uiEXT")); flextglProgramUniform1uivEXT = reinterpret_cast(loader.load("glProgramUniform1uivEXT")); flextglProgramUniform2fEXT = reinterpret_cast(loader.load("glProgramUniform2fEXT")); flextglProgramUniform2fvEXT = reinterpret_cast(loader.load("glProgramUniform2fvEXT")); flextglProgramUniform2iEXT = reinterpret_cast(loader.load("glProgramUniform2iEXT")); flextglProgramUniform2ivEXT = reinterpret_cast(loader.load("glProgramUniform2ivEXT")); flextglProgramUniform2uiEXT = reinterpret_cast(loader.load("glProgramUniform2uiEXT")); flextglProgramUniform2uivEXT = reinterpret_cast(loader.load("glProgramUniform2uivEXT")); flextglProgramUniform3fEXT = reinterpret_cast(loader.load("glProgramUniform3fEXT")); flextglProgramUniform3fvEXT = reinterpret_cast(loader.load("glProgramUniform3fvEXT")); flextglProgramUniform3iEXT = reinterpret_cast(loader.load("glProgramUniform3iEXT")); flextglProgramUniform3ivEXT = reinterpret_cast(loader.load("glProgramUniform3ivEXT")); flextglProgramUniform3uiEXT = reinterpret_cast(loader.load("glProgramUniform3uiEXT")); flextglProgramUniform3uivEXT = reinterpret_cast(loader.load("glProgramUniform3uivEXT")); flextglProgramUniform4fEXT = reinterpret_cast(loader.load("glProgramUniform4fEXT")); flextglProgramUniform4fvEXT = reinterpret_cast(loader.load("glProgramUniform4fvEXT")); flextglProgramUniform4iEXT = reinterpret_cast(loader.load("glProgramUniform4iEXT")); flextglProgramUniform4ivEXT = reinterpret_cast(loader.load("glProgramUniform4ivEXT")); flextglProgramUniform4uiEXT = reinterpret_cast(loader.load("glProgramUniform4uiEXT")); flextglProgramUniform4uivEXT = reinterpret_cast(loader.load("glProgramUniform4uivEXT")); flextglProgramUniformMatrix2fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix2fvEXT")); flextglProgramUniformMatrix2x3fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix2x3fvEXT")); flextglProgramUniformMatrix2x4fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix2x4fvEXT")); flextglProgramUniformMatrix3fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix3fvEXT")); flextglProgramUniformMatrix3x2fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix3x2fvEXT")); flextglProgramUniformMatrix3x4fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix3x4fvEXT")); flextglProgramUniformMatrix4fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix4fvEXT")); flextglProgramUniformMatrix4x2fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix4x2fvEXT")); flextglProgramUniformMatrix4x3fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix4x3fvEXT")); flextglUseProgramStagesEXT = reinterpret_cast(loader.load("glUseProgramStagesEXT")); flextglValidateProgramPipelineEXT = reinterpret_cast(loader.load("glValidateProgramPipelineEXT")); /* GL_EXT_tessellation_shader */ flextglPatchParameteriEXT = reinterpret_cast(loader.load("glPatchParameteriEXT")); /* GL_EXT_texture_border_clamp */ flextglGetSamplerParameterIivEXT = reinterpret_cast(loader.load("glGetSamplerParameterIivEXT")); flextglGetSamplerParameterIuivEXT = reinterpret_cast(loader.load("glGetSamplerParameterIuivEXT")); flextglGetTexParameterIivEXT = reinterpret_cast(loader.load("glGetTexParameterIivEXT")); flextglGetTexParameterIuivEXT = reinterpret_cast(loader.load("glGetTexParameterIuivEXT")); flextglSamplerParameterIivEXT = reinterpret_cast(loader.load("glSamplerParameterIivEXT")); flextglSamplerParameterIuivEXT = reinterpret_cast(loader.load("glSamplerParameterIuivEXT")); flextglTexParameterIivEXT = reinterpret_cast(loader.load("glTexParameterIivEXT")); flextglTexParameterIuivEXT = reinterpret_cast(loader.load("glTexParameterIuivEXT")); /* GL_EXT_texture_buffer */ flextglTexBufferEXT = reinterpret_cast(loader.load("glTexBufferEXT")); flextglTexBufferRangeEXT = reinterpret_cast(loader.load("glTexBufferRangeEXT")); /* GL_KHR_blend_equation_advanced */ flextglBlendBarrierKHR = reinterpret_cast(loader.load("glBlendBarrierKHR")); /* GL_KHR_debug */ flextglDebugMessageCallbackKHR = reinterpret_cast(loader.load("glDebugMessageCallbackKHR")); flextglDebugMessageControlKHR = reinterpret_cast(loader.load("glDebugMessageControlKHR")); flextglDebugMessageInsertKHR = reinterpret_cast(loader.load("glDebugMessageInsertKHR")); flextglGetDebugMessageLogKHR = reinterpret_cast(loader.load("glGetDebugMessageLogKHR")); flextglGetObjectLabelKHR = reinterpret_cast(loader.load("glGetObjectLabelKHR")); flextglGetObjectPtrLabelKHR = reinterpret_cast(loader.load("glGetObjectPtrLabelKHR")); flextglGetPointervKHR = reinterpret_cast(loader.load("glGetPointervKHR")); flextglObjectLabelKHR = reinterpret_cast(loader.load("glObjectLabelKHR")); flextglObjectPtrLabelKHR = reinterpret_cast(loader.load("glObjectPtrLabelKHR")); flextglPopDebugGroupKHR = reinterpret_cast(loader.load("glPopDebugGroupKHR")); flextglPushDebugGroupKHR = reinterpret_cast(loader.load("glPushDebugGroupKHR")); /* GL_KHR_robustness */ flextglGetGraphicsResetStatusKHR = reinterpret_cast(loader.load("glGetGraphicsResetStatusKHR")); flextglGetnUniformfvKHR = reinterpret_cast(loader.load("glGetnUniformfvKHR")); flextglGetnUniformivKHR = reinterpret_cast(loader.load("glGetnUniformivKHR")); flextglGetnUniformuivKHR = reinterpret_cast(loader.load("glGetnUniformuivKHR")); flextglReadnPixelsKHR = reinterpret_cast(loader.load("glReadnPixelsKHR")); /* GL_NV_polygon_mode */ flextglPolygonModeNV = reinterpret_cast(loader.load("glPolygonModeNV")); /* GL_OES_mapbuffer */ flextglGetBufferPointervOES = reinterpret_cast(loader.load("glGetBufferPointervOES")); flextglMapBufferOES = reinterpret_cast(loader.load("glMapBufferOES")); flextglUnmapBufferOES = reinterpret_cast(loader.load("glUnmapBufferOES")); /* GL_OES_sample_shading */ flextglMinSampleShadingOES = reinterpret_cast(loader.load("glMinSampleShadingOES")); /* GL_OES_texture_storage_multisample_2d_array */ flextglTexStorage3DMultisampleOES = reinterpret_cast(loader.load("glTexStorage3DMultisampleOES")); /* GL_OVR_multiview */ flextglFramebufferTextureMultiviewOVR = reinterpret_cast(loader.load("glFramebufferTextureMultiviewOVR")); }