#include using namespace std; #include "vgl.h" void DebugCallbackFunction(unsigned int source, unsigned int type, unsigned int id, unsigned int severity, int length, const GLchar* message, const void * userParam); void InitErrors(){ if(glDebugMessageCallback){ glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); glEnable(GL_DEBUG_OUTPUT); glDebugMessageCallback(DebugCallbackFunction, NULL); GLuint unusedIds = 0; glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, &unusedIds, true); } else { cout << "glDebugMessageCallback not available" << endl; } return; } void DebugCallbackFunction(unsigned int source, unsigned int type, unsigned int id, unsigned int severity, int length, const GLchar* message, const void * userParam){ cerr << "An OpenGL error has occured " << endl; cerr << "\tmessage: "<< message << endl; cerr << "\ttype: "; switch (type) { case GL_DEBUG_TYPE_ERROR: cerr << "ERROR"; break; case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: cerr << "DEPRECATED_BEHAVIOR"; break; case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: cerr << "UNDEFINED_BEHAVIOR"; break; case GL_DEBUG_TYPE_PORTABILITY: cerr << "PORTABILITY"; break; case GL_DEBUG_TYPE_PERFORMANCE: cerr << "PERFORMANCE"; break; case GL_DEBUG_TYPE_OTHER: cerr << "OTHER"; break; } cerr << endl; cerr << "\tid: "<