X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcwindow3d.C;h=59a21d8eb16059683572644ac430038c3570b32f;hb=83b70dd60863377cb281e6be5206304e10373e30;hp=902f65e9b17263b95f4f3ca87f7dc800724700d9;hpb=7ead9f7382846e81c2f8efb25780014e5f8834c3;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/guicast/bcwindow3d.C b/cinelerra-5.1/guicast/bcwindow3d.C index 902f65e9..59a21d8e 100644 --- a/cinelerra-5.1/guicast/bcwindow3d.C +++ b/cinelerra-5.1/guicast/bcwindow3d.C @@ -192,9 +192,32 @@ bool BC_WindowBase::glx_make_current(GLXDrawable draw, GLXContext glx_ctxt) return glXMakeContextCurrent(get_display(), draw, draw, glx_ctxt); } +//#define GL_BUG +#ifdef GL_BUG +static void GLAPIENTRY glDebugCallback(GLenum source, GLenum type, + GLuint id, GLenum severity, GLsizei length, const GLchar* message, + const void* userParam) +{ + if( type == GL_DEBUG_TYPE_OTHER && + severity == GL_DEBUG_SEVERITY_NOTIFICATION ) return; + fprintf(stderr, "GL CALLBACK: %s type = 0x%x, severity = 0x%x, message = %s\n", + ( type == GL_DEBUG_TYPE_ERROR ? "** GL ERROR **" : "" ), + type, severity, message ); +} +#endif + bool BC_WindowBase::glx_make_current(GLXDrawable draw) { - return glx_make_current(draw, glx_win_context); + bool ret = glx_make_current(draw, glx_win_context); +#ifdef GL_BUG + //Enabling OpenGL debug output + glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, 0, GL_TRUE); + glEnable(GL_DEBUG_OUTPUT); + glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); + glDebugMessageCallback(glDebugCallback, 0); + glEnable(GL_DEBUG_OUTPUT); +#endif + return ret; } #endif