mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-12-16 07:10:53 +00:00
e654a99d39
The most frequent call using this is the regular texture creation function where this results in a pointless allocation and destruction of a temporary string which is easily avoided.
40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
#ifndef __GL_DEBUG_H
|
|
#define __GL_DEBUG_H
|
|
|
|
#include <string.h>
|
|
#include "gl/system/gl_interface.h"
|
|
#include "c_cvars.h"
|
|
#include "r_defs.h"
|
|
|
|
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
|