Allow inserting GL string markers (GREMEDY_string_marker)
This commit is contained in:
		
							parent
							
								
									5979c5f778
								
							
						
					
					
						commit
						bc31922c33
					
				
					 3 changed files with 27 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -22,6 +22,11 @@
 | 
			
		|||
#ifndef DEBUGLOGGER_H
 | 
			
		||||
#define DEBUGLOGGER_H
 | 
			
		||||
 | 
			
		||||
#include "gl-fun.h"
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
 | 
			
		||||
struct DebugLoggerPrivate;
 | 
			
		||||
 | 
			
		||||
class DebugLogger
 | 
			
		||||
| 
						 | 
				
			
			@ -34,4 +39,13 @@ private:
 | 
			
		|||
	DebugLoggerPrivate *p;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define GL_MARKER(format, ...) \
 | 
			
		||||
	if (gl.StringMarker) \
 | 
			
		||||
	{ \
 | 
			
		||||
		char buf[128]; \
 | 
			
		||||
		int len = snprintf(buf, sizeof(buf), format, ##__VA_ARGS__); \
 | 
			
		||||
		gl.StringMarker(std::min<size_t>(len, sizeof(buf)), buf); \
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif // DEBUGLOGGER_H
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -172,6 +172,13 @@ void initGLFunctions()
 | 
			
		|||
		GL_DEBUG_KHR_FUN;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (HAVE_EXT(GREMEDY_string_marker))
 | 
			
		||||
	{
 | 
			
		||||
#undef EXT_SUFFIX
 | 
			
		||||
#define EXT_SUFFIX "GREMEDY"
 | 
			
		||||
		GL_GREMEMDY_FUN;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Misc caps */
 | 
			
		||||
	if (!gles || glMajor >= 3 || HAVE_EXT(EXT_unpack_subimage))
 | 
			
		||||
		gl.unpack_subimage = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,9 +55,10 @@ typedef void (APIENTRYP _PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GL
 | 
			
		|||
typedef void (APIENTRYP _PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
 | 
			
		||||
typedef void (APIENTRYP _PFNGLACTIVETEXTUREPROC) (GLenum texture);
 | 
			
		||||
 | 
			
		||||
/* Debug callback */
 | 
			
		||||
/* Debugging */
 | 
			
		||||
typedef void (APIENTRY * _GLDEBUGPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void *userParam);
 | 
			
		||||
typedef void (APIENTRYP _PFNGLDEBUGMESSAGECALLBACKPROC) (_GLDEBUGPROC callback, const void *userParam);
 | 
			
		||||
typedef void (APIENTRYP _PFNGLSTRINGMARKERPROC) (GLsizei len, const GLvoid *string);
 | 
			
		||||
 | 
			
		||||
/* Buffer object */
 | 
			
		||||
typedef void (APIENTRYP _PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers);
 | 
			
		||||
| 
						 | 
				
			
			@ -193,6 +194,9 @@ typedef void (APIENTRYP _PFNGLBINDVERTEXARRAYPROC) (GLuint array);
 | 
			
		|||
#define GL_DEBUG_KHR_FUN \
 | 
			
		||||
	GL_FUN(DebugMessageCallback, _PFNGLDEBUGMESSAGECALLBACKPROC)
 | 
			
		||||
 | 
			
		||||
#define GL_GREMEMDY_FUN \
 | 
			
		||||
	GL_FUN(StringMarker, _PFNGLSTRINGMARKERPROC)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct GLFunctions
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -203,6 +207,7 @@ struct GLFunctions
 | 
			
		|||
	GL_FBO_BLIT_FUN
 | 
			
		||||
	GL_VAO_FUN
 | 
			
		||||
	GL_DEBUG_KHR_FUN
 | 
			
		||||
	GL_GREMEMDY_FUN
 | 
			
		||||
 | 
			
		||||
	bool glsles;
 | 
			
		||||
	bool unpack_subimage;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue