Check we've got GLEW version 2 when building with core profile
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 1 May 2017 08:37:04 +0000 (10:37 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 1 May 2017 08:37:04 +0000 (10:37 +0200)
There was a bug in older GLEW version which kept glGenVertexArrays as NULL
when 3.2 core context is requested [1].

Didn't find a way to check GLEW version from CMake, it seems the version
is not really exposed to the header.

[1] https://sourceforge.net/p/glew/bugs/124/

intern/ghost/intern/GHOST_WindowX11.cpp

index 7dc3f91..11f3a6e 100644 (file)
@@ -1329,6 +1329,16 @@ GHOST_Context *GHOST_WindowX11::newDrawingContext(GHOST_TDrawingContextType type
                //   try 3.3 core profile
                //   no fallbacks
 
+#if defined(WITH_GL_PROFILE_CORE)
+               {
+                       const char *version_major = (char*)glewGetString(GLEW_VERSION_MAJOR);
+                       if (version_major != NULL && version_major[0] == '1') {
+                               fprintf(stderr, "Error: GLEW version 2.0 and above is required.\n");
+                               abort();
+                       }
+               }
+#endif
+
                const int profile_mask =
 #if defined(WITH_GL_PROFILE_CORE)
                        GLX_CONTEXT_CORE_PROFILE_BIT_ARB;