void info(debug_group group, char* format, ...) { if (enabled_groups[group]) { va_list args; va_start(args, format); format_debug_output(format, args); va_end(args); } }
void debug_callback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const GLvoid *user_data){ (void)length; FILE *out_fh = (FILE*)user_data; char final_message[2048]; format_debug_output(final_message, 2048, source, type, id, severity, message); if(severity == GL_DEBUG_SEVERITY_HIGH || severity == GL_DEBUG_SEVERITY_MEDIUM){ printf(TERMCOLOR_ERROR); } else { printf(TERMCOLOR_HIGHLIGHT); } fprintf(out_fh, "%s\n", final_message); printf(TERMCOLOR_DEFAULT); fflush(out_fh); //int NO_GL_ERRORS_HAVE_OCURRED = 0; //assert(NO_GL_ERRORS_HAVE_OCURRED); switch(severity){ case GL_DEBUG_SEVERITY_HIGH: raise(SIGTRAP); break; case GL_DEBUG_SEVERITY_MEDIUM: raise(SIGTRAP); break; } }