diff --git a/external/OpenGL/GL/extensions.txt b/external/OpenGL/GL/extensions.txt index fea40a9d5..135a48876 100644 --- a/external/OpenGL/GL/extensions.txt +++ b/external/OpenGL/GL/extensions.txt @@ -10,4 +10,5 @@ EXT_texture_mirror_clamp EXT_direct_state_access EXT_debug_label + EXT_debug_marker GREMEDY_string_marker diff --git a/external/OpenGL/GL/gl_magnum.c b/external/OpenGL/GL/gl_magnum.c index b695ff5e0..f72669798 100644 --- a/external/OpenGL/GL/gl_magnum.c +++ b/external/OpenGL/GL/gl_magnum.c @@ -91,6 +91,7 @@ int ogl_ext_EXT_texture_filter_anisotropic = ogl_LOAD_FAILED; int ogl_ext_EXT_texture_mirror_clamp = ogl_LOAD_FAILED; int ogl_ext_EXT_direct_state_access = ogl_LOAD_FAILED; int ogl_ext_EXT_debug_label = ogl_LOAD_FAILED; +int ogl_ext_EXT_debug_marker = ogl_LOAD_FAILED; int ogl_ext_GREMEDY_string_marker = ogl_LOAD_FAILED; GLLOADGEN_EXPORT GLenum (CODEGEN_FUNCPTR *_ptrc_glGetGraphicsResetStatusARB)() = NULL; @@ -945,6 +946,22 @@ static int Load_EXT_debug_label() return numFailed; } +GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glInsertEventMarkerEXT)(GLsizei, const GLchar *) = NULL; +GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glPopGroupMarkerEXT)() = NULL; +GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glPushGroupMarkerEXT)(GLsizei, const GLchar *) = NULL; + +static int Load_EXT_debug_marker() +{ + int numFailed = 0; + _ptrc_glInsertEventMarkerEXT = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLchar *))IntGetProcAddress("glInsertEventMarkerEXT"); + if(!_ptrc_glInsertEventMarkerEXT) numFailed++; + _ptrc_glPopGroupMarkerEXT = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glPopGroupMarkerEXT"); + if(!_ptrc_glPopGroupMarkerEXT) numFailed++; + _ptrc_glPushGroupMarkerEXT = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLchar *))IntGetProcAddress("glPushGroupMarkerEXT"); + if(!_ptrc_glPushGroupMarkerEXT) numFailed++; + return numFailed; +} + GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glStringMarkerGREMEDY)(GLsizei, const void *) = NULL; static int Load_GREMEDY_string_marker() @@ -2615,7 +2632,7 @@ typedef struct ogl_StrToExtMap_s PFN_LOADFUNCPOINTERS LoadExtension; } ogl_StrToExtMap; -static ogl_StrToExtMap ExtensionMap[9] = { +static ogl_StrToExtMap ExtensionMap[10] = { {"GL_AMD_vertex_shader_layer", &ogl_ext_AMD_vertex_shader_layer, NULL}, {"GL_AMD_shader_trinary_minmax", &ogl_ext_AMD_shader_trinary_minmax, NULL}, {"GL_ARB_robustness", &ogl_ext_ARB_robustness, Load_ARB_robustness}, @@ -2624,10 +2641,11 @@ static ogl_StrToExtMap ExtensionMap[9] = { {"GL_EXT_texture_mirror_clamp", &ogl_ext_EXT_texture_mirror_clamp, NULL}, {"GL_EXT_direct_state_access", &ogl_ext_EXT_direct_state_access, Load_EXT_direct_state_access}, {"GL_EXT_debug_label", &ogl_ext_EXT_debug_label, Load_EXT_debug_label}, + {"GL_EXT_debug_marker", &ogl_ext_EXT_debug_marker, Load_EXT_debug_marker}, {"GL_GREMEDY_string_marker", &ogl_ext_GREMEDY_string_marker, Load_GREMEDY_string_marker}, }; -static int g_extensionMapSize = 9; +static int g_extensionMapSize = 10; static void ClearExtensionVars() { @@ -2639,6 +2657,7 @@ static void ClearExtensionVars() ogl_ext_EXT_texture_mirror_clamp = ogl_LOAD_FAILED; ogl_ext_EXT_direct_state_access = ogl_LOAD_FAILED; ogl_ext_EXT_debug_label = ogl_LOAD_FAILED; + ogl_ext_EXT_debug_marker = ogl_LOAD_FAILED; ogl_ext_GREMEDY_string_marker = ogl_LOAD_FAILED; } diff --git a/external/OpenGL/GL/gl_magnum.h b/external/OpenGL/GL/gl_magnum.h index 68bba02a0..cd53bf8a7 100644 --- a/external/OpenGL/GL/gl_magnum.h +++ b/external/OpenGL/GL/gl_magnum.h @@ -171,6 +171,7 @@ extern int ogl_ext_EXT_texture_filter_anisotropic; extern int ogl_ext_EXT_texture_mirror_clamp; extern int ogl_ext_EXT_direct_state_access; extern int ogl_ext_EXT_debug_label; +extern int ogl_ext_EXT_debug_marker; extern int ogl_ext_GREMEDY_string_marker; #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 @@ -2088,6 +2089,16 @@ extern GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glLabelObjectEXT)(GLenum, G #define glLabelObjectEXT _ptrc_glLabelObjectEXT #endif /*GL_EXT_debug_label*/ +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +extern GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glInsertEventMarkerEXT)(GLsizei, const GLchar *); +#define glInsertEventMarkerEXT _ptrc_glInsertEventMarkerEXT +extern GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glPopGroupMarkerEXT)(); +#define glPopGroupMarkerEXT _ptrc_glPopGroupMarkerEXT +extern GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glPushGroupMarkerEXT)(GLsizei, const GLchar *); +#define glPushGroupMarkerEXT _ptrc_glPushGroupMarkerEXT +#endif /*GL_EXT_debug_marker*/ + #ifndef GL_GREMEDY_string_marker #define GL_GREMEDY_string_marker 1 extern GLLOADGEN_EXPORT void (CODEGEN_FUNCPTR *_ptrc_glStringMarkerGREMEDY)(GLsizei, const void *); diff --git a/src/Context.cpp b/src/Context.cpp index 26b34a719..51fe1582b 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -87,6 +87,7 @@ const std::vector& Extension::extensions(Version version) { _extension(GL,EXT,texture_mirror_clamp), _extension(GL,EXT,direct_state_access), _extension(GL,EXT,debug_label), + _extension(GL,EXT,debug_marker), _extension(GL,GREMEDY,string_marker)}; // done static const std::vector extensions300{ /** diff --git a/src/Extensions.h b/src/Extensions.h index 2f0105993..cfef5eb41 100644 --- a/src/Extensions.h +++ b/src/Extensions.h @@ -182,6 +182,7 @@ namespace GL { _extension(GL,EXT,direct_state_access, GL210, None) // #353 _extension(GL,EXT,texture_snorm, GL300, GL310) // #365 _extension(GL,EXT,debug_label, GL210, None) // #439 + _extension(GL,EXT,debug_marker, GL210, None) // #440 } namespace GREMEDY { _extension(GL,GREMEDY,string_marker, GL210, None) // #311 } namespace INTEL {