[076/906] check OpenGL and Glew versions
authorJulien Isorce <julien.isorce@gmail.com>
Wed, 21 May 2008 21:15:47 +0000 (21:15 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:31:16 +0000 (19:31 +0000)
git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@474 93df14bb-0f41-7a43-8087-d3e2a2f0e464

gst-libs/gst/gl/gstgldisplay.c

index c9493ab..e0202f3 100644 (file)
@@ -397,6 +397,8 @@ gst_gl_display_glutCreateWindow (GstGLDisplay *display)
     display->title =  g_string_append (display->title, buffer);
     glutWinId = glutCreateWindow (display->title->str, display->winId);
 
+    GST_DEBUG ("Context %d created\n", glutWinId);
+
     if (display->visible)
         glutShowWindow ();
     else
@@ -407,7 +409,29 @@ gst_gl_display_glutCreateWindow (GstGLDisplay *display)
     if (err != GLEW_OK)
         GST_DEBUG ("Error: %s", glewGetErrorString(err));
     else
-        GST_DEBUG ("Context %d, Using GLEW %s", glutWinId, glewGetString(GLEW_VERSION));
+    {
+        //OpenGL > 2.1.0 and Glew > 1.5.0
+        GString* opengl_version = g_string_new (glGetString (GL_VERSION));
+        gboolean check_versions = g_str_has_prefix (opengl_version->str, "2.1");
+        GString* glew_version = g_string_new (glewGetString (GLEW_VERSION));
+        check_versions = check_versions && g_str_has_prefix (glew_version->str, "1.5");
+
+
+        GST_DEBUG ("GL_VERSION: %s", opengl_version->str);
+        GST_DEBUG ("GLEW_VERSION: %s", glew_version->str);
+        
+        GST_DEBUG ("GL_VENDOR: %s\n", glGetString (GL_VENDOR));
+        GST_DEBUG ("GL_RENDERER: %s\n", glGetString (GL_RENDERER));
+
+        g_string_free (opengl_version, TRUE);
+        g_string_free (glew_version, TRUE);
+
+        if (!check_versions)
+        {
+            GST_DEBUG ("Required OpenGL > 2.1.0 and Glew > 1.5.0");
+            g_assert_not_reached ();
+        }
+    }
 
     if (GLEW_EXT_framebuffer_object)
     {