/* 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" void flextGLInit(Magnum::GL::Context&) { Magnum::Platform::Implementation::OpenGLFunctionLoader loader; /* GL_ES_VERSION_3_1 */ flextGL.ActiveShaderProgram = reinterpret_cast(loader.load("glActiveShaderProgram")); flextGL.BindImageTexture = reinterpret_cast(loader.load("glBindImageTexture")); flextGL.BindProgramPipeline = reinterpret_cast(loader.load("glBindProgramPipeline")); flextGL.BindVertexBuffer = reinterpret_cast(loader.load("glBindVertexBuffer")); flextGL.CreateShaderProgramv = reinterpret_cast(loader.load("glCreateShaderProgramv")); flextGL.DeleteProgramPipelines = reinterpret_cast(loader.load("glDeleteProgramPipelines")); flextGL.DispatchCompute = reinterpret_cast(loader.load("glDispatchCompute")); flextGL.DispatchComputeIndirect = reinterpret_cast(loader.load("glDispatchComputeIndirect")); flextGL.DrawArraysIndirect = reinterpret_cast(loader.load("glDrawArraysIndirect")); flextGL.DrawElementsIndirect = reinterpret_cast(loader.load("glDrawElementsIndirect")); flextGL.FramebufferParameteri = reinterpret_cast(loader.load("glFramebufferParameteri")); flextGL.GenProgramPipelines = reinterpret_cast(loader.load("glGenProgramPipelines")); flextGL.GetBooleani_v = reinterpret_cast(loader.load("glGetBooleani_v")); flextGL.GetFramebufferParameteriv = reinterpret_cast(loader.load("glGetFramebufferParameteriv")); flextGL.GetMultisamplefv = reinterpret_cast(loader.load("glGetMultisamplefv")); flextGL.GetProgramInterfaceiv = reinterpret_cast(loader.load("glGetProgramInterfaceiv")); flextGL.GetProgramPipelineInfoLog = reinterpret_cast(loader.load("glGetProgramPipelineInfoLog")); flextGL.GetProgramPipelineiv = reinterpret_cast(loader.load("glGetProgramPipelineiv")); flextGL.GetProgramResourceIndex = reinterpret_cast(loader.load("glGetProgramResourceIndex")); flextGL.GetProgramResourceLocation = reinterpret_cast(loader.load("glGetProgramResourceLocation")); flextGL.GetProgramResourceName = reinterpret_cast(loader.load("glGetProgramResourceName")); flextGL.GetProgramResourceiv = reinterpret_cast(loader.load("glGetProgramResourceiv")); flextGL.GetTexLevelParameterfv = reinterpret_cast(loader.load("glGetTexLevelParameterfv")); flextGL.GetTexLevelParameteriv = reinterpret_cast(loader.load("glGetTexLevelParameteriv")); flextGL.IsProgramPipeline = reinterpret_cast(loader.load("glIsProgramPipeline")); flextGL.MemoryBarrier = reinterpret_cast(loader.load("glMemoryBarrier")); flextGL.MemoryBarrierByRegion = reinterpret_cast(loader.load("glMemoryBarrierByRegion")); 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.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.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.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.ProgramUniformMatrix2fv = reinterpret_cast(loader.load("glProgramUniformMatrix2fv")); flextGL.ProgramUniformMatrix2x3fv = reinterpret_cast(loader.load("glProgramUniformMatrix2x3fv")); flextGL.ProgramUniformMatrix2x4fv = reinterpret_cast(loader.load("glProgramUniformMatrix2x4fv")); flextGL.ProgramUniformMatrix3fv = reinterpret_cast(loader.load("glProgramUniformMatrix3fv")); flextGL.ProgramUniformMatrix3x2fv = reinterpret_cast(loader.load("glProgramUniformMatrix3x2fv")); flextGL.ProgramUniformMatrix3x4fv = reinterpret_cast(loader.load("glProgramUniformMatrix3x4fv")); flextGL.ProgramUniformMatrix4fv = reinterpret_cast(loader.load("glProgramUniformMatrix4fv")); flextGL.ProgramUniformMatrix4x2fv = reinterpret_cast(loader.load("glProgramUniformMatrix4x2fv")); flextGL.ProgramUniformMatrix4x3fv = reinterpret_cast(loader.load("glProgramUniformMatrix4x3fv")); flextGL.SampleMaski = reinterpret_cast(loader.load("glSampleMaski")); flextGL.TexStorage2DMultisample = reinterpret_cast(loader.load("glTexStorage2DMultisample")); flextGL.UseProgramStages = reinterpret_cast(loader.load("glUseProgramStages")); flextGL.ValidateProgramPipeline = reinterpret_cast(loader.load("glValidateProgramPipeline")); flextGL.VertexAttribBinding = reinterpret_cast(loader.load("glVertexAttribBinding")); flextGL.VertexAttribFormat = reinterpret_cast(loader.load("glVertexAttribFormat")); flextGL.VertexAttribIFormat = reinterpret_cast(loader.load("glVertexAttribIFormat")); flextGL.VertexBindingDivisor = reinterpret_cast(loader.load("glVertexBindingDivisor")); /* GL_ES_VERSION_3_2 */ flextGL.BlendBarrier = reinterpret_cast(loader.load("glBlendBarrier")); 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.ColorMaski = reinterpret_cast(loader.load("glColorMaski")); 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.Disablei = reinterpret_cast(loader.load("glDisablei")); flextGL.DrawElementsBaseVertex = reinterpret_cast(loader.load("glDrawElementsBaseVertex")); flextGL.DrawElementsInstancedBaseVertex = reinterpret_cast(loader.load("glDrawElementsInstancedBaseVertex")); flextGL.DrawRangeElementsBaseVertex = reinterpret_cast(loader.load("glDrawRangeElementsBaseVertex")); flextGL.Enablei = reinterpret_cast(loader.load("glEnablei")); flextGL.FramebufferTexture = reinterpret_cast(loader.load("glFramebufferTexture")); flextGL.GetDebugMessageLog = reinterpret_cast(loader.load("glGetDebugMessageLog")); flextGL.GetGraphicsResetStatus = reinterpret_cast(loader.load("glGetGraphicsResetStatus")); flextGL.GetObjectLabel = reinterpret_cast(loader.load("glGetObjectLabel")); flextGL.GetObjectPtrLabel = reinterpret_cast(loader.load("glGetObjectPtrLabel")); flextGL.GetPointerv = reinterpret_cast(loader.load("glGetPointerv")); flextGL.GetSamplerParameterIiv = reinterpret_cast(loader.load("glGetSamplerParameterIiv")); flextGL.GetSamplerParameterIuiv = reinterpret_cast(loader.load("glGetSamplerParameterIuiv")); flextGL.GetTexParameterIiv = reinterpret_cast(loader.load("glGetTexParameterIiv")); flextGL.GetTexParameterIuiv = reinterpret_cast(loader.load("glGetTexParameterIuiv")); flextGL.GetnUniformfv = reinterpret_cast(loader.load("glGetnUniformfv")); flextGL.GetnUniformiv = reinterpret_cast(loader.load("glGetnUniformiv")); flextGL.GetnUniformuiv = reinterpret_cast(loader.load("glGetnUniformuiv")); flextGL.IsEnabledi = reinterpret_cast(loader.load("glIsEnabledi")); flextGL.MinSampleShading = reinterpret_cast(loader.load("glMinSampleShading")); flextGL.ObjectLabel = reinterpret_cast(loader.load("glObjectLabel")); flextGL.ObjectPtrLabel = reinterpret_cast(loader.load("glObjectPtrLabel")); flextGL.PatchParameteri = reinterpret_cast(loader.load("glPatchParameteri")); flextGL.PopDebugGroup = reinterpret_cast(loader.load("glPopDebugGroup")); flextGL.PrimitiveBoundingBox = reinterpret_cast(loader.load("glPrimitiveBoundingBox")); flextGL.PushDebugGroup = reinterpret_cast(loader.load("glPushDebugGroup")); flextGL.ReadnPixels = reinterpret_cast(loader.load("glReadnPixels")); flextGL.SamplerParameterIiv = reinterpret_cast(loader.load("glSamplerParameterIiv")); flextGL.SamplerParameterIuiv = reinterpret_cast(loader.load("glSamplerParameterIuiv")); flextGL.TexBuffer = reinterpret_cast(loader.load("glTexBuffer")); flextGL.TexBufferRange = reinterpret_cast(loader.load("glTexBufferRange")); flextGL.TexParameterIiv = reinterpret_cast(loader.load("glTexParameterIiv")); flextGL.TexParameterIuiv = reinterpret_cast(loader.load("glTexParameterIuiv")); flextGL.TexStorage3DMultisample = reinterpret_cast(loader.load("glTexStorage3DMultisample")); /* GL_EXT_copy_image */ flextGL.CopyImageSubDataEXT = reinterpret_cast(loader.load("glCopyImageSubDataEXT")); /* 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_EXT_disjoint_timer_query */ flextGL.BeginQueryEXT = reinterpret_cast(loader.load("glBeginQueryEXT")); flextGL.DeleteQueriesEXT = reinterpret_cast(loader.load("glDeleteQueriesEXT")); flextGL.EndQueryEXT = reinterpret_cast(loader.load("glEndQueryEXT")); flextGL.GenQueriesEXT = reinterpret_cast(loader.load("glGenQueriesEXT")); flextGL.GetInteger64vEXT = reinterpret_cast(loader.load("glGetInteger64vEXT")); flextGL.GetQueryObjecti64vEXT = reinterpret_cast(loader.load("glGetQueryObjecti64vEXT")); flextGL.GetQueryObjectivEXT = reinterpret_cast(loader.load("glGetQueryObjectivEXT")); flextGL.GetQueryObjectui64vEXT = reinterpret_cast(loader.load("glGetQueryObjectui64vEXT")); flextGL.GetQueryObjectuivEXT = reinterpret_cast(loader.load("glGetQueryObjectuivEXT")); flextGL.GetQueryivEXT = reinterpret_cast(loader.load("glGetQueryivEXT")); flextGL.IsQueryEXT = reinterpret_cast(loader.load("glIsQueryEXT")); flextGL.QueryCounterEXT = reinterpret_cast(loader.load("glQueryCounterEXT")); /* GL_EXT_draw_buffers_indexed */ flextGL.BlendEquationSeparateiEXT = reinterpret_cast(loader.load("glBlendEquationSeparateiEXT")); flextGL.BlendEquationiEXT = reinterpret_cast(loader.load("glBlendEquationiEXT")); flextGL.BlendFuncSeparateiEXT = reinterpret_cast(loader.load("glBlendFuncSeparateiEXT")); flextGL.BlendFunciEXT = reinterpret_cast(loader.load("glBlendFunciEXT")); flextGL.ColorMaskiEXT = reinterpret_cast(loader.load("glColorMaskiEXT")); flextGL.DisableiEXT = reinterpret_cast(loader.load("glDisableiEXT")); flextGL.EnableiEXT = reinterpret_cast(loader.load("glEnableiEXT")); flextGL.IsEnablediEXT = reinterpret_cast(loader.load("glIsEnablediEXT")); /* GL_EXT_geometry_shader */ flextGL.FramebufferTextureEXT = reinterpret_cast(loader.load("glFramebufferTextureEXT")); /* GL_EXT_multi_draw_arrays */ flextGL.MultiDrawArraysEXT = reinterpret_cast(loader.load("glMultiDrawArraysEXT")); flextGL.MultiDrawElementsEXT = reinterpret_cast(loader.load("glMultiDrawElementsEXT")); /* GL_EXT_multisampled_render_to_texture */ flextGL.FramebufferTexture2DMultisampleEXT = reinterpret_cast(loader.load("glFramebufferTexture2DMultisampleEXT")); flextGL.RenderbufferStorageMultisampleEXT = reinterpret_cast(loader.load("glRenderbufferStorageMultisampleEXT")); /* GL_EXT_polygon_offset_clamp */ flextGL.PolygonOffsetClampEXT = reinterpret_cast(loader.load("glPolygonOffsetClampEXT")); /* GL_EXT_primitive_bounding_box */ flextGL.PrimitiveBoundingBoxEXT = reinterpret_cast(loader.load("glPrimitiveBoundingBoxEXT")); /* GL_EXT_robustness */ flextGL.GetGraphicsResetStatusEXT = reinterpret_cast(loader.load("glGetGraphicsResetStatusEXT")); flextGL.GetnUniformfvEXT = reinterpret_cast(loader.load("glGetnUniformfvEXT")); flextGL.GetnUniformivEXT = reinterpret_cast(loader.load("glGetnUniformivEXT")); flextGL.ReadnPixelsEXT = reinterpret_cast(loader.load("glReadnPixelsEXT")); /* GL_EXT_separate_shader_objects */ flextGL.ActiveShaderProgramEXT = reinterpret_cast(loader.load("glActiveShaderProgramEXT")); flextGL.BindProgramPipelineEXT = reinterpret_cast(loader.load("glBindProgramPipelineEXT")); flextGL.CreateShaderProgramvEXT = reinterpret_cast(loader.load("glCreateShaderProgramvEXT")); flextGL.DeleteProgramPipelinesEXT = reinterpret_cast(loader.load("glDeleteProgramPipelinesEXT")); flextGL.GenProgramPipelinesEXT = reinterpret_cast(loader.load("glGenProgramPipelinesEXT")); flextGL.GetProgramPipelineInfoLogEXT = reinterpret_cast(loader.load("glGetProgramPipelineInfoLogEXT")); flextGL.GetProgramPipelineivEXT = reinterpret_cast(loader.load("glGetProgramPipelineivEXT")); flextGL.IsProgramPipelineEXT = reinterpret_cast(loader.load("glIsProgramPipelineEXT")); flextGL.ProgramParameteriEXT = reinterpret_cast(loader.load("glProgramParameteriEXT")); flextGL.ProgramUniform1fEXT = reinterpret_cast(loader.load("glProgramUniform1fEXT")); flextGL.ProgramUniform1fvEXT = reinterpret_cast(loader.load("glProgramUniform1fvEXT")); flextGL.ProgramUniform1iEXT = reinterpret_cast(loader.load("glProgramUniform1iEXT")); flextGL.ProgramUniform1ivEXT = reinterpret_cast(loader.load("glProgramUniform1ivEXT")); flextGL.ProgramUniform1uiEXT = reinterpret_cast(loader.load("glProgramUniform1uiEXT")); flextGL.ProgramUniform1uivEXT = reinterpret_cast(loader.load("glProgramUniform1uivEXT")); flextGL.ProgramUniform2fEXT = reinterpret_cast(loader.load("glProgramUniform2fEXT")); flextGL.ProgramUniform2fvEXT = reinterpret_cast(loader.load("glProgramUniform2fvEXT")); flextGL.ProgramUniform2iEXT = reinterpret_cast(loader.load("glProgramUniform2iEXT")); flextGL.ProgramUniform2ivEXT = reinterpret_cast(loader.load("glProgramUniform2ivEXT")); flextGL.ProgramUniform2uiEXT = reinterpret_cast(loader.load("glProgramUniform2uiEXT")); flextGL.ProgramUniform2uivEXT = reinterpret_cast(loader.load("glProgramUniform2uivEXT")); flextGL.ProgramUniform3fEXT = reinterpret_cast(loader.load("glProgramUniform3fEXT")); flextGL.ProgramUniform3fvEXT = reinterpret_cast(loader.load("glProgramUniform3fvEXT")); flextGL.ProgramUniform3iEXT = reinterpret_cast(loader.load("glProgramUniform3iEXT")); flextGL.ProgramUniform3ivEXT = reinterpret_cast(loader.load("glProgramUniform3ivEXT")); flextGL.ProgramUniform3uiEXT = reinterpret_cast(loader.load("glProgramUniform3uiEXT")); flextGL.ProgramUniform3uivEXT = reinterpret_cast(loader.load("glProgramUniform3uivEXT")); flextGL.ProgramUniform4fEXT = reinterpret_cast(loader.load("glProgramUniform4fEXT")); flextGL.ProgramUniform4fvEXT = reinterpret_cast(loader.load("glProgramUniform4fvEXT")); flextGL.ProgramUniform4iEXT = reinterpret_cast(loader.load("glProgramUniform4iEXT")); flextGL.ProgramUniform4ivEXT = reinterpret_cast(loader.load("glProgramUniform4ivEXT")); flextGL.ProgramUniform4uiEXT = reinterpret_cast(loader.load("glProgramUniform4uiEXT")); flextGL.ProgramUniform4uivEXT = reinterpret_cast(loader.load("glProgramUniform4uivEXT")); flextGL.ProgramUniformMatrix2fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix2fvEXT")); flextGL.ProgramUniformMatrix2x3fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix2x3fvEXT")); flextGL.ProgramUniformMatrix2x4fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix2x4fvEXT")); flextGL.ProgramUniformMatrix3fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix3fvEXT")); flextGL.ProgramUniformMatrix3x2fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix3x2fvEXT")); flextGL.ProgramUniformMatrix3x4fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix3x4fvEXT")); flextGL.ProgramUniformMatrix4fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix4fvEXT")); flextGL.ProgramUniformMatrix4x2fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix4x2fvEXT")); flextGL.ProgramUniformMatrix4x3fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix4x3fvEXT")); flextGL.UseProgramStagesEXT = reinterpret_cast(loader.load("glUseProgramStagesEXT")); flextGL.ValidateProgramPipelineEXT = reinterpret_cast(loader.load("glValidateProgramPipelineEXT")); /* GL_EXT_tessellation_shader */ flextGL.PatchParameteriEXT = reinterpret_cast(loader.load("glPatchParameteriEXT")); /* GL_EXT_texture_border_clamp */ flextGL.GetSamplerParameterIivEXT = reinterpret_cast(loader.load("glGetSamplerParameterIivEXT")); flextGL.GetSamplerParameterIuivEXT = reinterpret_cast(loader.load("glGetSamplerParameterIuivEXT")); flextGL.GetTexParameterIivEXT = reinterpret_cast(loader.load("glGetTexParameterIivEXT")); flextGL.GetTexParameterIuivEXT = reinterpret_cast(loader.load("glGetTexParameterIuivEXT")); flextGL.SamplerParameterIivEXT = reinterpret_cast(loader.load("glSamplerParameterIivEXT")); flextGL.SamplerParameterIuivEXT = reinterpret_cast(loader.load("glSamplerParameterIuivEXT")); flextGL.TexParameterIivEXT = reinterpret_cast(loader.load("glTexParameterIivEXT")); flextGL.TexParameterIuivEXT = reinterpret_cast(loader.load("glTexParameterIuivEXT")); /* GL_EXT_texture_buffer */ flextGL.TexBufferEXT = reinterpret_cast(loader.load("glTexBufferEXT")); flextGL.TexBufferRangeEXT = reinterpret_cast(loader.load("glTexBufferRangeEXT")); /* GL_KHR_blend_equation_advanced */ flextGL.BlendBarrierKHR = reinterpret_cast(loader.load("glBlendBarrierKHR")); /* GL_KHR_debug */ flextGL.DebugMessageCallbackKHR = reinterpret_cast(loader.load("glDebugMessageCallbackKHR")); flextGL.DebugMessageControlKHR = reinterpret_cast(loader.load("glDebugMessageControlKHR")); flextGL.DebugMessageInsertKHR = reinterpret_cast(loader.load("glDebugMessageInsertKHR")); flextGL.GetDebugMessageLogKHR = reinterpret_cast(loader.load("glGetDebugMessageLogKHR")); flextGL.GetObjectLabelKHR = reinterpret_cast(loader.load("glGetObjectLabelKHR")); flextGL.GetObjectPtrLabelKHR = reinterpret_cast(loader.load("glGetObjectPtrLabelKHR")); flextGL.GetPointervKHR = reinterpret_cast(loader.load("glGetPointervKHR")); flextGL.ObjectLabelKHR = reinterpret_cast(loader.load("glObjectLabelKHR")); flextGL.ObjectPtrLabelKHR = reinterpret_cast(loader.load("glObjectPtrLabelKHR")); flextGL.PopDebugGroupKHR = reinterpret_cast(loader.load("glPopDebugGroupKHR")); flextGL.PushDebugGroupKHR = reinterpret_cast(loader.load("glPushDebugGroupKHR")); /* GL_KHR_robustness */ flextGL.GetGraphicsResetStatusKHR = reinterpret_cast(loader.load("glGetGraphicsResetStatusKHR")); flextGL.GetnUniformfvKHR = reinterpret_cast(loader.load("glGetnUniformfvKHR")); flextGL.GetnUniformivKHR = reinterpret_cast(loader.load("glGetnUniformivKHR")); flextGL.GetnUniformuivKHR = reinterpret_cast(loader.load("glGetnUniformuivKHR")); flextGL.ReadnPixelsKHR = reinterpret_cast(loader.load("glReadnPixelsKHR")); /* GL_NV_polygon_mode */ flextGL.PolygonModeNV = reinterpret_cast(loader.load("glPolygonModeNV")); /* 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_OES_mapbuffer */ flextGL.GetBufferPointervOES = reinterpret_cast(loader.load("glGetBufferPointervOES")); flextGL.MapBufferOES = reinterpret_cast(loader.load("glMapBufferOES")); flextGL.UnmapBufferOES = reinterpret_cast(loader.load("glUnmapBufferOES")); /* GL_OES_sample_shading */ flextGL.MinSampleShadingOES = reinterpret_cast(loader.load("glMinSampleShadingOES")); /* GL_OES_texture_storage_multisample_2d_array */ flextGL.TexStorage3DMultisampleOES = reinterpret_cast(loader.load("glTexStorage3DMultisampleOES")); /* GL_OVR_multiview */ flextGL.FramebufferTextureMultiviewOVR = reinterpret_cast(loader.load("glFramebufferTextureMultiviewOVR")); }