Use ARB_DEBUG_OUTPUT on windows in Debug mode.

Hopefully the extension will work properly with every driver...
This commit is contained in:
Vincent Lejeune 2014-01-18 20:28:13 +01:00
parent 00cf026051
commit a1f5e47cba
3 changed files with 12 additions and 6 deletions

View File

@ -413,7 +413,8 @@ bool COpenGLDriver::initDriver(CIrrDeviceWin32* device)
{ {
WGL_CONTEXT_MAJOR_VERSION_ARB, 3, WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
WGL_CONTEXT_MINOR_VERSION_ARB, 1, WGL_CONTEXT_MINOR_VERSION_ARB, 1,
// WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB, //WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_DEBUG_BIT_ARB,
0 0
}; };
hrc=wglCreateContextAttribs_ARB(HDc, 0, iAttribs); hrc=wglCreateContextAttribs_ARB(HDc, 0, iAttribs);

View File

@ -52,15 +52,14 @@ PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
PFNGLTEXBUFFERPROC glTexBuffer; PFNGLTEXBUFFERPROC glTexBuffer;
PFNGLBUFFERSUBDATAPROC glBufferSubData; PFNGLBUFFERSUBDATAPROC glBufferSubData;
PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer; PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARB;
#endif #endif
static GLuint quad_buffer; static GLuint quad_buffer;
static GLuint ColoredVertex; static GLuint ColoredVertex;
static bool is_gl_init = false; static bool is_gl_init = false;
// Please leave this code, it's for debugging purpose #ifdef DEBUG
//#define ENABLE_ARB_DEBUG_OUTPUT
#ifdef ENABLE_ARB_DEBUG_OUTPUT
static static
void debugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, void debugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length,
const GLchar* msg, const void *userparam) const GLchar* msg, const void *userparam)
@ -178,9 +177,12 @@ void initGL()
glUniform4fv = (PFNGLUNIFORM4FVPROC)IRR_OGL_LOAD_EXTENSION("glUniform4fv"); glUniform4fv = (PFNGLUNIFORM4FVPROC)IRR_OGL_LOAD_EXTENSION("glUniform4fv");
glBufferSubData = (PFNGLBUFFERSUBDATAPROC)IRR_OGL_LOAD_EXTENSION("glBufferSubData"); glBufferSubData = (PFNGLBUFFERSUBDATAPROC)IRR_OGL_LOAD_EXTENSION("glBufferSubData");
glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)IRR_OGL_LOAD_EXTENSION("glVertexAttribIPointer"); glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)IRR_OGL_LOAD_EXTENSION("glVertexAttribIPointer");
#ifdef DEBUG
glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)IRR_OGL_LOAD_EXTENSION("glDebugMessageCallbackARB");
#endif #endif
#ifdef ENABLE_ARB_DEBUG_OUTPUT #endif
glDebugMessageCallbackARB(debugCallback, NULL); #ifdef DEBUG
glDebugMessageCallbackARB((GLDEBUGPROCARB)debugCallback, NULL);
#endif #endif
const float quad_vertex[] = { const float quad_vertex[] = {
-1., -1., -1., 1., // UpperLeft -1., -1., -1., 1., // UpperLeft

View File

@ -75,6 +75,9 @@ extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
extern PFNGLTEXBUFFERPROC glTexBuffer; extern PFNGLTEXBUFFERPROC glTexBuffer;
extern PFNGLBUFFERSUBDATAPROC glBufferSubData; extern PFNGLBUFFERSUBDATAPROC glBufferSubData;
extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer; extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
#ifdef DEBUG
extern PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARB;
#endif
#endif #endif