SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);\r
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);\r
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY);\r
+ SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG | SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG);\r
if (CreationParams.Bits == 16) {\r
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 4);\r
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 4);\r
namespace video\r
{\r
\r
+void APIENTRY COpenGL3Driver::debugCb(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam)\r
+{\r
+ ((COpenGL3Driver *)userParam)->debugCb(source, type, id, severity, length, message);\r
+}\r
+\r
+void COpenGL3Driver::debugCb(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message)\r
+{\r
+ printf("%04x %04x %x %x %.*s\n", source, type, id, severity, length, message);\r
+}\r
+\r
COpenGL3Driver::COpenGL3Driver(const SIrrlichtCreationParameters& params, io::IFileSystem* io, IContextManager* contextManager) :\r
CNullDriver(io, params.WindowSize), COpenGL3ExtensionHandler(), CacheHandler(0),\r
Params(params), ResetRenderStates(true), LockRenderStateMode(false), AntiAlias(params.AntiAlias),\r
ExposedData = ContextManager->getContext();\r
ContextManager->activateContext(ExposedData, false);\r
GL.LoadAllProcedures(ContextManager);\r
+ GL.DebugMessageCallback(debugCb, this);\r
}\r
\r
COpenGL3Driver::~COpenGL3Driver()\r
ECOLOR_FORMAT ColorFormat;\r
\r
IContextManager* ContextManager;\r
+\r
+ void debugCb(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message);\r
+ static void APIENTRY debugCb(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam);\r
};\r
\r
} // end namespace video\r