Files
LivePlotter/inc/gldebug.hpp

98 lines
2.1 KiB
C++

#pragma once
#include <stdio.h>
#include <glad/glad.h>
#include <GLFW/glfw3.h>
void APIENTRY gl_debug_cb(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam)
{
// Some debug messages are just annoying informational messages
switch (id)
{
case 131185: // glBufferData
return;
}
printf("Message: %s\n", message);
printf("Source: ");
switch (source)
{
case GL_DEBUG_SOURCE_API:
printf("API");
break;
case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
printf("Window System");
break;
case GL_DEBUG_SOURCE_SHADER_COMPILER:
printf("Shader Compiler");
break;
case GL_DEBUG_SOURCE_THIRD_PARTY:
printf("Third Party");
break;
case GL_DEBUG_SOURCE_APPLICATION:
printf("Application");
break;
case GL_DEBUG_SOURCE_OTHER:
printf("Other");
break;
}
printf("\n");
printf("Type: ");
switch (type)
{
case GL_DEBUG_TYPE_ERROR:
printf("Error");
break;
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
printf("Deprecated Behavior");
break;
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
printf("Undefined Behavior");
break;
case GL_DEBUG_TYPE_PORTABILITY:
printf("Portability");
break;
case GL_DEBUG_TYPE_PERFORMANCE:
printf("Performance");
break;
case GL_DEBUG_TYPE_MARKER:
printf("Marker");
break;
case GL_DEBUG_TYPE_PUSH_GROUP:
printf("Push Group");
break;
case GL_DEBUG_TYPE_POP_GROUP:
printf("Pop Group");
break;
case GL_DEBUG_TYPE_OTHER:
printf("Other");
break;
}
printf("\n");
printf("ID: %d\n", id);
printf("Severity: ");
switch (severity)
{
case GL_DEBUG_SEVERITY_HIGH:
printf("High");
break;
case GL_DEBUG_SEVERITY_MEDIUM:
printf("Medium");
break;
case GL_DEBUG_SEVERITY_LOW:
printf("Low");
break;
case GL_DEBUG_SEVERITY_NOTIFICATION:
printf("Notification");
break;
}
printf("\n\n");
}