Ugly hack to avoid GLEW context error printing when initializing GLX.
authorAntony Riakiotakis <kalast@gmail.com>
Mon, 20 Jul 2015 12:56:36 +0000 (14:56 +0200)
committerAntony Riakiotakis <kalast@gmail.com>
Mon, 20 Jul 2015 12:56:36 +0000 (14:56 +0200)
intern/ghost/intern/GHOST_ContextGLX.cpp
intern/glew-mx/glew-mx.h
intern/glew-mx/intern/glew-mx.c

index 0b4d41b61fe7fd399ce3d29401b116064875777f..3cce223614319ab07959eb683f41c0de2bebb13d 100644 (file)
@@ -155,7 +155,9 @@ GHOST_TSuccess GHOST_ContextGLX::initializeDrawingContext()
 #endif
 
        /* needed so 'GLXEW_ARB_create_context' is valid */
+       mxIgnoreNoVersion(1);
        initContextGLXEW();
+       mxIgnoreNoVersion(0);
 
        if (GLXEW_ARB_create_context) {
                int profileBitCore   = m_contextProfileMask & GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
index cf90870261c11f1c8a8758ed8b1f36c5399092a0..92450d6781241219cb632c8f1d48beeac62e2f66 100644 (file)
@@ -95,6 +95,7 @@ MXContext *mxGetCurrentContext (void);
 void       mxMakeCurrentContext(MXContext *ctx);
 void       mxDestroyContext    (MXContext *ctx);
 
+void       mxIgnoreNoVersion(int ignore);
 
 GLenum glew_chk(GLenum error, const char *file, int line, const char *text);
 
index 8b0ab42c0c08e8ff31b9703d4809bb8ce69f3529..78920670f68aecf635771beacf6594b08314eedf 100644 (file)
@@ -34,6 +34,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
+static int ignore_version = 0;
 
 #define CASE_CODE_RETURN_STR(code) case code: return #code;
 
@@ -62,6 +63,9 @@ GLenum glew_chk(GLenum error, const char *file, int line, const char *text)
                const char *code = get_glew_error_enum_string(error);
                const char *msg  = (const char *)glewGetErrorString(error);
 
+               if (error == GLEW_ERROR_NO_GL_VERSION && ignore_version)
+                       return GLEW_OK;
+
 #ifndef NDEBUG
                fprintf(stderr,
                        "%s(%d):[%s] -> GLEW Error (0x%04X): %s: %s\n",
@@ -140,3 +144,8 @@ void mxDestroyContext(MXContext *ctx)
        (void)ctx;
 #endif
 }
+
+void mxIgnoreNoVersion(int ignore)
+{
+       ignore_version = ignore;
+}