19#include <fmt/format.h>
26#define LogGlError(x) \
28 GLenum error = glGetError(); \
29 while ((error = glGetError()) != GL_NO_ERROR) { \
30 if (error != GL_NO_ERROR) { \
31 SPDLOG_ERROR("{} {}", x, engine::GetGlError(error)); \
39 case GL_DEBUG_TYPE_ERROR:
41 case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
42 return (
"Deprecated Behaviour");
43 case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
44 return (
"Undefined Behaviour");
45 case GL_DEBUG_TYPE_PORTABILITY:
46 return (
"Portability");
47 case GL_DEBUG_TYPE_PERFORMANCE:
48 return (
"Performance");
49 case GL_DEBUG_TYPE_MARKER:
51 case GL_DEBUG_TYPE_PUSH_GROUP:
52 return (
"Push Group");
53 case GL_DEBUG_TYPE_POP_GROUP:
55 case GL_DEBUG_TYPE_OTHER:
63 case GL_DEBUG_SEVERITY_HIGH:
65 case GL_DEBUG_SEVERITY_MEDIUM:
67 case GL_DEBUG_SEVERITY_LOW:
69 case GL_DEBUG_SEVERITY_NOTIFICATION:
71 return (
"notification");
77 case GL_DEBUG_SOURCE_API:
79 case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
80 return (
"Window System");
81 case GL_DEBUG_SOURCE_SHADER_COMPILER:
82 return (
"Shader Compiler");
83 case GL_DEBUG_SOURCE_THIRD_PARTY:
84 return (
"Third Party");
85 case GL_DEBUG_SOURCE_APPLICATION:
86 return (
"Application");
87 case GL_DEBUG_SOURCE_OTHER:
98 return "Invalid Enum";
99 case GL_INVALID_VALUE:
100 return "Invalid Value";
101 case GL_INVALID_OPERATION:
102 return "Invalid Operation";
103 case GL_INVALID_FRAMEBUFFER_OPERATION:
104 return "Invalid Framebuffer Operation";
105 case GL_OUT_OF_MEMORY:
106 return "Out of Memory";
107 case GL_STACK_UNDERFLOW:
108 return "Stack Underflow";
109 case GL_STACK_OVERFLOW:
110 return "Stack Overflow";
112 return fmt::format(
"Unknown error 0x{:x}", error);
116void inline APIENTRY
glDebugOutput(GLenum source, GLenum type,
unsigned int id, GLenum severity, GLsizei length,
117 const char* message,
const void* userParam) {
118 if (
id == 131169 ||
id == 131185 ||
id == 131218 ||
id == 131204)
#define ENGINE_LOG_INFO(...)
Definition: enginelogger.h:29
Definition: application.cpp:55
void APIENTRY glDebugOutput(GLenum source, GLenum type, unsigned int id, GLenum severity, GLsizei length, const char *message, const void *userParam)
Definition: glfwdebug.h:116
const char * ParseType(GLenum type)
Definition: glfwdebug.h:37
const char * ParseSeverity(GLenum severity)
Definition: glfwdebug.h:61
const std::string GetGlError(GLenum error)
Definition: glfwdebug.h:93
const char * ParseSource(GLenum source)
Definition: glfwdebug.h:75