mirror of
https://github.com/allemangD/toddcox-visualize.git
synced 2025-11-10 12:02:47 -05:00
ENH: Add cgl/debug.hpp
This commit is contained in:
85
vis/include/cgl/debug.hpp
Normal file
85
vis/include/cgl/debug.hpp
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <glad/glad.h>
|
||||||
|
#include <fmt/core.h>
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
|
||||||
|
void GLAPIENTRY log_gl_debug_callback(
|
||||||
|
GLenum source,
|
||||||
|
GLenum type,
|
||||||
|
GLuint id,
|
||||||
|
GLenum severity,
|
||||||
|
GLsizei length,
|
||||||
|
const GLchar *message,
|
||||||
|
const void *userParam
|
||||||
|
) {
|
||||||
|
std::string s_source;
|
||||||
|
switch (type) {
|
||||||
|
case GL_DEBUG_SOURCE_API:
|
||||||
|
s_source = "API:";
|
||||||
|
case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
|
||||||
|
s_source = "WINDOW:";
|
||||||
|
case GL_DEBUG_SOURCE_SHADER_COMPILER:
|
||||||
|
s_source = "SHADER:";
|
||||||
|
case GL_DEBUG_SOURCE_THIRD_PARTY:
|
||||||
|
s_source = "3P:";
|
||||||
|
case GL_DEBUG_SOURCE_APPLICATION:
|
||||||
|
s_source = "APP:";
|
||||||
|
default:
|
||||||
|
s_source = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string s_type;
|
||||||
|
switch (type) {
|
||||||
|
case GL_DEBUG_TYPE_ERROR:
|
||||||
|
s_type = "ERROR:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
|
||||||
|
s_type = "DEPRECATED:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
|
||||||
|
s_type = "UNDEFINED:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_TYPE_PORTABILITY:
|
||||||
|
s_type = "PORTABILITY:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_TYPE_PERFORMANCE:
|
||||||
|
s_type = "PERFORMANCE:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_TYPE_MARKER:
|
||||||
|
s_type = "MARKER:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_TYPE_PUSH_GROUP:
|
||||||
|
s_type = "PUSH_GROUP:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_TYPE_POP_GROUP:
|
||||||
|
s_type = "POP_GROUP:";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
s_type = "";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string s_severity;
|
||||||
|
switch (severity) {
|
||||||
|
case GL_DEBUG_SEVERITY_HIGH:
|
||||||
|
s_severity = "HIGH:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_SEVERITY_MEDIUM:
|
||||||
|
s_severity = "MED:";
|
||||||
|
break;
|
||||||
|
case GL_DEBUG_SEVERITY_LOW:
|
||||||
|
s_severity = "LOW:";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
s_severity = "INFO:";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt::print(stderr, "GL:{}{}{} {}\n", s_source, s_type, s_severity, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
#include "mirror.hpp"
|
#include "mirror.hpp"
|
||||||
#include "solver.hpp"
|
#include "solver.hpp"
|
||||||
|
|
||||||
|
#include <cgl/debug.hpp>
|
||||||
#include <cgl/vertexarray.hpp>
|
#include <cgl/vertexarray.hpp>
|
||||||
#include <cgl/shaderprogram.hpp>
|
#include <cgl/shaderprogram.hpp>
|
||||||
#include <cgl/pipeline.hpp>
|
#include <cgl/pipeline.hpp>
|
||||||
@@ -251,6 +252,11 @@ struct WireframeProp : public Prop<2> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void run(const std::string &config_file, GLFWwindow* window) {
|
void run(const std::string &config_file, GLFWwindow* window) {
|
||||||
|
#ifndef NDEBUG
|
||||||
|
glEnable(GL_DEBUG_OUTPUT);
|
||||||
|
glDebugMessageCallback(log_gl_debug_callback, nullptr);
|
||||||
|
#endif
|
||||||
|
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
|
|||||||
Reference in New Issue
Block a user