added debug-event-markers for opengl so that you're able to set markers for renderdoc or other gpu debuggers what your program is currently doing
This commit is contained in:
parent
963551ee6e
commit
0e18b14605
25
src/external/glad.h
vendored
25
src/external/glad.h
vendored
@ -3446,6 +3446,19 @@ typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum
|
|||||||
GLAPI PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT;
|
GLAPI PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT;
|
||||||
#define glBlendFuncSeparateEXT glad_glBlendFuncSeparateEXT
|
#define glBlendFuncSeparateEXT glad_glBlendFuncSeparateEXT
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef GL_EXT_debug_marker
|
||||||
|
#define GL_EXT_debug_marker 1
|
||||||
|
GLAPI int GLAD_GL_EXT_debug_marker;
|
||||||
|
typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length, const GLchar *marker);
|
||||||
|
GLAPI PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT;
|
||||||
|
#define glInsertEventMarkerEXT glad_glInsertEventMarkerEXT
|
||||||
|
typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length, const GLchar *marker);
|
||||||
|
GLAPI PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT;
|
||||||
|
#define glPushGroupMarkerEXT glad_glPushGroupMarkerEXT
|
||||||
|
typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC)(void);
|
||||||
|
GLAPI PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT;
|
||||||
|
#define glPopGroupMarkerEXT glad_glPopGroupMarkerEXT
|
||||||
|
#endif
|
||||||
#ifndef GL_EXT_framebuffer_blit
|
#ifndef GL_EXT_framebuffer_blit
|
||||||
#define GL_EXT_framebuffer_blit 1
|
#define GL_EXT_framebuffer_blit 1
|
||||||
GLAPI int GLAD_GL_EXT_framebuffer_blit;
|
GLAPI int GLAD_GL_EXT_framebuffer_blit;
|
||||||
@ -4209,6 +4222,7 @@ int GLAD_GL_ARB_vertex_shader;
|
|||||||
int GLAD_GL_ARB_vertex_attrib_binding;
|
int GLAD_GL_ARB_vertex_attrib_binding;
|
||||||
int GLAD_GL_ARB_vertex_program;
|
int GLAD_GL_ARB_vertex_program;
|
||||||
int GLAD_GL_EXT_texture_compression_s3tc;
|
int GLAD_GL_EXT_texture_compression_s3tc;
|
||||||
|
int GLAD_GL_EXT_debug_marker;
|
||||||
int GLAD_GL_EXT_texture_swizzle;
|
int GLAD_GL_EXT_texture_swizzle;
|
||||||
int GLAD_GL_ARB_texture_multisample;
|
int GLAD_GL_ARB_texture_multisample;
|
||||||
int GLAD_GL_ARB_texture_rg;
|
int GLAD_GL_ARB_texture_rg;
|
||||||
@ -4391,6 +4405,9 @@ PFNGLGETVARIANTARRAYOBJECTIVATIPROC glad_glGetVariantArrayObjectivATI;
|
|||||||
PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT;
|
PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT;
|
||||||
PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT;
|
PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT;
|
||||||
PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT;
|
PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT;
|
||||||
|
PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT;
|
||||||
|
PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT;
|
||||||
|
PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT;
|
||||||
PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT;
|
PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT;
|
||||||
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT;
|
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT;
|
||||||
PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
|
PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
|
||||||
@ -5190,6 +5207,12 @@ static void load_GL_EXT_blend_func_separate(GLADloadproc load) {
|
|||||||
if(!GLAD_GL_EXT_blend_func_separate) return;
|
if(!GLAD_GL_EXT_blend_func_separate) return;
|
||||||
glad_glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC)load("glBlendFuncSeparateEXT");
|
glad_glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC)load("glBlendFuncSeparateEXT");
|
||||||
}
|
}
|
||||||
|
static void load_GL_EXT_debug_marker(GLADloadproc load) {
|
||||||
|
if(!GLAD_GL_EXT_debug_marker) return;
|
||||||
|
glad_glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)load("glInsertEventMarkerEXT");
|
||||||
|
glad_glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)load("glPushGroupMarkerEXT");
|
||||||
|
glad_glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)load("glPopGroupMarkerEXT");
|
||||||
|
}
|
||||||
static void load_GL_EXT_framebuffer_blit(GLADloadproc load) {
|
static void load_GL_EXT_framebuffer_blit(GLADloadproc load) {
|
||||||
if(!GLAD_GL_EXT_framebuffer_blit) return;
|
if(!GLAD_GL_EXT_framebuffer_blit) return;
|
||||||
glad_glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)load("glBlitFramebufferEXT");
|
glad_glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)load("glBlitFramebufferEXT");
|
||||||
@ -5316,6 +5339,7 @@ static int find_extensionsGL(void) {
|
|||||||
GLAD_GL_EXT_blend_color = has_ext("GL_EXT_blend_color");
|
GLAD_GL_EXT_blend_color = has_ext("GL_EXT_blend_color");
|
||||||
GLAD_GL_EXT_blend_equation_separate = has_ext("GL_EXT_blend_equation_separate");
|
GLAD_GL_EXT_blend_equation_separate = has_ext("GL_EXT_blend_equation_separate");
|
||||||
GLAD_GL_EXT_blend_func_separate = has_ext("GL_EXT_blend_func_separate");
|
GLAD_GL_EXT_blend_func_separate = has_ext("GL_EXT_blend_func_separate");
|
||||||
|
GLAD_GL_EXT_debug_marker = has_ext("GL_EXT_debug_marker");
|
||||||
GLAD_GL_EXT_framebuffer_blit = has_ext("GL_EXT_framebuffer_blit");
|
GLAD_GL_EXT_framebuffer_blit = has_ext("GL_EXT_framebuffer_blit");
|
||||||
GLAD_GL_EXT_framebuffer_multisample = has_ext("GL_EXT_framebuffer_multisample");
|
GLAD_GL_EXT_framebuffer_multisample = has_ext("GL_EXT_framebuffer_multisample");
|
||||||
GLAD_GL_EXT_framebuffer_multisample_blit_scaled = has_ext("GL_EXT_framebuffer_multisample_blit_scaled");
|
GLAD_GL_EXT_framebuffer_multisample_blit_scaled = has_ext("GL_EXT_framebuffer_multisample_blit_scaled");
|
||||||
@ -5430,6 +5454,7 @@ int gladLoadGLLoader(GLADloadproc load) {
|
|||||||
load_GL_EXT_blend_color(load);
|
load_GL_EXT_blend_color(load);
|
||||||
load_GL_EXT_blend_equation_separate(load);
|
load_GL_EXT_blend_equation_separate(load);
|
||||||
load_GL_EXT_blend_func_separate(load);
|
load_GL_EXT_blend_func_separate(load);
|
||||||
|
load_GL_EXT_debug_marker(load);
|
||||||
load_GL_EXT_framebuffer_blit(load);
|
load_GL_EXT_framebuffer_blit(load);
|
||||||
load_GL_EXT_framebuffer_multisample(load);
|
load_GL_EXT_framebuffer_multisample(load);
|
||||||
load_GL_EXT_framebuffer_object(load);
|
load_GL_EXT_framebuffer_object(load);
|
||||||
|
@ -307,6 +307,8 @@ static PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArrays;
|
|||||||
//static PFNGLISVERTEXARRAYOESPROC glIsVertexArray; // NOTE: Fails in WebGL, omitted
|
//static PFNGLISVERTEXARRAYOESPROC glIsVertexArray; // NOTE: Fails in WebGL, omitted
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static bool debugMarkerSupported = false;
|
||||||
|
|
||||||
// Compressed textures support flags
|
// Compressed textures support flags
|
||||||
static bool texCompDXTSupported = false; // DDS texture compression support
|
static bool texCompDXTSupported = false; // DDS texture compression support
|
||||||
static bool texNPOTSupported = false; // NPOT textures full support
|
static bool texNPOTSupported = false; // NPOT textures full support
|
||||||
@ -1135,6 +1137,10 @@ void rlglInit(int width, int height)
|
|||||||
glGetFloatv(0x84FF, &maxAnisotropicLevel); // GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
|
glGetFloatv(0x84FF, &maxAnisotropicLevel); // GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(strcmp(extList[i], (const char *)"GL_EXT_debug_marker") == 0) {
|
||||||
|
debugMarkerSupported = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Clamp mirror wrap mode supported
|
// Clamp mirror wrap mode supported
|
||||||
if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) texClampMirrorSupported = true;
|
if (strcmp(extList[i], (const char *)"GL_EXT_texture_mirror_clamp") == 0) texClampMirrorSupported = true;
|
||||||
}
|
}
|
||||||
@ -1160,6 +1166,8 @@ void rlglInit(int width, int height)
|
|||||||
if (texAnisotropicFilterSupported) TraceLog(LOG_INFO, "[EXTENSION] Anisotropic textures filtering supported (max: %.0fX)", maxAnisotropicLevel);
|
if (texAnisotropicFilterSupported) TraceLog(LOG_INFO, "[EXTENSION] Anisotropic textures filtering supported (max: %.0fX)", maxAnisotropicLevel);
|
||||||
if (texClampMirrorSupported) TraceLog(LOG_INFO, "[EXTENSION] Clamp mirror wrap texture mode supported");
|
if (texClampMirrorSupported) TraceLog(LOG_INFO, "[EXTENSION] Clamp mirror wrap texture mode supported");
|
||||||
|
|
||||||
|
if (debugMarkerSupported) TraceLog(LOG_INFO, "[EXTENSION] Debug Marker supported");
|
||||||
|
|
||||||
// Initialize buffers, default shaders and default textures
|
// Initialize buffers, default shaders and default textures
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
@ -440,6 +440,9 @@ void rlUpdateMesh(Mesh mesh, int buffer, int numVertex); // Update ve
|
|||||||
void rlDrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform
|
void rlDrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform
|
||||||
void rlUnloadMesh(Mesh *mesh); // Unload mesh data from CPU and GPU
|
void rlUnloadMesh(Mesh *mesh); // Unload mesh data from CPU and GPU
|
||||||
|
|
||||||
|
// Debug Marker for Analysis
|
||||||
|
void rlSetMarker(const char *text);
|
||||||
|
|
||||||
// NOTE: There is a set of shader related functions that are available to end user,
|
// NOTE: There is a set of shader related functions that are available to end user,
|
||||||
// to avoid creating function wrappers through core module, they have been directly declared in raylib.h
|
// to avoid creating function wrappers through core module, they have been directly declared in raylib.h
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user