mirror of
https://github.com/DrBeef/Raze.git
synced 2024-12-16 07:31:04 +00:00
45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
|
#ifndef __GL_DEBUG_H
|
||
|
#define __GL_DEBUG_H
|
||
|
|
||
|
#include <string.h>
|
||
|
#include "gl_load/gl_interface.h"
|
||
|
#include "c_cvars.h"
|
||
|
#include "v_video.h"
|
||
|
|
||
|
namespace OpenGLRenderer
|
||
|
{
|
||
|
|
||
|
class FGLDebug
|
||
|
{
|
||
|
public:
|
||
|
void Update();
|
||
|
|
||
|
static void LabelObject(GLenum type, GLuint handle, const char *name);
|
||
|
static void LabelObjectPtr(void *ptr, const char *name);
|
||
|
|
||
|
static void PushGroup(const FString &name);
|
||
|
static void PopGroup();
|
||
|
|
||
|
static bool HasDebugApi() { return (gl.flags & RFL_DEBUG) != 0; }
|
||
|
|
||
|
private:
|
||
|
void SetupBreakpointMode();
|
||
|
void UpdateLoggingLevel();
|
||
|
void OutputMessageLog();
|
||
|
|
||
|
static bool IsFilteredByDebugLevel(GLenum severity);
|
||
|
static void PrintMessage(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message);
|
||
|
|
||
|
static void APIENTRY DebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam);
|
||
|
|
||
|
static FString SourceToString(GLenum source);
|
||
|
static FString TypeToString(GLenum type);
|
||
|
static FString SeverityToString(GLenum severity);
|
||
|
|
||
|
GLenum mCurrentLevel = 0;
|
||
|
bool mBreakpointMode = false;
|
||
|
};
|
||
|
|
||
|
}
|
||
|
#endif
|