/* This file is part of Magnum. Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 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 "flextGL.h" #include #include #include "Magnum/Platform/Implementation/OpenGLFunctionLoader.h" #ifdef MAGNUM_PLATFORM_USE_EGL #include #include #include #include "Magnum/GL/Context.h" #endif void flextGLInit(Magnum::GL::Context& context) { Magnum::Platform::Implementation::OpenGLFunctionLoader loader; #ifdef MAGNUM_PLATFORM_USE_EGL { /* EGL contexts on NVidia 390 drivers don't have correct statically linked GL 1.0 and 1.1 functions (such as glGetString()) and one has to retrieve them explicitly using eglGetProcAddress(). */ EGLDisplay display = eglGetCurrentDisplay(); const char* vendor = eglQueryString(display, EGL_VENDOR); if(std::strcmp(vendor, "NVIDIA") == 0 && !context.isDriverWorkaroundDisabled("nv-egl-incorrect-gl11-function-pointers")) { /* GL_VERSION_1_0 */ flextGL.BlendFunc = reinterpret_cast(loader.load("glBlendFunc")); flextGL.Clear = reinterpret_cast(loader.load("glClear")); flextGL.ClearColor = reinterpret_cast(loader.load("glClearColor")); flextGL.ClearDepth = reinterpret_cast(loader.load("glClearDepth")); flextGL.ClearStencil = reinterpret_cast(loader.load("glClearStencil")); flextGL.ColorMask = reinterpret_cast(loader.load("glColorMask")); flextGL.CullFace = reinterpret_cast(loader.load("glCullFace")); flextGL.DepthFunc = reinterpret_cast(loader.load("glDepthFunc")); flextGL.DepthMask = reinterpret_cast(loader.load("glDepthMask")); flextGL.DepthRange = reinterpret_cast(loader.load("glDepthRange")); flextGL.Disable = reinterpret_cast(loader.load("glDisable")); flextGL.DrawBuffer = reinterpret_cast(loader.load("glDrawBuffer")); flextGL.Enable = reinterpret_cast(loader.load("glEnable")); flextGL.Finish = reinterpret_cast(loader.load("glFinish")); flextGL.Flush = reinterpret_cast(loader.load("glFlush")); flextGL.FrontFace = reinterpret_cast(loader.load("glFrontFace")); flextGL.GetBooleanv = reinterpret_cast(loader.load("glGetBooleanv")); flextGL.GetDoublev = reinterpret_cast(loader.load("glGetDoublev")); flextGL.GetError = reinterpret_cast(loader.load("glGetError")); flextGL.GetFloatv = reinterpret_cast(loader.load("glGetFloatv")); flextGL.GetIntegerv = reinterpret_cast(loader.load("glGetIntegerv")); flextGL.GetString = reinterpret_cast(loader.load("glGetString")); flextGL.GetTexImage = reinterpret_cast(loader.load("glGetTexImage")); flextGL.GetTexLevelParameterfv = reinterpret_cast(loader.load("glGetTexLevelParameterfv")); flextGL.GetTexLevelParameteriv = reinterpret_cast(loader.load("glGetTexLevelParameteriv")); flextGL.GetTexParameterfv = reinterpret_cast(loader.load("glGetTexParameterfv")); flextGL.GetTexParameteriv = reinterpret_cast(loader.load("glGetTexParameteriv")); flextGL.Hint = reinterpret_cast(loader.load("glHint")); flextGL.IsEnabled = reinterpret_cast(loader.load("glIsEnabled")); flextGL.LineWidth = reinterpret_cast(loader.load("glLineWidth")); flextGL.LogicOp = reinterpret_cast(loader.load("glLogicOp")); flextGL.PixelStoref = reinterpret_cast(loader.load("glPixelStoref")); flextGL.PixelStorei = reinterpret_cast(loader.load("glPixelStorei")); flextGL.PointSize = reinterpret_cast(loader.load("glPointSize")); flextGL.PolygonMode = reinterpret_cast(loader.load("glPolygonMode")); flextGL.ReadBuffer = reinterpret_cast(loader.load("glReadBuffer")); flextGL.ReadPixels = reinterpret_cast(loader.load("glReadPixels")); flextGL.Scissor = reinterpret_cast(loader.load("glScissor")); flextGL.StencilFunc = reinterpret_cast(loader.load("glStencilFunc")); flextGL.StencilMask = reinterpret_cast(loader.load("glStencilMask")); flextGL.StencilOp = reinterpret_cast(loader.load("glStencilOp")); flextGL.TexImage1D = reinterpret_cast(loader.load("glTexImage1D")); flextGL.TexImage2D = reinterpret_cast(loader.load("glTexImage2D")); flextGL.TexParameterf = reinterpret_cast(loader.load("glTexParameterf")); flextGL.TexParameterfv = reinterpret_cast(loader.load("glTexParameterfv")); flextGL.TexParameteri = reinterpret_cast(loader.load("glTexParameteri")); flextGL.TexParameteriv = reinterpret_cast(loader.load("glTexParameteriv")); flextGL.Viewport = reinterpret_cast(loader.load("glViewport")); /* GL_VERSION_1_1 */ flextGL.BindTexture = reinterpret_cast(loader.load("glBindTexture")); flextGL.CopyTexImage1D = reinterpret_cast(loader.load("glCopyTexImage1D")); flextGL.CopyTexImage2D = reinterpret_cast(loader.load("glCopyTexImage2D")); flextGL.CopyTexSubImage1D = reinterpret_cast(loader.load("glCopyTexSubImage1D")); flextGL.CopyTexSubImage2D = reinterpret_cast(loader.load("glCopyTexSubImage2D")); flextGL.DeleteTextures = reinterpret_cast(loader.load("glDeleteTextures")); flextGL.DrawArrays = reinterpret_cast(loader.load("glDrawArrays")); flextGL.DrawElements = reinterpret_cast(loader.load("glDrawElements")); flextGL.GenTextures = reinterpret_cast(loader.load("glGenTextures")); flextGL.IsTexture = reinterpret_cast(loader.load("glIsTexture")); flextGL.PolygonOffset = reinterpret_cast(loader.load("glPolygonOffset")); flextGL.TexSubImage1D = reinterpret_cast(loader.load("glTexSubImage1D")); flextGL.TexSubImage2D = reinterpret_cast(loader.load("glTexSubImage2D")); } } #else static_cast(context); #endif /* GL_AMD_sample_positions */ flextGL.SetMultisamplefvAMD = reinterpret_cast(loader.load("glSetMultisamplefvAMD")); /* GL_ARB_ES3_2_compatibility */ flextGL.PrimitiveBoundingBoxARB = reinterpret_cast(loader.load("glPrimitiveBoundingBoxARB")); /* GL_ARB_bindless_texture */ flextGL.GetImageHandleARB = reinterpret_cast(loader.load("glGetImageHandleARB")); flextGL.GetTextureHandleARB = reinterpret_cast(loader.load("glGetTextureHandleARB")); flextGL.GetTextureSamplerHandleARB = reinterpret_cast(loader.load("glGetTextureSamplerHandleARB")); flextGL.GetVertexAttribLui64vARB = reinterpret_cast(loader.load("glGetVertexAttribLui64vARB")); flextGL.IsImageHandleResidentARB = reinterpret_cast(loader.load("glIsImageHandleResidentARB")); flextGL.IsTextureHandleResidentARB = reinterpret_cast(loader.load("glIsTextureHandleResidentARB")); flextGL.MakeImageHandleNonResidentARB = reinterpret_cast(loader.load("glMakeImageHandleNonResidentARB")); flextGL.MakeImageHandleResidentARB = reinterpret_cast(loader.load("glMakeImageHandleResidentARB")); flextGL.MakeTextureHandleNonResidentARB = reinterpret_cast(loader.load("glMakeTextureHandleNonResidentARB")); flextGL.MakeTextureHandleResidentARB = reinterpret_cast(loader.load("glMakeTextureHandleResidentARB")); flextGL.ProgramUniformHandleui64ARB = reinterpret_cast(loader.load("glProgramUniformHandleui64ARB")); flextGL.ProgramUniformHandleui64vARB = reinterpret_cast(loader.load("glProgramUniformHandleui64vARB")); flextGL.UniformHandleui64ARB = reinterpret_cast(loader.load("glUniformHandleui64ARB")); flextGL.UniformHandleui64vARB = reinterpret_cast(loader.load("glUniformHandleui64vARB")); flextGL.VertexAttribL1ui64ARB = reinterpret_cast(loader.load("glVertexAttribL1ui64ARB")); flextGL.VertexAttribL1ui64vARB = reinterpret_cast(loader.load("glVertexAttribL1ui64vARB")); /* GL_ARB_compute_variable_group_size */ flextGL.DispatchComputeGroupSizeARB = reinterpret_cast(loader.load("glDispatchComputeGroupSizeARB")); /* GL_ARB_robustness */ flextGL.GetGraphicsResetStatusARB = reinterpret_cast(loader.load("glGetGraphicsResetStatusARB")); flextGL.GetnCompressedTexImageARB = reinterpret_cast(loader.load("glGetnCompressedTexImageARB")); flextGL.GetnTexImageARB = reinterpret_cast(loader.load("glGetnTexImageARB")); flextGL.GetnUniformdvARB = reinterpret_cast(loader.load("glGetnUniformdvARB")); flextGL.GetnUniformfvARB = reinterpret_cast(loader.load("glGetnUniformfvARB")); flextGL.GetnUniformivARB = reinterpret_cast(loader.load("glGetnUniformivARB")); flextGL.GetnUniformuivARB = reinterpret_cast(loader.load("glGetnUniformuivARB")); flextGL.ReadnPixelsARB = reinterpret_cast(loader.load("glReadnPixelsARB")); /* GL_ARB_sample_locations */ flextGL.EvaluateDepthValuesARB = reinterpret_cast(loader.load("glEvaluateDepthValuesARB")); flextGL.FramebufferSampleLocationsfvARB = reinterpret_cast(loader.load("glFramebufferSampleLocationsfvARB")); flextGL.NamedFramebufferSampleLocationsfvARB = reinterpret_cast(loader.load("glNamedFramebufferSampleLocationsfvARB")); /* GL_ARB_sparse_buffer */ flextGL.BufferPageCommitmentARB = reinterpret_cast(loader.load("glBufferPageCommitmentARB")); flextGL.NamedBufferPageCommitmentARB = reinterpret_cast(loader.load("glNamedBufferPageCommitmentARB")); flextGL.NamedBufferPageCommitmentEXT = reinterpret_cast(loader.load("glNamedBufferPageCommitmentEXT")); /* GL_ARB_sparse_texture */ flextGL.TexPageCommitmentARB = reinterpret_cast(loader.load("glTexPageCommitmentARB")); /* GL_EXT_debug_label */ flextGL.GetObjectLabelEXT = reinterpret_cast(loader.load("glGetObjectLabelEXT")); flextGL.LabelObjectEXT = reinterpret_cast(loader.load("glLabelObjectEXT")); /* GL_EXT_debug_marker */ flextGL.InsertEventMarkerEXT = reinterpret_cast(loader.load("glInsertEventMarkerEXT")); flextGL.PopGroupMarkerEXT = reinterpret_cast(loader.load("glPopGroupMarkerEXT")); flextGL.PushGroupMarkerEXT = reinterpret_cast(loader.load("glPushGroupMarkerEXT")); /* GL_GREMEDY_string_marker */ flextGL.StringMarkerGREMEDY = reinterpret_cast(loader.load("glStringMarkerGREMEDY")); /* GL_KHR_blend_equation_advanced */ flextGL.BlendBarrierKHR = reinterpret_cast(loader.load("glBlendBarrierKHR")); /* GL_NV_sample_locations */ flextGL.FramebufferSampleLocationsfvNV = reinterpret_cast(loader.load("glFramebufferSampleLocationsfvNV")); flextGL.NamedFramebufferSampleLocationsfvNV = reinterpret_cast(loader.load("glNamedFramebufferSampleLocationsfvNV")); flextGL.ResolveDepthValuesNV = reinterpret_cast(loader.load("glResolveDepthValuesNV")); /* GL_OVR_multiview */ flextGL.FramebufferTextureMultiviewOVR = reinterpret_cast(loader.load("glFramebufferTextureMultiviewOVR")); /* GL_VERSION_1_2 */ flextGL.CopyTexSubImage3D = reinterpret_cast(loader.load("glCopyTexSubImage3D")); flextGL.DrawRangeElements = reinterpret_cast(loader.load("glDrawRangeElements")); flextGL.TexImage3D = reinterpret_cast(loader.load("glTexImage3D")); flextGL.TexSubImage3D = reinterpret_cast(loader.load("glTexSubImage3D")); /* GL_VERSION_1_3 */ flextGL.ActiveTexture = reinterpret_cast(loader.load("glActiveTexture")); flextGL.CompressedTexImage1D = reinterpret_cast(loader.load("glCompressedTexImage1D")); flextGL.CompressedTexImage2D = reinterpret_cast(loader.load("glCompressedTexImage2D")); flextGL.CompressedTexImage3D = reinterpret_cast(loader.load("glCompressedTexImage3D")); flextGL.CompressedTexSubImage1D = reinterpret_cast(loader.load("glCompressedTexSubImage1D")); flextGL.CompressedTexSubImage2D = reinterpret_cast(loader.load("glCompressedTexSubImage2D")); flextGL.CompressedTexSubImage3D = reinterpret_cast(loader.load("glCompressedTexSubImage3D")); flextGL.GetCompressedTexImage = reinterpret_cast(loader.load("glGetCompressedTexImage")); flextGL.SampleCoverage = reinterpret_cast(loader.load("glSampleCoverage")); /* GL_VERSION_1_4 */ flextGL.BlendColor = reinterpret_cast(loader.load("glBlendColor")); flextGL.BlendEquation = reinterpret_cast(loader.load("glBlendEquation")); flextGL.BlendFuncSeparate = reinterpret_cast(loader.load("glBlendFuncSeparate")); flextGL.MultiDrawArrays = reinterpret_cast(loader.load("glMultiDrawArrays")); flextGL.MultiDrawElements = reinterpret_cast(loader.load("glMultiDrawElements")); flextGL.PointParameterf = reinterpret_cast(loader.load("glPointParameterf")); flextGL.PointParameterfv = reinterpret_cast(loader.load("glPointParameterfv")); flextGL.PointParameteri = reinterpret_cast(loader.load("glPointParameteri")); flextGL.PointParameteriv = reinterpret_cast(loader.load("glPointParameteriv")); /* GL_VERSION_1_5 */ flextGL.BeginQuery = reinterpret_cast(loader.load("glBeginQuery")); flextGL.BindBuffer = reinterpret_cast(loader.load("glBindBuffer")); flextGL.BufferData = reinterpret_cast(loader.load("glBufferData")); flextGL.BufferSubData = reinterpret_cast(loader.load("glBufferSubData")); flextGL.DeleteBuffers = reinterpret_cast(loader.load("glDeleteBuffers")); flextGL.DeleteQueries = reinterpret_cast(loader.load("glDeleteQueries")); flextGL.EndQuery = reinterpret_cast(loader.load("glEndQuery")); flextGL.GenBuffers = reinterpret_cast(loader.load("glGenBuffers")); flextGL.GenQueries = reinterpret_cast(loader.load("glGenQueries")); flextGL.GetBufferParameteriv = reinterpret_cast(loader.load("glGetBufferParameteriv")); flextGL.GetBufferPointerv = reinterpret_cast(loader.load("glGetBufferPointerv")); flextGL.GetBufferSubData = reinterpret_cast(loader.load("glGetBufferSubData")); flextGL.GetQueryObjectiv = reinterpret_cast(loader.load("glGetQueryObjectiv")); flextGL.GetQueryObjectuiv = reinterpret_cast(loader.load("glGetQueryObjectuiv")); flextGL.GetQueryiv = reinterpret_cast(loader.load("glGetQueryiv")); flextGL.IsBuffer = reinterpret_cast(loader.load("glIsBuffer")); flextGL.IsQuery = reinterpret_cast(loader.load("glIsQuery")); flextGL.MapBuffer = reinterpret_cast(loader.load("glMapBuffer")); flextGL.UnmapBuffer = reinterpret_cast(loader.load("glUnmapBuffer")); /* GL_VERSION_2_0 */ flextGL.AttachShader = reinterpret_cast(loader.load("glAttachShader")); flextGL.BindAttribLocation = reinterpret_cast(loader.load("glBindAttribLocation")); flextGL.BlendEquationSeparate = reinterpret_cast(loader.load("glBlendEquationSeparate")); flextGL.CompileShader = reinterpret_cast(loader.load("glCompileShader")); flextGL.CreateProgram = reinterpret_cast(loader.load("glCreateProgram")); flextGL.CreateShader = reinterpret_cast(loader.load("glCreateShader")); flextGL.DeleteProgram = reinterpret_cast(loader.load("glDeleteProgram")); flextGL.DeleteShader = reinterpret_cast(loader.load("glDeleteShader")); flextGL.DetachShader = reinterpret_cast(loader.load("glDetachShader")); flextGL.DisableVertexAttribArray = reinterpret_cast(loader.load("glDisableVertexAttribArray")); flextGL.DrawBuffers = reinterpret_cast(loader.load("glDrawBuffers")); flextGL.EnableVertexAttribArray = reinterpret_cast(loader.load("glEnableVertexAttribArray")); flextGL.GetActiveAttrib = reinterpret_cast(loader.load("glGetActiveAttrib")); flextGL.GetActiveUniform = reinterpret_cast(loader.load("glGetActiveUniform")); flextGL.GetAttachedShaders = reinterpret_cast(loader.load("glGetAttachedShaders")); flextGL.GetAttribLocation = reinterpret_cast(loader.load("glGetAttribLocation")); flextGL.GetProgramInfoLog = reinterpret_cast(loader.load("glGetProgramInfoLog")); flextGL.GetProgramiv = reinterpret_cast(loader.load("glGetProgramiv")); flextGL.GetShaderInfoLog = reinterpret_cast(loader.load("glGetShaderInfoLog")); flextGL.GetShaderSource = reinterpret_cast(loader.load("glGetShaderSource")); flextGL.GetShaderiv = reinterpret_cast(loader.load("glGetShaderiv")); flextGL.GetUniformLocation = reinterpret_cast(loader.load("glGetUniformLocation")); flextGL.GetUniformfv = reinterpret_cast(loader.load("glGetUniformfv")); flextGL.GetUniformiv = reinterpret_cast(loader.load("glGetUniformiv")); flextGL.GetVertexAttribPointerv = reinterpret_cast(loader.load("glGetVertexAttribPointerv")); flextGL.GetVertexAttribdv = reinterpret_cast(loader.load("glGetVertexAttribdv")); flextGL.GetVertexAttribfv = reinterpret_cast(loader.load("glGetVertexAttribfv")); flextGL.GetVertexAttribiv = reinterpret_cast(loader.load("glGetVertexAttribiv")); flextGL.IsProgram = reinterpret_cast(loader.load("glIsProgram")); flextGL.IsShader = reinterpret_cast(loader.load("glIsShader")); flextGL.LinkProgram = reinterpret_cast(loader.load("glLinkProgram")); flextGL.ShaderSource = reinterpret_cast(loader.load("glShaderSource")); flextGL.StencilFuncSeparate = reinterpret_cast(loader.load("glStencilFuncSeparate")); flextGL.StencilMaskSeparate = reinterpret_cast(loader.load("glStencilMaskSeparate")); flextGL.StencilOpSeparate = reinterpret_cast(loader.load("glStencilOpSeparate")); flextGL.Uniform1f = reinterpret_cast(loader.load("glUniform1f")); flextGL.Uniform1fv = reinterpret_cast(loader.load("glUniform1fv")); flextGL.Uniform1i = reinterpret_cast(loader.load("glUniform1i")); flextGL.Uniform1iv = reinterpret_cast(loader.load("glUniform1iv")); flextGL.Uniform2f = reinterpret_cast(loader.load("glUniform2f")); flextGL.Uniform2fv = reinterpret_cast(loader.load("glUniform2fv")); flextGL.Uniform2i = reinterpret_cast(loader.load("glUniform2i")); flextGL.Uniform2iv = reinterpret_cast(loader.load("glUniform2iv")); flextGL.Uniform3f = reinterpret_cast(loader.load("glUniform3f")); flextGL.Uniform3fv = reinterpret_cast(loader.load("glUniform3fv")); flextGL.Uniform3i = reinterpret_cast(loader.load("glUniform3i")); flextGL.Uniform3iv = reinterpret_cast(loader.load("glUniform3iv")); flextGL.Uniform4f = reinterpret_cast(loader.load("glUniform4f")); flextGL.Uniform4fv = reinterpret_cast(loader.load("glUniform4fv")); flextGL.Uniform4i = reinterpret_cast(loader.load("glUniform4i")); flextGL.Uniform4iv = reinterpret_cast(loader.load("glUniform4iv")); flextGL.UniformMatrix2fv = reinterpret_cast(loader.load("glUniformMatrix2fv")); flextGL.UniformMatrix3fv = reinterpret_cast(loader.load("glUniformMatrix3fv")); flextGL.UniformMatrix4fv = reinterpret_cast(loader.load("glUniformMatrix4fv")); flextGL.UseProgram = reinterpret_cast(loader.load("glUseProgram")); flextGL.ValidateProgram = reinterpret_cast(loader.load("glValidateProgram")); flextGL.VertexAttrib1d = reinterpret_cast(loader.load("glVertexAttrib1d")); flextGL.VertexAttrib1dv = reinterpret_cast(loader.load("glVertexAttrib1dv")); flextGL.VertexAttrib1f = reinterpret_cast(loader.load("glVertexAttrib1f")); flextGL.VertexAttrib1fv = reinterpret_cast(loader.load("glVertexAttrib1fv")); flextGL.VertexAttrib1s = reinterpret_cast(loader.load("glVertexAttrib1s")); flextGL.VertexAttrib1sv = reinterpret_cast(loader.load("glVertexAttrib1sv")); flextGL.VertexAttrib2d = reinterpret_cast(loader.load("glVertexAttrib2d")); flextGL.VertexAttrib2dv = reinterpret_cast(loader.load("glVertexAttrib2dv")); flextGL.VertexAttrib2f = reinterpret_cast(loader.load("glVertexAttrib2f")); flextGL.VertexAttrib2fv = reinterpret_cast(loader.load("glVertexAttrib2fv")); flextGL.VertexAttrib2s = reinterpret_cast(loader.load("glVertexAttrib2s")); flextGL.VertexAttrib2sv = reinterpret_cast(loader.load("glVertexAttrib2sv")); flextGL.VertexAttrib3d = reinterpret_cast(loader.load("glVertexAttrib3d")); flextGL.VertexAttrib3dv = reinterpret_cast(loader.load("glVertexAttrib3dv")); flextGL.VertexAttrib3f = reinterpret_cast(loader.load("glVertexAttrib3f")); flextGL.VertexAttrib3fv = reinterpret_cast(loader.load("glVertexAttrib3fv")); flextGL.VertexAttrib3s = reinterpret_cast(loader.load("glVertexAttrib3s")); flextGL.VertexAttrib3sv = reinterpret_cast(loader.load("glVertexAttrib3sv")); flextGL.VertexAttrib4Nbv = reinterpret_cast(loader.load("glVertexAttrib4Nbv")); flextGL.VertexAttrib4Niv = reinterpret_cast(loader.load("glVertexAttrib4Niv")); flextGL.VertexAttrib4Nsv = reinterpret_cast(loader.load("glVertexAttrib4Nsv")); flextGL.VertexAttrib4Nub = reinterpret_cast(loader.load("glVertexAttrib4Nub")); flextGL.VertexAttrib4Nubv = reinterpret_cast(loader.load("glVertexAttrib4Nubv")); flextGL.VertexAttrib4Nuiv = reinterpret_cast(loader.load("glVertexAttrib4Nuiv")); flextGL.VertexAttrib4Nusv = reinterpret_cast(loader.load("glVertexAttrib4Nusv")); flextGL.VertexAttrib4bv = reinterpret_cast(loader.load("glVertexAttrib4bv")); flextGL.VertexAttrib4d = reinterpret_cast(loader.load("glVertexAttrib4d")); flextGL.VertexAttrib4dv = reinterpret_cast(loader.load("glVertexAttrib4dv")); flextGL.VertexAttrib4f = reinterpret_cast(loader.load("glVertexAttrib4f")); flextGL.VertexAttrib4fv = reinterpret_cast(loader.load("glVertexAttrib4fv")); flextGL.VertexAttrib4iv = reinterpret_cast(loader.load("glVertexAttrib4iv")); flextGL.VertexAttrib4s = reinterpret_cast(loader.load("glVertexAttrib4s")); flextGL.VertexAttrib4sv = reinterpret_cast(loader.load("glVertexAttrib4sv")); flextGL.VertexAttrib4ubv = reinterpret_cast(loader.load("glVertexAttrib4ubv")); flextGL.VertexAttrib4uiv = reinterpret_cast(loader.load("glVertexAttrib4uiv")); flextGL.VertexAttrib4usv = reinterpret_cast(loader.load("glVertexAttrib4usv")); flextGL.VertexAttribPointer = reinterpret_cast(loader.load("glVertexAttribPointer")); /* GL_VERSION_2_1 */ flextGL.UniformMatrix2x3fv = reinterpret_cast(loader.load("glUniformMatrix2x3fv")); flextGL.UniformMatrix2x4fv = reinterpret_cast(loader.load("glUniformMatrix2x4fv")); flextGL.UniformMatrix3x2fv = reinterpret_cast(loader.load("glUniformMatrix3x2fv")); flextGL.UniformMatrix3x4fv = reinterpret_cast(loader.load("glUniformMatrix3x4fv")); flextGL.UniformMatrix4x2fv = reinterpret_cast(loader.load("glUniformMatrix4x2fv")); flextGL.UniformMatrix4x3fv = reinterpret_cast(loader.load("glUniformMatrix4x3fv")); /* GL_VERSION_3_0 */ flextGL.BeginConditionalRender = reinterpret_cast(loader.load("glBeginConditionalRender")); flextGL.BeginTransformFeedback = reinterpret_cast(loader.load("glBeginTransformFeedback")); flextGL.BindBufferBase = reinterpret_cast(loader.load("glBindBufferBase")); flextGL.BindBufferRange = reinterpret_cast(loader.load("glBindBufferRange")); flextGL.BindFragDataLocation = reinterpret_cast(loader.load("glBindFragDataLocation")); flextGL.BindFramebuffer = reinterpret_cast(loader.load("glBindFramebuffer")); flextGL.BindRenderbuffer = reinterpret_cast(loader.load("glBindRenderbuffer")); flextGL.BindVertexArray = reinterpret_cast(loader.load("glBindVertexArray")); flextGL.BlitFramebuffer = reinterpret_cast(loader.load("glBlitFramebuffer")); flextGL.CheckFramebufferStatus = reinterpret_cast(loader.load("glCheckFramebufferStatus")); flextGL.ClampColor = reinterpret_cast(loader.load("glClampColor")); flextGL.ClearBufferfi = reinterpret_cast(loader.load("glClearBufferfi")); flextGL.ClearBufferfv = reinterpret_cast(loader.load("glClearBufferfv")); flextGL.ClearBufferiv = reinterpret_cast(loader.load("glClearBufferiv")); flextGL.ClearBufferuiv = reinterpret_cast(loader.load("glClearBufferuiv")); flextGL.ColorMaski = reinterpret_cast(loader.load("glColorMaski")); flextGL.DeleteFramebuffers = reinterpret_cast(loader.load("glDeleteFramebuffers")); flextGL.DeleteRenderbuffers = reinterpret_cast(loader.load("glDeleteRenderbuffers")); flextGL.DeleteVertexArrays = reinterpret_cast(loader.load("glDeleteVertexArrays")); flextGL.Disablei = reinterpret_cast(loader.load("glDisablei")); flextGL.Enablei = reinterpret_cast(loader.load("glEnablei")); flextGL.EndConditionalRender = reinterpret_cast(loader.load("glEndConditionalRender")); flextGL.EndTransformFeedback = reinterpret_cast(loader.load("glEndTransformFeedback")); flextGL.FlushMappedBufferRange = reinterpret_cast(loader.load("glFlushMappedBufferRange")); flextGL.FramebufferRenderbuffer = reinterpret_cast(loader.load("glFramebufferRenderbuffer")); flextGL.FramebufferTexture1D = reinterpret_cast(loader.load("glFramebufferTexture1D")); flextGL.FramebufferTexture2D = reinterpret_cast(loader.load("glFramebufferTexture2D")); flextGL.FramebufferTexture3D = reinterpret_cast(loader.load("glFramebufferTexture3D")); flextGL.FramebufferTextureLayer = reinterpret_cast(loader.load("glFramebufferTextureLayer")); flextGL.GenFramebuffers = reinterpret_cast(loader.load("glGenFramebuffers")); flextGL.GenRenderbuffers = reinterpret_cast(loader.load("glGenRenderbuffers")); flextGL.GenVertexArrays = reinterpret_cast(loader.load("glGenVertexArrays")); flextGL.GenerateMipmap = reinterpret_cast(loader.load("glGenerateMipmap")); flextGL.GetBooleani_v = reinterpret_cast(loader.load("glGetBooleani_v")); flextGL.GetFragDataLocation = reinterpret_cast(loader.load("glGetFragDataLocation")); flextGL.GetFramebufferAttachmentParameteriv = reinterpret_cast(loader.load("glGetFramebufferAttachmentParameteriv")); flextGL.GetIntegeri_v = reinterpret_cast(loader.load("glGetIntegeri_v")); flextGL.GetRenderbufferParameteriv = reinterpret_cast(loader.load("glGetRenderbufferParameteriv")); flextGL.GetStringi = reinterpret_cast(loader.load("glGetStringi")); flextGL.GetTexParameterIiv = reinterpret_cast(loader.load("glGetTexParameterIiv")); flextGL.GetTexParameterIuiv = reinterpret_cast(loader.load("glGetTexParameterIuiv")); flextGL.GetTransformFeedbackVarying = reinterpret_cast(loader.load("glGetTransformFeedbackVarying")); flextGL.GetUniformuiv = reinterpret_cast(loader.load("glGetUniformuiv")); flextGL.GetVertexAttribIiv = reinterpret_cast(loader.load("glGetVertexAttribIiv")); flextGL.GetVertexAttribIuiv = reinterpret_cast(loader.load("glGetVertexAttribIuiv")); flextGL.IsEnabledi = reinterpret_cast(loader.load("glIsEnabledi")); flextGL.IsFramebuffer = reinterpret_cast(loader.load("glIsFramebuffer")); flextGL.IsRenderbuffer = reinterpret_cast(loader.load("glIsRenderbuffer")); flextGL.IsVertexArray = reinterpret_cast(loader.load("glIsVertexArray")); flextGL.MapBufferRange = reinterpret_cast(loader.load("glMapBufferRange")); flextGL.RenderbufferStorage = reinterpret_cast(loader.load("glRenderbufferStorage")); flextGL.RenderbufferStorageMultisample = reinterpret_cast(loader.load("glRenderbufferStorageMultisample")); flextGL.TexParameterIiv = reinterpret_cast(loader.load("glTexParameterIiv")); flextGL.TexParameterIuiv = reinterpret_cast(loader.load("glTexParameterIuiv")); flextGL.TransformFeedbackVaryings = reinterpret_cast(loader.load("glTransformFeedbackVaryings")); flextGL.Uniform1ui = reinterpret_cast(loader.load("glUniform1ui")); flextGL.Uniform1uiv = reinterpret_cast(loader.load("glUniform1uiv")); flextGL.Uniform2ui = reinterpret_cast(loader.load("glUniform2ui")); flextGL.Uniform2uiv = reinterpret_cast(loader.load("glUniform2uiv")); flextGL.Uniform3ui = reinterpret_cast(loader.load("glUniform3ui")); flextGL.Uniform3uiv = reinterpret_cast(loader.load("glUniform3uiv")); flextGL.Uniform4ui = reinterpret_cast(loader.load("glUniform4ui")); flextGL.Uniform4uiv = reinterpret_cast(loader.load("glUniform4uiv")); flextGL.VertexAttribI1i = reinterpret_cast(loader.load("glVertexAttribI1i")); flextGL.VertexAttribI1iv = reinterpret_cast(loader.load("glVertexAttribI1iv")); flextGL.VertexAttribI1ui = reinterpret_cast(loader.load("glVertexAttribI1ui")); flextGL.VertexAttribI1uiv = reinterpret_cast(loader.load("glVertexAttribI1uiv")); flextGL.VertexAttribI2i = reinterpret_cast(loader.load("glVertexAttribI2i")); flextGL.VertexAttribI2iv = reinterpret_cast(loader.load("glVertexAttribI2iv")); flextGL.VertexAttribI2ui = reinterpret_cast(loader.load("glVertexAttribI2ui")); flextGL.VertexAttribI2uiv = reinterpret_cast(loader.load("glVertexAttribI2uiv")); flextGL.VertexAttribI3i = reinterpret_cast(loader.load("glVertexAttribI3i")); flextGL.VertexAttribI3iv = reinterpret_cast(loader.load("glVertexAttribI3iv")); flextGL.VertexAttribI3ui = reinterpret_cast(loader.load("glVertexAttribI3ui")); flextGL.VertexAttribI3uiv = reinterpret_cast(loader.load("glVertexAttribI3uiv")); flextGL.VertexAttribI4bv = reinterpret_cast(loader.load("glVertexAttribI4bv")); flextGL.VertexAttribI4i = reinterpret_cast(loader.load("glVertexAttribI4i")); flextGL.VertexAttribI4iv = reinterpret_cast(loader.load("glVertexAttribI4iv")); flextGL.VertexAttribI4sv = reinterpret_cast(loader.load("glVertexAttribI4sv")); flextGL.VertexAttribI4ubv = reinterpret_cast(loader.load("glVertexAttribI4ubv")); flextGL.VertexAttribI4ui = reinterpret_cast(loader.load("glVertexAttribI4ui")); flextGL.VertexAttribI4uiv = reinterpret_cast(loader.load("glVertexAttribI4uiv")); flextGL.VertexAttribI4usv = reinterpret_cast(loader.load("glVertexAttribI4usv")); flextGL.VertexAttribIPointer = reinterpret_cast(loader.load("glVertexAttribIPointer")); /* GL_VERSION_3_1 */ flextGL.CopyBufferSubData = reinterpret_cast(loader.load("glCopyBufferSubData")); flextGL.DrawArraysInstanced = reinterpret_cast(loader.load("glDrawArraysInstanced")); flextGL.DrawElementsInstanced = reinterpret_cast(loader.load("glDrawElementsInstanced")); flextGL.GetActiveUniformBlockName = reinterpret_cast(loader.load("glGetActiveUniformBlockName")); flextGL.GetActiveUniformBlockiv = reinterpret_cast(loader.load("glGetActiveUniformBlockiv")); flextGL.GetActiveUniformName = reinterpret_cast(loader.load("glGetActiveUniformName")); flextGL.GetActiveUniformsiv = reinterpret_cast(loader.load("glGetActiveUniformsiv")); flextGL.GetUniformBlockIndex = reinterpret_cast(loader.load("glGetUniformBlockIndex")); flextGL.GetUniformIndices = reinterpret_cast(loader.load("glGetUniformIndices")); flextGL.PrimitiveRestartIndex = reinterpret_cast(loader.load("glPrimitiveRestartIndex")); flextGL.TexBuffer = reinterpret_cast(loader.load("glTexBuffer")); flextGL.UniformBlockBinding = reinterpret_cast(loader.load("glUniformBlockBinding")); /* GL_VERSION_3_2 */ flextGL.ClientWaitSync = reinterpret_cast(loader.load("glClientWaitSync")); flextGL.DeleteSync = reinterpret_cast(loader.load("glDeleteSync")); flextGL.DrawElementsBaseVertex = reinterpret_cast(loader.load("glDrawElementsBaseVertex")); flextGL.DrawElementsInstancedBaseVertex = reinterpret_cast(loader.load("glDrawElementsInstancedBaseVertex")); flextGL.DrawRangeElementsBaseVertex = reinterpret_cast(loader.load("glDrawRangeElementsBaseVertex")); flextGL.FenceSync = reinterpret_cast(loader.load("glFenceSync")); flextGL.FramebufferTexture = reinterpret_cast(loader.load("glFramebufferTexture")); flextGL.GetBufferParameteri64v = reinterpret_cast(loader.load("glGetBufferParameteri64v")); flextGL.GetInteger64i_v = reinterpret_cast(loader.load("glGetInteger64i_v")); flextGL.GetInteger64v = reinterpret_cast(loader.load("glGetInteger64v")); flextGL.GetMultisamplefv = reinterpret_cast(loader.load("glGetMultisamplefv")); flextGL.GetSynciv = reinterpret_cast(loader.load("glGetSynciv")); flextGL.IsSync = reinterpret_cast(loader.load("glIsSync")); flextGL.MultiDrawElementsBaseVertex = reinterpret_cast(loader.load("glMultiDrawElementsBaseVertex")); flextGL.ProvokingVertex = reinterpret_cast(loader.load("glProvokingVertex")); flextGL.SampleMaski = reinterpret_cast(loader.load("glSampleMaski")); flextGL.TexImage2DMultisample = reinterpret_cast(loader.load("glTexImage2DMultisample")); flextGL.TexImage3DMultisample = reinterpret_cast(loader.load("glTexImage3DMultisample")); flextGL.WaitSync = reinterpret_cast(loader.load("glWaitSync")); /* GL_VERSION_3_3 */ flextGL.BindFragDataLocationIndexed = reinterpret_cast(loader.load("glBindFragDataLocationIndexed")); flextGL.BindSampler = reinterpret_cast(loader.load("glBindSampler")); flextGL.DeleteSamplers = reinterpret_cast(loader.load("glDeleteSamplers")); flextGL.GenSamplers = reinterpret_cast(loader.load("glGenSamplers")); flextGL.GetFragDataIndex = reinterpret_cast(loader.load("glGetFragDataIndex")); flextGL.GetQueryObjecti64v = reinterpret_cast(loader.load("glGetQueryObjecti64v")); flextGL.GetQueryObjectui64v = reinterpret_cast(loader.load("glGetQueryObjectui64v")); flextGL.GetSamplerParameterIiv = reinterpret_cast(loader.load("glGetSamplerParameterIiv")); flextGL.GetSamplerParameterIuiv = reinterpret_cast(loader.load("glGetSamplerParameterIuiv")); flextGL.GetSamplerParameterfv = reinterpret_cast(loader.load("glGetSamplerParameterfv")); flextGL.GetSamplerParameteriv = reinterpret_cast(loader.load("glGetSamplerParameteriv")); flextGL.IsSampler = reinterpret_cast(loader.load("glIsSampler")); flextGL.QueryCounter = reinterpret_cast(loader.load("glQueryCounter")); flextGL.SamplerParameterIiv = reinterpret_cast(loader.load("glSamplerParameterIiv")); flextGL.SamplerParameterIuiv = reinterpret_cast(loader.load("glSamplerParameterIuiv")); flextGL.SamplerParameterf = reinterpret_cast(loader.load("glSamplerParameterf")); flextGL.SamplerParameterfv = reinterpret_cast(loader.load("glSamplerParameterfv")); flextGL.SamplerParameteri = reinterpret_cast(loader.load("glSamplerParameteri")); flextGL.SamplerParameteriv = reinterpret_cast(loader.load("glSamplerParameteriv")); flextGL.VertexAttribDivisor = reinterpret_cast(loader.load("glVertexAttribDivisor")); flextGL.VertexAttribP1ui = reinterpret_cast(loader.load("glVertexAttribP1ui")); flextGL.VertexAttribP1uiv = reinterpret_cast(loader.load("glVertexAttribP1uiv")); flextGL.VertexAttribP2ui = reinterpret_cast(loader.load("glVertexAttribP2ui")); flextGL.VertexAttribP2uiv = reinterpret_cast(loader.load("glVertexAttribP2uiv")); flextGL.VertexAttribP3ui = reinterpret_cast(loader.load("glVertexAttribP3ui")); flextGL.VertexAttribP3uiv = reinterpret_cast(loader.load("glVertexAttribP3uiv")); flextGL.VertexAttribP4ui = reinterpret_cast(loader.load("glVertexAttribP4ui")); flextGL.VertexAttribP4uiv = reinterpret_cast(loader.load("glVertexAttribP4uiv")); /* GL_VERSION_4_0 */ flextGL.BeginQueryIndexed = reinterpret_cast(loader.load("glBeginQueryIndexed")); flextGL.BindTransformFeedback = reinterpret_cast(loader.load("glBindTransformFeedback")); flextGL.BlendEquationSeparatei = reinterpret_cast(loader.load("glBlendEquationSeparatei")); flextGL.BlendEquationi = reinterpret_cast(loader.load("glBlendEquationi")); flextGL.BlendFuncSeparatei = reinterpret_cast(loader.load("glBlendFuncSeparatei")); flextGL.BlendFunci = reinterpret_cast(loader.load("glBlendFunci")); flextGL.DeleteTransformFeedbacks = reinterpret_cast(loader.load("glDeleteTransformFeedbacks")); flextGL.DrawArraysIndirect = reinterpret_cast(loader.load("glDrawArraysIndirect")); flextGL.DrawElementsIndirect = reinterpret_cast(loader.load("glDrawElementsIndirect")); flextGL.DrawTransformFeedback = reinterpret_cast(loader.load("glDrawTransformFeedback")); flextGL.DrawTransformFeedbackStream = reinterpret_cast(loader.load("glDrawTransformFeedbackStream")); flextGL.EndQueryIndexed = reinterpret_cast(loader.load("glEndQueryIndexed")); flextGL.GenTransformFeedbacks = reinterpret_cast(loader.load("glGenTransformFeedbacks")); flextGL.GetActiveSubroutineName = reinterpret_cast(loader.load("glGetActiveSubroutineName")); flextGL.GetActiveSubroutineUniformName = reinterpret_cast(loader.load("glGetActiveSubroutineUniformName")); flextGL.GetActiveSubroutineUniformiv = reinterpret_cast(loader.load("glGetActiveSubroutineUniformiv")); flextGL.GetProgramStageiv = reinterpret_cast(loader.load("glGetProgramStageiv")); flextGL.GetQueryIndexediv = reinterpret_cast(loader.load("glGetQueryIndexediv")); flextGL.GetSubroutineIndex = reinterpret_cast(loader.load("glGetSubroutineIndex")); flextGL.GetSubroutineUniformLocation = reinterpret_cast(loader.load("glGetSubroutineUniformLocation")); flextGL.GetUniformSubroutineuiv = reinterpret_cast(loader.load("glGetUniformSubroutineuiv")); flextGL.GetUniformdv = reinterpret_cast(loader.load("glGetUniformdv")); flextGL.IsTransformFeedback = reinterpret_cast(loader.load("glIsTransformFeedback")); flextGL.MinSampleShading = reinterpret_cast(loader.load("glMinSampleShading")); flextGL.PatchParameterfv = reinterpret_cast(loader.load("glPatchParameterfv")); flextGL.PatchParameteri = reinterpret_cast(loader.load("glPatchParameteri")); flextGL.PauseTransformFeedback = reinterpret_cast(loader.load("glPauseTransformFeedback")); flextGL.ResumeTransformFeedback = reinterpret_cast(loader.load("glResumeTransformFeedback")); flextGL.Uniform1d = reinterpret_cast(loader.load("glUniform1d")); flextGL.Uniform1dv = reinterpret_cast(loader.load("glUniform1dv")); flextGL.Uniform2d = reinterpret_cast(loader.load("glUniform2d")); flextGL.Uniform2dv = reinterpret_cast(loader.load("glUniform2dv")); flextGL.Uniform3d = reinterpret_cast(loader.load("glUniform3d")); flextGL.Uniform3dv = reinterpret_cast(loader.load("glUniform3dv")); flextGL.Uniform4d = reinterpret_cast(loader.load("glUniform4d")); flextGL.Uniform4dv = reinterpret_cast(loader.load("glUniform4dv")); flextGL.UniformMatrix2dv = reinterpret_cast(loader.load("glUniformMatrix2dv")); flextGL.UniformMatrix2x3dv = reinterpret_cast(loader.load("glUniformMatrix2x3dv")); flextGL.UniformMatrix2x4dv = reinterpret_cast(loader.load("glUniformMatrix2x4dv")); flextGL.UniformMatrix3dv = reinterpret_cast(loader.load("glUniformMatrix3dv")); flextGL.UniformMatrix3x2dv = reinterpret_cast(loader.load("glUniformMatrix3x2dv")); flextGL.UniformMatrix3x4dv = reinterpret_cast(loader.load("glUniformMatrix3x4dv")); flextGL.UniformMatrix4dv = reinterpret_cast(loader.load("glUniformMatrix4dv")); flextGL.UniformMatrix4x2dv = reinterpret_cast(loader.load("glUniformMatrix4x2dv")); flextGL.UniformMatrix4x3dv = reinterpret_cast(loader.load("glUniformMatrix4x3dv")); flextGL.UniformSubroutinesuiv = reinterpret_cast(loader.load("glUniformSubroutinesuiv")); /* GL_VERSION_4_1 */ flextGL.ActiveShaderProgram = reinterpret_cast(loader.load("glActiveShaderProgram")); flextGL.BindProgramPipeline = reinterpret_cast(loader.load("glBindProgramPipeline")); flextGL.ClearDepthf = reinterpret_cast(loader.load("glClearDepthf")); flextGL.CreateShaderProgramv = reinterpret_cast(loader.load("glCreateShaderProgramv")); flextGL.DeleteProgramPipelines = reinterpret_cast(loader.load("glDeleteProgramPipelines")); flextGL.DepthRangeArrayv = reinterpret_cast(loader.load("glDepthRangeArrayv")); flextGL.DepthRangeIndexed = reinterpret_cast(loader.load("glDepthRangeIndexed")); flextGL.DepthRangef = reinterpret_cast(loader.load("glDepthRangef")); flextGL.GenProgramPipelines = reinterpret_cast(loader.load("glGenProgramPipelines")); flextGL.GetDoublei_v = reinterpret_cast(loader.load("glGetDoublei_v")); flextGL.GetFloati_v = reinterpret_cast(loader.load("glGetFloati_v")); flextGL.GetProgramBinary = reinterpret_cast(loader.load("glGetProgramBinary")); flextGL.GetProgramPipelineInfoLog = reinterpret_cast(loader.load("glGetProgramPipelineInfoLog")); flextGL.GetProgramPipelineiv = reinterpret_cast(loader.load("glGetProgramPipelineiv")); flextGL.GetShaderPrecisionFormat = reinterpret_cast(loader.load("glGetShaderPrecisionFormat")); flextGL.GetVertexAttribLdv = reinterpret_cast(loader.load("glGetVertexAttribLdv")); flextGL.IsProgramPipeline = reinterpret_cast(loader.load("glIsProgramPipeline")); flextGL.ProgramBinary = reinterpret_cast(loader.load("glProgramBinary")); flextGL.ProgramParameteri = reinterpret_cast(loader.load("glProgramParameteri")); flextGL.ProgramUniform1d = reinterpret_cast(loader.load("glProgramUniform1d")); flextGL.ProgramUniform1dv = reinterpret_cast(loader.load("glProgramUniform1dv")); flextGL.ProgramUniform1f = reinterpret_cast(loader.load("glProgramUniform1f")); flextGL.ProgramUniform1fv = reinterpret_cast(loader.load("glProgramUniform1fv")); flextGL.ProgramUniform1i = reinterpret_cast(loader.load("glProgramUniform1i")); flextGL.ProgramUniform1iv = reinterpret_cast(loader.load("glProgramUniform1iv")); flextGL.ProgramUniform1ui = reinterpret_cast(loader.load("glProgramUniform1ui")); flextGL.ProgramUniform1uiv = reinterpret_cast(loader.load("glProgramUniform1uiv")); flextGL.ProgramUniform2d = reinterpret_cast(loader.load("glProgramUniform2d")); flextGL.ProgramUniform2dv = reinterpret_cast(loader.load("glProgramUniform2dv")); flextGL.ProgramUniform2f = reinterpret_cast(loader.load("glProgramUniform2f")); flextGL.ProgramUniform2fv = reinterpret_cast(loader.load("glProgramUniform2fv")); flextGL.ProgramUniform2i = reinterpret_cast(loader.load("glProgramUniform2i")); flextGL.ProgramUniform2iv = reinterpret_cast(loader.load("glProgramUniform2iv")); flextGL.ProgramUniform2ui = reinterpret_cast(loader.load("glProgramUniform2ui")); flextGL.ProgramUniform2uiv = reinterpret_cast(loader.load("glProgramUniform2uiv")); flextGL.ProgramUniform3d = reinterpret_cast(loader.load("glProgramUniform3d")); flextGL.ProgramUniform3dv = reinterpret_cast(loader.load("glProgramUniform3dv")); flextGL.ProgramUniform3f = reinterpret_cast(loader.load("glProgramUniform3f")); flextGL.ProgramUniform3fv = reinterpret_cast(loader.load("glProgramUniform3fv")); flextGL.ProgramUniform3i = reinterpret_cast(loader.load("glProgramUniform3i")); flextGL.ProgramUniform3iv = reinterpret_cast(loader.load("glProgramUniform3iv")); flextGL.ProgramUniform3ui = reinterpret_cast(loader.load("glProgramUniform3ui")); flextGL.ProgramUniform3uiv = reinterpret_cast(loader.load("glProgramUniform3uiv")); flextGL.ProgramUniform4d = reinterpret_cast(loader.load("glProgramUniform4d")); flextGL.ProgramUniform4dv = reinterpret_cast(loader.load("glProgramUniform4dv")); flextGL.ProgramUniform4f = reinterpret_cast(loader.load("glProgramUniform4f")); flextGL.ProgramUniform4fv = reinterpret_cast(loader.load("glProgramUniform4fv")); flextGL.ProgramUniform4i = reinterpret_cast(loader.load("glProgramUniform4i")); flextGL.ProgramUniform4iv = reinterpret_cast(loader.load("glProgramUniform4iv")); flextGL.ProgramUniform4ui = reinterpret_cast(loader.load("glProgramUniform4ui")); flextGL.ProgramUniform4uiv = reinterpret_cast(loader.load("glProgramUniform4uiv")); flextGL.ProgramUniformMatrix2dv = reinterpret_cast(loader.load("glProgramUniformMatrix2dv")); flextGL.ProgramUniformMatrix2fv = reinterpret_cast(loader.load("glProgramUniformMatrix2fv")); flextGL.ProgramUniformMatrix2x3dv = reinterpret_cast(loader.load("glProgramUniformMatrix2x3dv")); flextGL.ProgramUniformMatrix2x3fv = reinterpret_cast(loader.load("glProgramUniformMatrix2x3fv")); flextGL.ProgramUniformMatrix2x4dv = reinterpret_cast(loader.load("glProgramUniformMatrix2x4dv")); flextGL.ProgramUniformMatrix2x4fv = reinterpret_cast(loader.load("glProgramUniformMatrix2x4fv")); flextGL.ProgramUniformMatrix3dv = reinterpret_cast(loader.load("glProgramUniformMatrix3dv")); flextGL.ProgramUniformMatrix3fv = reinterpret_cast(loader.load("glProgramUniformMatrix3fv")); flextGL.ProgramUniformMatrix3x2dv = reinterpret_cast(loader.load("glProgramUniformMatrix3x2dv")); flextGL.ProgramUniformMatrix3x2fv = reinterpret_cast(loader.load("glProgramUniformMatrix3x2fv")); flextGL.ProgramUniformMatrix3x4dv = reinterpret_cast(loader.load("glProgramUniformMatrix3x4dv")); flextGL.ProgramUniformMatrix3x4fv = reinterpret_cast(loader.load("glProgramUniformMatrix3x4fv")); flextGL.ProgramUniformMatrix4dv = reinterpret_cast(loader.load("glProgramUniformMatrix4dv")); flextGL.ProgramUniformMatrix4fv = reinterpret_cast(loader.load("glProgramUniformMatrix4fv")); flextGL.ProgramUniformMatrix4x2dv = reinterpret_cast(loader.load("glProgramUniformMatrix4x2dv")); flextGL.ProgramUniformMatrix4x2fv = reinterpret_cast(loader.load("glProgramUniformMatrix4x2fv")); flextGL.ProgramUniformMatrix4x3dv = reinterpret_cast(loader.load("glProgramUniformMatrix4x3dv")); flextGL.ProgramUniformMatrix4x3fv = reinterpret_cast(loader.load("glProgramUniformMatrix4x3fv")); flextGL.ReleaseShaderCompiler = reinterpret_cast(loader.load("glReleaseShaderCompiler")); flextGL.ScissorArrayv = reinterpret_cast(loader.load("glScissorArrayv")); flextGL.ScissorIndexed = reinterpret_cast(loader.load("glScissorIndexed")); flextGL.ScissorIndexedv = reinterpret_cast(loader.load("glScissorIndexedv")); flextGL.ShaderBinary = reinterpret_cast(loader.load("glShaderBinary")); flextGL.UseProgramStages = reinterpret_cast(loader.load("glUseProgramStages")); flextGL.ValidateProgramPipeline = reinterpret_cast(loader.load("glValidateProgramPipeline")); flextGL.VertexAttribL1d = reinterpret_cast(loader.load("glVertexAttribL1d")); flextGL.VertexAttribL1dv = reinterpret_cast(loader.load("glVertexAttribL1dv")); flextGL.VertexAttribL2d = reinterpret_cast(loader.load("glVertexAttribL2d")); flextGL.VertexAttribL2dv = reinterpret_cast(loader.load("glVertexAttribL2dv")); flextGL.VertexAttribL3d = reinterpret_cast(loader.load("glVertexAttribL3d")); flextGL.VertexAttribL3dv = reinterpret_cast(loader.load("glVertexAttribL3dv")); flextGL.VertexAttribL4d = reinterpret_cast(loader.load("glVertexAttribL4d")); flextGL.VertexAttribL4dv = reinterpret_cast(loader.load("glVertexAttribL4dv")); flextGL.VertexAttribLPointer = reinterpret_cast(loader.load("glVertexAttribLPointer")); flextGL.ViewportArrayv = reinterpret_cast(loader.load("glViewportArrayv")); flextGL.ViewportIndexedf = reinterpret_cast(loader.load("glViewportIndexedf")); flextGL.ViewportIndexedfv = reinterpret_cast(loader.load("glViewportIndexedfv")); /* GL_VERSION_4_2 */ flextGL.BindImageTexture = reinterpret_cast(loader.load("glBindImageTexture")); flextGL.DrawArraysInstancedBaseInstance = reinterpret_cast(loader.load("glDrawArraysInstancedBaseInstance")); flextGL.DrawElementsInstancedBaseInstance = reinterpret_cast(loader.load("glDrawElementsInstancedBaseInstance")); flextGL.DrawElementsInstancedBaseVertexBaseInstance = reinterpret_cast(loader.load("glDrawElementsInstancedBaseVertexBaseInstance")); flextGL.DrawTransformFeedbackInstanced = reinterpret_cast(loader.load("glDrawTransformFeedbackInstanced")); flextGL.DrawTransformFeedbackStreamInstanced = reinterpret_cast(loader.load("glDrawTransformFeedbackStreamInstanced")); flextGL.GetActiveAtomicCounterBufferiv = reinterpret_cast(loader.load("glGetActiveAtomicCounterBufferiv")); flextGL.GetInternalformativ = reinterpret_cast(loader.load("glGetInternalformativ")); flextGL.MemoryBarrier = reinterpret_cast(loader.load("glMemoryBarrier")); flextGL.TexStorage1D = reinterpret_cast(loader.load("glTexStorage1D")); flextGL.TexStorage2D = reinterpret_cast(loader.load("glTexStorage2D")); flextGL.TexStorage3D = reinterpret_cast(loader.load("glTexStorage3D")); /* GL_VERSION_4_3 */ flextGL.BindVertexBuffer = reinterpret_cast(loader.load("glBindVertexBuffer")); flextGL.ClearBufferData = reinterpret_cast(loader.load("glClearBufferData")); flextGL.ClearBufferSubData = reinterpret_cast(loader.load("glClearBufferSubData")); flextGL.CopyImageSubData = reinterpret_cast(loader.load("glCopyImageSubData")); flextGL.DebugMessageCallback = reinterpret_cast(loader.load("glDebugMessageCallback")); flextGL.DebugMessageControl = reinterpret_cast(loader.load("glDebugMessageControl")); flextGL.DebugMessageInsert = reinterpret_cast(loader.load("glDebugMessageInsert")); flextGL.DispatchCompute = reinterpret_cast(loader.load("glDispatchCompute")); flextGL.DispatchComputeIndirect = reinterpret_cast(loader.load("glDispatchComputeIndirect")); flextGL.FramebufferParameteri = reinterpret_cast(loader.load("glFramebufferParameteri")); flextGL.GetDebugMessageLog = reinterpret_cast(loader.load("glGetDebugMessageLog")); flextGL.GetFramebufferParameteriv = reinterpret_cast(loader.load("glGetFramebufferParameteriv")); flextGL.GetInternalformati64v = reinterpret_cast(loader.load("glGetInternalformati64v")); flextGL.GetObjectLabel = reinterpret_cast(loader.load("glGetObjectLabel")); flextGL.GetObjectPtrLabel = reinterpret_cast(loader.load("glGetObjectPtrLabel")); flextGL.GetPointerv = reinterpret_cast(loader.load("glGetPointerv")); flextGL.GetProgramInterfaceiv = reinterpret_cast(loader.load("glGetProgramInterfaceiv")); flextGL.GetProgramResourceIndex = reinterpret_cast(loader.load("glGetProgramResourceIndex")); flextGL.GetProgramResourceLocation = reinterpret_cast(loader.load("glGetProgramResourceLocation")); flextGL.GetProgramResourceLocationIndex = reinterpret_cast(loader.load("glGetProgramResourceLocationIndex")); flextGL.GetProgramResourceName = reinterpret_cast(loader.load("glGetProgramResourceName")); flextGL.GetProgramResourceiv = reinterpret_cast(loader.load("glGetProgramResourceiv")); flextGL.InvalidateBufferData = reinterpret_cast(loader.load("glInvalidateBufferData")); flextGL.InvalidateBufferSubData = reinterpret_cast(loader.load("glInvalidateBufferSubData")); flextGL.InvalidateFramebuffer = reinterpret_cast(loader.load("glInvalidateFramebuffer")); flextGL.InvalidateSubFramebuffer = reinterpret_cast(loader.load("glInvalidateSubFramebuffer")); flextGL.InvalidateTexImage = reinterpret_cast(loader.load("glInvalidateTexImage")); flextGL.InvalidateTexSubImage = reinterpret_cast(loader.load("glInvalidateTexSubImage")); flextGL.MultiDrawArraysIndirect = reinterpret_cast(loader.load("glMultiDrawArraysIndirect")); flextGL.MultiDrawElementsIndirect = reinterpret_cast(loader.load("glMultiDrawElementsIndirect")); flextGL.ObjectLabel = reinterpret_cast(loader.load("glObjectLabel")); flextGL.ObjectPtrLabel = reinterpret_cast(loader.load("glObjectPtrLabel")); flextGL.PopDebugGroup = reinterpret_cast(loader.load("glPopDebugGroup")); flextGL.PushDebugGroup = reinterpret_cast(loader.load("glPushDebugGroup")); flextGL.ShaderStorageBlockBinding = reinterpret_cast(loader.load("glShaderStorageBlockBinding")); flextGL.TexBufferRange = reinterpret_cast(loader.load("glTexBufferRange")); flextGL.TexStorage2DMultisample = reinterpret_cast(loader.load("glTexStorage2DMultisample")); flextGL.TexStorage3DMultisample = reinterpret_cast(loader.load("glTexStorage3DMultisample")); flextGL.TextureView = reinterpret_cast(loader.load("glTextureView")); flextGL.VertexAttribBinding = reinterpret_cast(loader.load("glVertexAttribBinding")); flextGL.VertexAttribFormat = reinterpret_cast(loader.load("glVertexAttribFormat")); flextGL.VertexAttribIFormat = reinterpret_cast(loader.load("glVertexAttribIFormat")); flextGL.VertexAttribLFormat = reinterpret_cast(loader.load("glVertexAttribLFormat")); flextGL.VertexBindingDivisor = reinterpret_cast(loader.load("glVertexBindingDivisor")); /* GL_VERSION_4_4 */ flextGL.BindBuffersBase = reinterpret_cast(loader.load("glBindBuffersBase")); flextGL.BindBuffersRange = reinterpret_cast(loader.load("glBindBuffersRange")); flextGL.BindImageTextures = reinterpret_cast(loader.load("glBindImageTextures")); flextGL.BindSamplers = reinterpret_cast(loader.load("glBindSamplers")); flextGL.BindTextures = reinterpret_cast(loader.load("glBindTextures")); flextGL.BindVertexBuffers = reinterpret_cast(loader.load("glBindVertexBuffers")); flextGL.BufferStorage = reinterpret_cast(loader.load("glBufferStorage")); flextGL.ClearTexImage = reinterpret_cast(loader.load("glClearTexImage")); flextGL.ClearTexSubImage = reinterpret_cast(loader.load("glClearTexSubImage")); /* GL_VERSION_4_5 */ flextGL.BindTextureUnit = reinterpret_cast(loader.load("glBindTextureUnit")); flextGL.BlitNamedFramebuffer = reinterpret_cast(loader.load("glBlitNamedFramebuffer")); flextGL.CheckNamedFramebufferStatus = reinterpret_cast(loader.load("glCheckNamedFramebufferStatus")); flextGL.ClearNamedBufferData = reinterpret_cast(loader.load("glClearNamedBufferData")); flextGL.ClearNamedBufferSubData = reinterpret_cast(loader.load("glClearNamedBufferSubData")); flextGL.ClearNamedFramebufferfi = reinterpret_cast(loader.load("glClearNamedFramebufferfi")); flextGL.ClearNamedFramebufferfv = reinterpret_cast(loader.load("glClearNamedFramebufferfv")); flextGL.ClearNamedFramebufferiv = reinterpret_cast(loader.load("glClearNamedFramebufferiv")); flextGL.ClearNamedFramebufferuiv = reinterpret_cast(loader.load("glClearNamedFramebufferuiv")); flextGL.ClipControl = reinterpret_cast(loader.load("glClipControl")); flextGL.CompressedTextureSubImage1D = reinterpret_cast(loader.load("glCompressedTextureSubImage1D")); flextGL.CompressedTextureSubImage2D = reinterpret_cast(loader.load("glCompressedTextureSubImage2D")); flextGL.CompressedTextureSubImage3D = reinterpret_cast(loader.load("glCompressedTextureSubImage3D")); flextGL.CopyNamedBufferSubData = reinterpret_cast(loader.load("glCopyNamedBufferSubData")); flextGL.CopyTextureSubImage1D = reinterpret_cast(loader.load("glCopyTextureSubImage1D")); flextGL.CopyTextureSubImage2D = reinterpret_cast(loader.load("glCopyTextureSubImage2D")); flextGL.CopyTextureSubImage3D = reinterpret_cast(loader.load("glCopyTextureSubImage3D")); flextGL.CreateBuffers = reinterpret_cast(loader.load("glCreateBuffers")); flextGL.CreateFramebuffers = reinterpret_cast(loader.load("glCreateFramebuffers")); flextGL.CreateProgramPipelines = reinterpret_cast(loader.load("glCreateProgramPipelines")); flextGL.CreateQueries = reinterpret_cast(loader.load("glCreateQueries")); flextGL.CreateRenderbuffers = reinterpret_cast(loader.load("glCreateRenderbuffers")); flextGL.CreateSamplers = reinterpret_cast(loader.load("glCreateSamplers")); flextGL.CreateTextures = reinterpret_cast(loader.load("glCreateTextures")); flextGL.CreateTransformFeedbacks = reinterpret_cast(loader.load("glCreateTransformFeedbacks")); flextGL.CreateVertexArrays = reinterpret_cast(loader.load("glCreateVertexArrays")); flextGL.DisableVertexArrayAttrib = reinterpret_cast(loader.load("glDisableVertexArrayAttrib")); flextGL.EnableVertexArrayAttrib = reinterpret_cast(loader.load("glEnableVertexArrayAttrib")); flextGL.FlushMappedNamedBufferRange = reinterpret_cast(loader.load("glFlushMappedNamedBufferRange")); flextGL.GenerateTextureMipmap = reinterpret_cast(loader.load("glGenerateTextureMipmap")); flextGL.GetCompressedTextureImage = reinterpret_cast(loader.load("glGetCompressedTextureImage")); flextGL.GetCompressedTextureSubImage = reinterpret_cast(loader.load("glGetCompressedTextureSubImage")); flextGL.GetGraphicsResetStatus = reinterpret_cast(loader.load("glGetGraphicsResetStatus")); flextGL.GetNamedBufferParameteri64v = reinterpret_cast(loader.load("glGetNamedBufferParameteri64v")); flextGL.GetNamedBufferParameteriv = reinterpret_cast(loader.load("glGetNamedBufferParameteriv")); flextGL.GetNamedBufferPointerv = reinterpret_cast(loader.load("glGetNamedBufferPointerv")); flextGL.GetNamedBufferSubData = reinterpret_cast(loader.load("glGetNamedBufferSubData")); flextGL.GetNamedFramebufferAttachmentParameteriv = reinterpret_cast(loader.load("glGetNamedFramebufferAttachmentParameteriv")); flextGL.GetNamedFramebufferParameteriv = reinterpret_cast(loader.load("glGetNamedFramebufferParameteriv")); flextGL.GetNamedRenderbufferParameteriv = reinterpret_cast(loader.load("glGetNamedRenderbufferParameteriv")); flextGL.GetQueryBufferObjecti64v = reinterpret_cast(loader.load("glGetQueryBufferObjecti64v")); flextGL.GetQueryBufferObjectiv = reinterpret_cast(loader.load("glGetQueryBufferObjectiv")); flextGL.GetQueryBufferObjectui64v = reinterpret_cast(loader.load("glGetQueryBufferObjectui64v")); flextGL.GetQueryBufferObjectuiv = reinterpret_cast(loader.load("glGetQueryBufferObjectuiv")); flextGL.GetTextureImage = reinterpret_cast(loader.load("glGetTextureImage")); flextGL.GetTextureLevelParameterfv = reinterpret_cast(loader.load("glGetTextureLevelParameterfv")); flextGL.GetTextureLevelParameteriv = reinterpret_cast(loader.load("glGetTextureLevelParameteriv")); flextGL.GetTextureParameterIiv = reinterpret_cast(loader.load("glGetTextureParameterIiv")); flextGL.GetTextureParameterIuiv = reinterpret_cast(loader.load("glGetTextureParameterIuiv")); flextGL.GetTextureParameterfv = reinterpret_cast(loader.load("glGetTextureParameterfv")); flextGL.GetTextureParameteriv = reinterpret_cast(loader.load("glGetTextureParameteriv")); flextGL.GetTextureSubImage = reinterpret_cast(loader.load("glGetTextureSubImage")); flextGL.GetTransformFeedbacki64_v = reinterpret_cast(loader.load("glGetTransformFeedbacki64_v")); flextGL.GetTransformFeedbacki_v = reinterpret_cast(loader.load("glGetTransformFeedbacki_v")); flextGL.GetTransformFeedbackiv = reinterpret_cast(loader.load("glGetTransformFeedbackiv")); flextGL.GetVertexArrayIndexed64iv = reinterpret_cast(loader.load("glGetVertexArrayIndexed64iv")); flextGL.GetVertexArrayIndexediv = reinterpret_cast(loader.load("glGetVertexArrayIndexediv")); flextGL.GetVertexArrayiv = reinterpret_cast(loader.load("glGetVertexArrayiv")); flextGL.GetnCompressedTexImage = reinterpret_cast(loader.load("glGetnCompressedTexImage")); flextGL.GetnTexImage = reinterpret_cast(loader.load("glGetnTexImage")); flextGL.GetnUniformdv = reinterpret_cast(loader.load("glGetnUniformdv")); flextGL.GetnUniformfv = reinterpret_cast(loader.load("glGetnUniformfv")); flextGL.GetnUniformiv = reinterpret_cast(loader.load("glGetnUniformiv")); flextGL.GetnUniformuiv = reinterpret_cast(loader.load("glGetnUniformuiv")); flextGL.InvalidateNamedFramebufferData = reinterpret_cast(loader.load("glInvalidateNamedFramebufferData")); flextGL.InvalidateNamedFramebufferSubData = reinterpret_cast(loader.load("glInvalidateNamedFramebufferSubData")); flextGL.MapNamedBuffer = reinterpret_cast(loader.load("glMapNamedBuffer")); flextGL.MapNamedBufferRange = reinterpret_cast(loader.load("glMapNamedBufferRange")); flextGL.MemoryBarrierByRegion = reinterpret_cast(loader.load("glMemoryBarrierByRegion")); flextGL.NamedBufferData = reinterpret_cast(loader.load("glNamedBufferData")); flextGL.NamedBufferStorage = reinterpret_cast(loader.load("glNamedBufferStorage")); flextGL.NamedBufferSubData = reinterpret_cast(loader.load("glNamedBufferSubData")); flextGL.NamedFramebufferDrawBuffer = reinterpret_cast(loader.load("glNamedFramebufferDrawBuffer")); flextGL.NamedFramebufferDrawBuffers = reinterpret_cast(loader.load("glNamedFramebufferDrawBuffers")); flextGL.NamedFramebufferParameteri = reinterpret_cast(loader.load("glNamedFramebufferParameteri")); flextGL.NamedFramebufferReadBuffer = reinterpret_cast(loader.load("glNamedFramebufferReadBuffer")); flextGL.NamedFramebufferRenderbuffer = reinterpret_cast(loader.load("glNamedFramebufferRenderbuffer")); flextGL.NamedFramebufferTexture = reinterpret_cast(loader.load("glNamedFramebufferTexture")); flextGL.NamedFramebufferTextureLayer = reinterpret_cast(loader.load("glNamedFramebufferTextureLayer")); flextGL.NamedRenderbufferStorage = reinterpret_cast(loader.load("glNamedRenderbufferStorage")); flextGL.NamedRenderbufferStorageMultisample = reinterpret_cast(loader.load("glNamedRenderbufferStorageMultisample")); flextGL.ReadnPixels = reinterpret_cast(loader.load("glReadnPixels")); flextGL.TextureBarrier = reinterpret_cast(loader.load("glTextureBarrier")); flextGL.TextureBuffer = reinterpret_cast(loader.load("glTextureBuffer")); flextGL.TextureBufferRange = reinterpret_cast(loader.load("glTextureBufferRange")); flextGL.TextureParameterIiv = reinterpret_cast(loader.load("glTextureParameterIiv")); flextGL.TextureParameterIuiv = reinterpret_cast(loader.load("glTextureParameterIuiv")); flextGL.TextureParameterf = reinterpret_cast(loader.load("glTextureParameterf")); flextGL.TextureParameterfv = reinterpret_cast(loader.load("glTextureParameterfv")); flextGL.TextureParameteri = reinterpret_cast(loader.load("glTextureParameteri")); flextGL.TextureParameteriv = reinterpret_cast(loader.load("glTextureParameteriv")); flextGL.TextureStorage1D = reinterpret_cast(loader.load("glTextureStorage1D")); flextGL.TextureStorage2D = reinterpret_cast(loader.load("glTextureStorage2D")); flextGL.TextureStorage2DMultisample = reinterpret_cast(loader.load("glTextureStorage2DMultisample")); flextGL.TextureStorage3D = reinterpret_cast(loader.load("glTextureStorage3D")); flextGL.TextureStorage3DMultisample = reinterpret_cast(loader.load("glTextureStorage3DMultisample")); flextGL.TextureSubImage1D = reinterpret_cast(loader.load("glTextureSubImage1D")); flextGL.TextureSubImage2D = reinterpret_cast(loader.load("glTextureSubImage2D")); flextGL.TextureSubImage3D = reinterpret_cast(loader.load("glTextureSubImage3D")); flextGL.TransformFeedbackBufferBase = reinterpret_cast(loader.load("glTransformFeedbackBufferBase")); flextGL.TransformFeedbackBufferRange = reinterpret_cast(loader.load("glTransformFeedbackBufferRange")); flextGL.UnmapNamedBuffer = reinterpret_cast(loader.load("glUnmapNamedBuffer")); flextGL.VertexArrayAttribBinding = reinterpret_cast(loader.load("glVertexArrayAttribBinding")); flextGL.VertexArrayAttribFormat = reinterpret_cast(loader.load("glVertexArrayAttribFormat")); flextGL.VertexArrayAttribIFormat = reinterpret_cast(loader.load("glVertexArrayAttribIFormat")); flextGL.VertexArrayAttribLFormat = reinterpret_cast(loader.load("glVertexArrayAttribLFormat")); flextGL.VertexArrayBindingDivisor = reinterpret_cast(loader.load("glVertexArrayBindingDivisor")); flextGL.VertexArrayElementBuffer = reinterpret_cast(loader.load("glVertexArrayElementBuffer")); flextGL.VertexArrayVertexBuffer = reinterpret_cast(loader.load("glVertexArrayVertexBuffer")); flextGL.VertexArrayVertexBuffers = reinterpret_cast(loader.load("glVertexArrayVertexBuffers")); /* GL_VERSION_4_6 */ flextGL.MultiDrawArraysIndirectCount = reinterpret_cast(loader.load("glMultiDrawArraysIndirectCount")); flextGL.MultiDrawElementsIndirectCount = reinterpret_cast(loader.load("glMultiDrawElementsIndirectCount")); flextGL.PolygonOffsetClamp = reinterpret_cast(loader.load("glPolygonOffsetClamp")); flextGL.SpecializeShader = reinterpret_cast(loader.load("glSpecializeShader")); }