/* 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_ANGLE_framebuffer_blit */ flextGL.BlitFramebufferANGLE = reinterpret_cast(loader.load("glBlitFramebufferANGLE")); /* GL_ANGLE_framebuffer_multisample */ flextGL.RenderbufferStorageMultisampleANGLE = reinterpret_cast(loader.load("glRenderbufferStorageMultisampleANGLE")); /* GL_ANGLE_instanced_arrays */ flextGL.DrawArraysInstancedANGLE = reinterpret_cast(loader.load("glDrawArraysInstancedANGLE")); flextGL.DrawElementsInstancedANGLE = reinterpret_cast(loader.load("glDrawElementsInstancedANGLE")); flextGL.VertexAttribDivisorANGLE = reinterpret_cast(loader.load("glVertexAttribDivisorANGLE")); /* GL_APPLE_framebuffer_multisample */ flextGL.RenderbufferStorageMultisampleAPPLE = reinterpret_cast(loader.load("glRenderbufferStorageMultisampleAPPLE")); flextGL.ResolveMultisampleFramebufferAPPLE = reinterpret_cast(loader.load("glResolveMultisampleFramebufferAPPLE")); /* GL_ES_VERSION_2_0 */ flextGL.ActiveTexture = reinterpret_cast(loader.load("glActiveTexture")); flextGL.AttachShader = reinterpret_cast(loader.load("glAttachShader")); flextGL.BindAttribLocation = reinterpret_cast(loader.load("glBindAttribLocation")); flextGL.BindBuffer = reinterpret_cast(loader.load("glBindBuffer")); flextGL.BindFramebuffer = reinterpret_cast(loader.load("glBindFramebuffer")); flextGL.BindRenderbuffer = reinterpret_cast(loader.load("glBindRenderbuffer")); flextGL.BlendColor = reinterpret_cast(loader.load("glBlendColor")); flextGL.BlendEquation = reinterpret_cast(loader.load("glBlendEquation")); flextGL.BlendEquationSeparate = reinterpret_cast(loader.load("glBlendEquationSeparate")); flextGL.BlendFuncSeparate = reinterpret_cast(loader.load("glBlendFuncSeparate")); flextGL.BufferData = reinterpret_cast(loader.load("glBufferData")); flextGL.BufferSubData = reinterpret_cast(loader.load("glBufferSubData")); flextGL.CheckFramebufferStatus = reinterpret_cast(loader.load("glCheckFramebufferStatus")); flextGL.ClearDepthf = reinterpret_cast(loader.load("glClearDepthf")); flextGL.CompileShader = reinterpret_cast(loader.load("glCompileShader")); flextGL.CompressedTexImage2D = reinterpret_cast(loader.load("glCompressedTexImage2D")); flextGL.CompressedTexSubImage2D = reinterpret_cast(loader.load("glCompressedTexSubImage2D")); flextGL.CreateProgram = reinterpret_cast(loader.load("glCreateProgram")); flextGL.CreateShader = reinterpret_cast(loader.load("glCreateShader")); flextGL.DeleteBuffers = reinterpret_cast(loader.load("glDeleteBuffers")); flextGL.DeleteFramebuffers = reinterpret_cast(loader.load("glDeleteFramebuffers")); flextGL.DeleteProgram = reinterpret_cast(loader.load("glDeleteProgram")); flextGL.DeleteRenderbuffers = reinterpret_cast(loader.load("glDeleteRenderbuffers")); flextGL.DeleteShader = reinterpret_cast(loader.load("glDeleteShader")); flextGL.DepthRangef = reinterpret_cast(loader.load("glDepthRangef")); flextGL.DetachShader = reinterpret_cast(loader.load("glDetachShader")); flextGL.DisableVertexAttribArray = reinterpret_cast(loader.load("glDisableVertexAttribArray")); flextGL.EnableVertexAttribArray = reinterpret_cast(loader.load("glEnableVertexAttribArray")); flextGL.FramebufferRenderbuffer = reinterpret_cast(loader.load("glFramebufferRenderbuffer")); flextGL.FramebufferTexture2D = reinterpret_cast(loader.load("glFramebufferTexture2D")); flextGL.GenBuffers = reinterpret_cast(loader.load("glGenBuffers")); flextGL.GenFramebuffers = reinterpret_cast(loader.load("glGenFramebuffers")); flextGL.GenRenderbuffers = reinterpret_cast(loader.load("glGenRenderbuffers")); flextGL.GenerateMipmap = reinterpret_cast(loader.load("glGenerateMipmap")); 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.GetBufferParameteriv = reinterpret_cast(loader.load("glGetBufferParameteriv")); flextGL.GetFramebufferAttachmentParameteriv = reinterpret_cast(loader.load("glGetFramebufferAttachmentParameteriv")); flextGL.GetProgramInfoLog = reinterpret_cast(loader.load("glGetProgramInfoLog")); flextGL.GetProgramiv = reinterpret_cast(loader.load("glGetProgramiv")); flextGL.GetRenderbufferParameteriv = reinterpret_cast(loader.load("glGetRenderbufferParameteriv")); flextGL.GetShaderInfoLog = reinterpret_cast(loader.load("glGetShaderInfoLog")); flextGL.GetShaderPrecisionFormat = reinterpret_cast(loader.load("glGetShaderPrecisionFormat")); 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.GetVertexAttribfv = reinterpret_cast(loader.load("glGetVertexAttribfv")); flextGL.GetVertexAttribiv = reinterpret_cast(loader.load("glGetVertexAttribiv")); flextGL.IsBuffer = reinterpret_cast(loader.load("glIsBuffer")); flextGL.IsFramebuffer = reinterpret_cast(loader.load("glIsFramebuffer")); flextGL.IsProgram = reinterpret_cast(loader.load("glIsProgram")); flextGL.IsRenderbuffer = reinterpret_cast(loader.load("glIsRenderbuffer")); flextGL.IsShader = reinterpret_cast(loader.load("glIsShader")); flextGL.LinkProgram = reinterpret_cast(loader.load("glLinkProgram")); flextGL.ReleaseShaderCompiler = reinterpret_cast(loader.load("glReleaseShaderCompiler")); flextGL.RenderbufferStorage = reinterpret_cast(loader.load("glRenderbufferStorage")); flextGL.SampleCoverage = reinterpret_cast(loader.load("glSampleCoverage")); flextGL.ShaderBinary = reinterpret_cast(loader.load("glShaderBinary")); 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.VertexAttrib1f = reinterpret_cast(loader.load("glVertexAttrib1f")); flextGL.VertexAttrib1fv = reinterpret_cast(loader.load("glVertexAttrib1fv")); flextGL.VertexAttrib2f = reinterpret_cast(loader.load("glVertexAttrib2f")); flextGL.VertexAttrib2fv = reinterpret_cast(loader.load("glVertexAttrib2fv")); flextGL.VertexAttrib3f = reinterpret_cast(loader.load("glVertexAttrib3f")); flextGL.VertexAttrib3fv = reinterpret_cast(loader.load("glVertexAttrib3fv")); flextGL.VertexAttrib4f = reinterpret_cast(loader.load("glVertexAttrib4f")); flextGL.VertexAttrib4fv = reinterpret_cast(loader.load("glVertexAttrib4fv")); flextGL.VertexAttribPointer = reinterpret_cast(loader.load("glVertexAttribPointer")); /* 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_discard_framebuffer */ flextGL.DiscardFramebufferEXT = reinterpret_cast(loader.load("glDiscardFramebufferEXT")); /* GL_EXT_disjoint_timer_query */ 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.QueryCounterEXT = reinterpret_cast(loader.load("glQueryCounterEXT")); /* GL_EXT_draw_buffers */ flextGL.DrawBuffersEXT = reinterpret_cast(loader.load("glDrawBuffersEXT")); /* 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_instanced_arrays */ flextGL.DrawArraysInstancedEXT = reinterpret_cast(loader.load("glDrawArraysInstancedEXT")); flextGL.DrawElementsInstancedEXT = reinterpret_cast(loader.load("glDrawElementsInstancedEXT")); flextGL.VertexAttribDivisorEXT = reinterpret_cast(loader.load("glVertexAttribDivisorEXT")); /* GL_EXT_map_buffer_range */ flextGL.FlushMappedBufferRangeEXT = reinterpret_cast(loader.load("glFlushMappedBufferRangeEXT")); flextGL.MapBufferRangeEXT = reinterpret_cast(loader.load("glMapBufferRangeEXT")); /* 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_occlusion_query_boolean */ 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.GetQueryObjectuivEXT = reinterpret_cast(loader.load("glGetQueryObjectuivEXT")); flextGL.GetQueryivEXT = reinterpret_cast(loader.load("glGetQueryivEXT")); flextGL.IsQueryEXT = reinterpret_cast(loader.load("glIsQueryEXT")); /* GL_EXT_polygon_offset_clamp */ flextGL.PolygonOffsetClampEXT = reinterpret_cast(loader.load("glPolygonOffsetClampEXT")); /* 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.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.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.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.ProgramUniformMatrix2fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix2fvEXT")); flextGL.ProgramUniformMatrix3fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix3fvEXT")); flextGL.ProgramUniformMatrix4fvEXT = reinterpret_cast(loader.load("glProgramUniformMatrix4fvEXT")); flextGL.UseProgramStagesEXT = reinterpret_cast(loader.load("glUseProgramStagesEXT")); flextGL.ValidateProgramPipelineEXT = reinterpret_cast(loader.load("glValidateProgramPipelineEXT")); /* 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_storage */ flextGL.TexStorage2DEXT = reinterpret_cast(loader.load("glTexStorage2DEXT")); flextGL.TexStorage3DEXT = reinterpret_cast(loader.load("glTexStorage3DEXT")); /* 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_draw_buffers */ flextGL.DrawBuffersNV = reinterpret_cast(loader.load("glDrawBuffersNV")); /* GL_NV_draw_instanced */ flextGL.DrawArraysInstancedNV = reinterpret_cast(loader.load("glDrawArraysInstancedNV")); flextGL.DrawElementsInstancedNV = reinterpret_cast(loader.load("glDrawElementsInstancedNV")); /* GL_NV_framebuffer_blit */ flextGL.BlitFramebufferNV = reinterpret_cast(loader.load("glBlitFramebufferNV")); /* GL_NV_framebuffer_multisample */ flextGL.RenderbufferStorageMultisampleNV = reinterpret_cast(loader.load("glRenderbufferStorageMultisampleNV")); /* GL_NV_instanced_arrays */ flextGL.VertexAttribDivisorNV = reinterpret_cast(loader.load("glVertexAttribDivisorNV")); /* GL_NV_polygon_mode */ flextGL.PolygonModeNV = reinterpret_cast(loader.load("glPolygonModeNV")); /* GL_NV_read_buffer */ flextGL.ReadBufferNV = reinterpret_cast(loader.load("glReadBufferNV")); /* 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_texture_3D */ flextGL.CompressedTexImage3DOES = reinterpret_cast(loader.load("glCompressedTexImage3DOES")); flextGL.CompressedTexSubImage3DOES = reinterpret_cast(loader.load("glCompressedTexSubImage3DOES")); flextGL.CopyTexSubImage3DOES = reinterpret_cast(loader.load("glCopyTexSubImage3DOES")); flextGL.FramebufferTexture3DOES = reinterpret_cast(loader.load("glFramebufferTexture3DOES")); flextGL.TexImage3DOES = reinterpret_cast(loader.load("glTexImage3DOES")); flextGL.TexSubImage3DOES = reinterpret_cast(loader.load("glTexSubImage3DOES")); /* GL_OES_vertex_array_object */ flextGL.BindVertexArrayOES = reinterpret_cast(loader.load("glBindVertexArrayOES")); flextGL.DeleteVertexArraysOES = reinterpret_cast(loader.load("glDeleteVertexArraysOES")); flextGL.GenVertexArraysOES = reinterpret_cast(loader.load("glGenVertexArraysOES")); flextGL.IsVertexArrayOES = reinterpret_cast(loader.load("glIsVertexArrayOES")); }