mirror of
				https://github.com/raysan5/raylib.git
				synced 2025-10-26 12:27:01 +00:00 
			
		
		
		
	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:
		
							
								
								
									
										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 | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 user
					user