/* This file is part of Magnum. Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 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" #undef glCopyImageSubDataEXT #undef glGetObjectLabelEXT #undef glLabelObjectEXT #undef glInsertEventMarkerEXT #undef glPopGroupMarkerEXT #undef glPushGroupMarkerEXT #undef glBeginQueryEXT #undef glDeleteQueriesEXT #undef glEndQueryEXT #undef glGenQueriesEXT #undef glGetInteger64vEXT #undef glGetQueryObjecti64vEXT #undef glGetQueryObjectivEXT #undef glGetQueryObjectui64vEXT #undef glGetQueryObjectuivEXT #undef glGetQueryivEXT #undef glIsQueryEXT #undef glQueryCounterEXT #undef glBlendEquationSeparateiEXT #undef glBlendEquationiEXT #undef glBlendFuncSeparateiEXT #undef glBlendFunciEXT #undef glColorMaskiEXT #undef glDisableiEXT #undef glEnableiEXT #undef glIsEnablediEXT #undef glFramebufferTextureEXT #undef glMultiDrawArraysEXT #undef glMultiDrawElementsEXT #undef glFramebufferTexture2DMultisampleEXT #undef glRenderbufferStorageMultisampleEXT #undef glPolygonOffsetClampEXT #undef glPrimitiveBoundingBoxEXT #undef glGetGraphicsResetStatusEXT #undef glGetnUniformfvEXT #undef glGetnUniformivEXT #undef glReadnPixelsEXT #undef glActiveShaderProgramEXT #undef glBindProgramPipelineEXT #undef glCreateShaderProgramvEXT #undef glDeleteProgramPipelinesEXT #undef glGenProgramPipelinesEXT #undef glGetProgramPipelineInfoLogEXT #undef glGetProgramPipelineivEXT #undef glIsProgramPipelineEXT #undef glProgramParameteriEXT #undef glProgramUniform1fEXT #undef glProgramUniform1fvEXT #undef glProgramUniform1iEXT #undef glProgramUniform1ivEXT #undef glProgramUniform1uiEXT #undef glProgramUniform1uivEXT #undef glProgramUniform2fEXT #undef glProgramUniform2fvEXT #undef glProgramUniform2iEXT #undef glProgramUniform2ivEXT #undef glProgramUniform2uiEXT #undef glProgramUniform2uivEXT #undef glProgramUniform3fEXT #undef glProgramUniform3fvEXT #undef glProgramUniform3iEXT #undef glProgramUniform3ivEXT #undef glProgramUniform3uiEXT #undef glProgramUniform3uivEXT #undef glProgramUniform4fEXT #undef glProgramUniform4fvEXT #undef glProgramUniform4iEXT #undef glProgramUniform4ivEXT #undef glProgramUniform4uiEXT #undef glProgramUniform4uivEXT #undef glProgramUniformMatrix2fvEXT #undef glProgramUniformMatrix2x3fvEXT #undef glProgramUniformMatrix2x4fvEXT #undef glProgramUniformMatrix3fvEXT #undef glProgramUniformMatrix3x2fvEXT #undef glProgramUniformMatrix3x4fvEXT #undef glProgramUniformMatrix4fvEXT #undef glProgramUniformMatrix4x2fvEXT #undef glProgramUniformMatrix4x3fvEXT #undef glUseProgramStagesEXT #undef glValidateProgramPipelineEXT #undef glPatchParameteriEXT #undef glGetSamplerParameterIivEXT #undef glGetSamplerParameterIuivEXT #undef glGetTexParameterIivEXT #undef glGetTexParameterIuivEXT #undef glSamplerParameterIivEXT #undef glSamplerParameterIuivEXT #undef glTexParameterIivEXT #undef glTexParameterIuivEXT #undef glTexBufferEXT #undef glTexBufferRangeEXT #undef glBlendBarrierKHR #undef glDebugMessageCallbackKHR #undef glDebugMessageControlKHR #undef glDebugMessageInsertKHR #undef glGetDebugMessageLogKHR #undef glGetObjectLabelKHR #undef glGetObjectPtrLabelKHR #undef glGetPointervKHR #undef glObjectLabelKHR #undef glObjectPtrLabelKHR #undef glPopDebugGroupKHR #undef glPushDebugGroupKHR #undef glGetGraphicsResetStatusKHR #undef glGetnUniformfvKHR #undef glGetnUniformivKHR #undef glGetnUniformuivKHR #undef glReadnPixelsKHR #undef glPolygonModeNV #undef glFramebufferSampleLocationsfvNV #undef glNamedFramebufferSampleLocationsfvNV #undef glResolveDepthValuesNV #undef glGetBufferPointervOES #undef glMapBufferOES #undef glUnmapBufferOES #undef glMinSampleShadingOES #undef glTexStorage3DMultisampleOES #undef glFramebufferTextureMultiviewOVR #include void flextGLInit(Magnum::GL::Context&) { /* GL_EXT_copy_image */ #if GL_EXT_copy_image flextGL.CopyImageSubDataEXT = reinterpret_cast(glCopyImageSubDataEXT); #endif /* GL_EXT_debug_label */ #if GL_EXT_debug_label flextGL.GetObjectLabelEXT = reinterpret_cast(glGetObjectLabelEXT); flextGL.LabelObjectEXT = reinterpret_cast(glLabelObjectEXT); #endif /* GL_EXT_debug_marker */ #if GL_EXT_debug_marker flextGL.InsertEventMarkerEXT = reinterpret_cast(glInsertEventMarkerEXT); flextGL.PopGroupMarkerEXT = reinterpret_cast(glPopGroupMarkerEXT); flextGL.PushGroupMarkerEXT = reinterpret_cast(glPushGroupMarkerEXT); #endif /* GL_EXT_disjoint_timer_query */ #if GL_EXT_disjoint_timer_query flextGL.BeginQueryEXT = reinterpret_cast(glBeginQueryEXT); flextGL.DeleteQueriesEXT = reinterpret_cast(glDeleteQueriesEXT); flextGL.EndQueryEXT = reinterpret_cast(glEndQueryEXT); flextGL.GenQueriesEXT = reinterpret_cast(glGenQueriesEXT); flextGL.GetInteger64vEXT = reinterpret_cast(glGetInteger64vEXT); flextGL.GetQueryObjecti64vEXT = reinterpret_cast(glGetQueryObjecti64vEXT); flextGL.GetQueryObjectivEXT = reinterpret_cast(glGetQueryObjectivEXT); flextGL.GetQueryObjectui64vEXT = reinterpret_cast(glGetQueryObjectui64vEXT); flextGL.GetQueryObjectuivEXT = reinterpret_cast(glGetQueryObjectuivEXT); flextGL.GetQueryivEXT = reinterpret_cast(glGetQueryivEXT); flextGL.IsQueryEXT = reinterpret_cast(glIsQueryEXT); flextGL.QueryCounterEXT = reinterpret_cast(glQueryCounterEXT); #endif /* GL_EXT_draw_buffers_indexed */ #if GL_EXT_draw_buffers_indexed flextGL.BlendEquationSeparateiEXT = reinterpret_cast(glBlendEquationSeparateiEXT); flextGL.BlendEquationiEXT = reinterpret_cast(glBlendEquationiEXT); flextGL.BlendFuncSeparateiEXT = reinterpret_cast(glBlendFuncSeparateiEXT); flextGL.BlendFunciEXT = reinterpret_cast(glBlendFunciEXT); flextGL.ColorMaskiEXT = reinterpret_cast(glColorMaskiEXT); flextGL.DisableiEXT = reinterpret_cast(glDisableiEXT); flextGL.EnableiEXT = reinterpret_cast(glEnableiEXT); flextGL.IsEnablediEXT = reinterpret_cast(glIsEnablediEXT); #endif /* GL_EXT_geometry_shader */ #if GL_EXT_geometry_shader flextGL.FramebufferTextureEXT = reinterpret_cast(glFramebufferTextureEXT); #endif /* GL_EXT_multi_draw_arrays */ #if GL_EXT_multi_draw_arrays flextGL.MultiDrawArraysEXT = reinterpret_cast(glMultiDrawArraysEXT); flextGL.MultiDrawElementsEXT = reinterpret_cast(glMultiDrawElementsEXT); #endif /* GL_EXT_multisampled_render_to_texture */ #if GL_EXT_multisampled_render_to_texture flextGL.FramebufferTexture2DMultisampleEXT = reinterpret_cast(glFramebufferTexture2DMultisampleEXT); flextGL.RenderbufferStorageMultisampleEXT = reinterpret_cast(glRenderbufferStorageMultisampleEXT); #endif /* GL_EXT_polygon_offset_clamp */ #if GL_EXT_polygon_offset_clamp flextGL.PolygonOffsetClampEXT = reinterpret_cast(glPolygonOffsetClampEXT); #endif /* GL_EXT_primitive_bounding_box */ #if GL_EXT_primitive_bounding_box flextGL.PrimitiveBoundingBoxEXT = reinterpret_cast(glPrimitiveBoundingBoxEXT); #endif /* GL_EXT_robustness */ #if GL_EXT_robustness flextGL.GetGraphicsResetStatusEXT = reinterpret_cast(glGetGraphicsResetStatusEXT); flextGL.GetnUniformfvEXT = reinterpret_cast(glGetnUniformfvEXT); flextGL.GetnUniformivEXT = reinterpret_cast(glGetnUniformivEXT); flextGL.ReadnPixelsEXT = reinterpret_cast(glReadnPixelsEXT); #endif /* GL_EXT_separate_shader_objects */ #if GL_EXT_separate_shader_objects flextGL.ActiveShaderProgramEXT = reinterpret_cast(glActiveShaderProgramEXT); flextGL.BindProgramPipelineEXT = reinterpret_cast(glBindProgramPipelineEXT); flextGL.CreateShaderProgramvEXT = reinterpret_cast(glCreateShaderProgramvEXT); flextGL.DeleteProgramPipelinesEXT = reinterpret_cast(glDeleteProgramPipelinesEXT); flextGL.GenProgramPipelinesEXT = reinterpret_cast(glGenProgramPipelinesEXT); flextGL.GetProgramPipelineInfoLogEXT = reinterpret_cast(glGetProgramPipelineInfoLogEXT); flextGL.GetProgramPipelineivEXT = reinterpret_cast(glGetProgramPipelineivEXT); flextGL.IsProgramPipelineEXT = reinterpret_cast(glIsProgramPipelineEXT); flextGL.ProgramParameteriEXT = reinterpret_cast(glProgramParameteriEXT); flextGL.ProgramUniform1fEXT = reinterpret_cast(glProgramUniform1fEXT); flextGL.ProgramUniform1fvEXT = reinterpret_cast(glProgramUniform1fvEXT); flextGL.ProgramUniform1iEXT = reinterpret_cast(glProgramUniform1iEXT); flextGL.ProgramUniform1ivEXT = reinterpret_cast(glProgramUniform1ivEXT); flextGL.ProgramUniform1uiEXT = reinterpret_cast(glProgramUniform1uiEXT); flextGL.ProgramUniform1uivEXT = reinterpret_cast(glProgramUniform1uivEXT); flextGL.ProgramUniform2fEXT = reinterpret_cast(glProgramUniform2fEXT); flextGL.ProgramUniform2fvEXT = reinterpret_cast(glProgramUniform2fvEXT); flextGL.ProgramUniform2iEXT = reinterpret_cast(glProgramUniform2iEXT); flextGL.ProgramUniform2ivEXT = reinterpret_cast(glProgramUniform2ivEXT); flextGL.ProgramUniform2uiEXT = reinterpret_cast(glProgramUniform2uiEXT); flextGL.ProgramUniform2uivEXT = reinterpret_cast(glProgramUniform2uivEXT); flextGL.ProgramUniform3fEXT = reinterpret_cast(glProgramUniform3fEXT); flextGL.ProgramUniform3fvEXT = reinterpret_cast(glProgramUniform3fvEXT); flextGL.ProgramUniform3iEXT = reinterpret_cast(glProgramUniform3iEXT); flextGL.ProgramUniform3ivEXT = reinterpret_cast(glProgramUniform3ivEXT); flextGL.ProgramUniform3uiEXT = reinterpret_cast(glProgramUniform3uiEXT); flextGL.ProgramUniform3uivEXT = reinterpret_cast(glProgramUniform3uivEXT); flextGL.ProgramUniform4fEXT = reinterpret_cast(glProgramUniform4fEXT); flextGL.ProgramUniform4fvEXT = reinterpret_cast(glProgramUniform4fvEXT); flextGL.ProgramUniform4iEXT = reinterpret_cast(glProgramUniform4iEXT); flextGL.ProgramUniform4ivEXT = reinterpret_cast(glProgramUniform4ivEXT); flextGL.ProgramUniform4uiEXT = reinterpret_cast(glProgramUniform4uiEXT); flextGL.ProgramUniform4uivEXT = reinterpret_cast(glProgramUniform4uivEXT); flextGL.ProgramUniformMatrix2fvEXT = reinterpret_cast(glProgramUniformMatrix2fvEXT); flextGL.ProgramUniformMatrix2x3fvEXT = reinterpret_cast(glProgramUniformMatrix2x3fvEXT); flextGL.ProgramUniformMatrix2x4fvEXT = reinterpret_cast(glProgramUniformMatrix2x4fvEXT); flextGL.ProgramUniformMatrix3fvEXT = reinterpret_cast(glProgramUniformMatrix3fvEXT); flextGL.ProgramUniformMatrix3x2fvEXT = reinterpret_cast(glProgramUniformMatrix3x2fvEXT); flextGL.ProgramUniformMatrix3x4fvEXT = reinterpret_cast(glProgramUniformMatrix3x4fvEXT); flextGL.ProgramUniformMatrix4fvEXT = reinterpret_cast(glProgramUniformMatrix4fvEXT); flextGL.ProgramUniformMatrix4x2fvEXT = reinterpret_cast(glProgramUniformMatrix4x2fvEXT); flextGL.ProgramUniformMatrix4x3fvEXT = reinterpret_cast(glProgramUniformMatrix4x3fvEXT); flextGL.UseProgramStagesEXT = reinterpret_cast(glUseProgramStagesEXT); flextGL.ValidateProgramPipelineEXT = reinterpret_cast(glValidateProgramPipelineEXT); #endif /* GL_EXT_tessellation_shader */ #if GL_EXT_tessellation_shader flextGL.PatchParameteriEXT = reinterpret_cast(glPatchParameteriEXT); #endif /* GL_EXT_texture_border_clamp */ #if GL_EXT_texture_border_clamp flextGL.GetSamplerParameterIivEXT = reinterpret_cast(glGetSamplerParameterIivEXT); flextGL.GetSamplerParameterIuivEXT = reinterpret_cast(glGetSamplerParameterIuivEXT); flextGL.GetTexParameterIivEXT = reinterpret_cast(glGetTexParameterIivEXT); flextGL.GetTexParameterIuivEXT = reinterpret_cast(glGetTexParameterIuivEXT); flextGL.SamplerParameterIivEXT = reinterpret_cast(glSamplerParameterIivEXT); flextGL.SamplerParameterIuivEXT = reinterpret_cast(glSamplerParameterIuivEXT); flextGL.TexParameterIivEXT = reinterpret_cast(glTexParameterIivEXT); flextGL.TexParameterIuivEXT = reinterpret_cast(glTexParameterIuivEXT); #endif /* GL_EXT_texture_buffer */ #if GL_EXT_texture_buffer flextGL.TexBufferEXT = reinterpret_cast(glTexBufferEXT); flextGL.TexBufferRangeEXT = reinterpret_cast(glTexBufferRangeEXT); #endif /* GL_KHR_blend_equation_advanced */ #if GL_KHR_blend_equation_advanced flextGL.BlendBarrierKHR = reinterpret_cast(glBlendBarrierKHR); #endif /* GL_KHR_debug */ #if GL_KHR_debug flextGL.DebugMessageCallbackKHR = reinterpret_cast(glDebugMessageCallbackKHR); flextGL.DebugMessageControlKHR = reinterpret_cast(glDebugMessageControlKHR); flextGL.DebugMessageInsertKHR = reinterpret_cast(glDebugMessageInsertKHR); flextGL.GetDebugMessageLogKHR = reinterpret_cast(glGetDebugMessageLogKHR); flextGL.GetObjectLabelKHR = reinterpret_cast(glGetObjectLabelKHR); flextGL.GetObjectPtrLabelKHR = reinterpret_cast(glGetObjectPtrLabelKHR); flextGL.GetPointervKHR = reinterpret_cast(glGetPointervKHR); flextGL.ObjectLabelKHR = reinterpret_cast(glObjectLabelKHR); flextGL.ObjectPtrLabelKHR = reinterpret_cast(glObjectPtrLabelKHR); flextGL.PopDebugGroupKHR = reinterpret_cast(glPopDebugGroupKHR); flextGL.PushDebugGroupKHR = reinterpret_cast(glPushDebugGroupKHR); #endif /* GL_KHR_robustness */ #if GL_KHR_robustness flextGL.GetGraphicsResetStatusKHR = reinterpret_cast(glGetGraphicsResetStatusKHR); flextGL.GetnUniformfvKHR = reinterpret_cast(glGetnUniformfvKHR); flextGL.GetnUniformivKHR = reinterpret_cast(glGetnUniformivKHR); flextGL.GetnUniformuivKHR = reinterpret_cast(glGetnUniformuivKHR); flextGL.ReadnPixelsKHR = reinterpret_cast(glReadnPixelsKHR); #endif /* GL_NV_polygon_mode */ #if GL_NV_polygon_mode flextGL.PolygonModeNV = reinterpret_cast(glPolygonModeNV); #endif /* GL_NV_sample_locations */ #if GL_NV_sample_locations flextGL.FramebufferSampleLocationsfvNV = reinterpret_cast(glFramebufferSampleLocationsfvNV); flextGL.NamedFramebufferSampleLocationsfvNV = reinterpret_cast(glNamedFramebufferSampleLocationsfvNV); flextGL.ResolveDepthValuesNV = reinterpret_cast(glResolveDepthValuesNV); #endif /* GL_OES_mapbuffer */ #if GL_OES_mapbuffer flextGL.GetBufferPointervOES = reinterpret_cast(glGetBufferPointervOES); flextGL.MapBufferOES = reinterpret_cast(glMapBufferOES); flextGL.UnmapBufferOES = reinterpret_cast(glUnmapBufferOES); #endif /* GL_OES_sample_shading */ #if GL_OES_sample_shading flextGL.MinSampleShadingOES = reinterpret_cast(glMinSampleShadingOES); #endif /* GL_OES_texture_storage_multisample_2d_array */ #if GL_OES_texture_storage_multisample_2d_array flextGL.TexStorage3DMultisampleOES = reinterpret_cast(glTexStorage3DMultisampleOES); #endif /* GL_OVR_multiview */ #if GL_OVR_multiview flextGL.FramebufferTextureMultiviewOVR = reinterpret_cast(glFramebufferTextureMultiviewOVR); #endif }