glcontext: add specific error message when missing GL_SHADING_LANGUAGE_VERSION
authorJustin Kim <justin.kim@collabora.com>
Fri, 21 Aug 2015 05:07:32 +0000 (14:07 +0900)
committerMatthew Waters <matthew@centricular.com>
Fri, 21 Aug 2015 08:14:15 +0000 (18:14 +1000)
GL_SHADING_LANGUAGE_VERSION was introduced since ES 2.0, but in some
android emulator doesn't support this feature. To prevent confusion for
developer, the error message need to be more clear.

https://bugzilla.gnome.org/show_bug.cgi?id=753905

gst-libs/gst/gl/gstglcontext.c

index 9ec30ca..dcf2063 100644 (file)
@@ -1118,13 +1118,18 @@ _create_context_info (GstGLContext * context, GstGLAPI gl_api, gint * gl_major,
 
   gl = context->gl_vtable;
 
-  if (!gl->GetString || !gl->GetString (GL_VERSION)
-      || !gl->GetString (GL_SHADING_LANGUAGE_VERSION)) {
+  if (!gl->GetString || !gl->GetString (GL_VERSION)) {
     g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_FAILED,
         "glGetString not defined or returned invalid value");
     return FALSE;
   }
 
+  if (!gl->GetString (GL_SHADING_LANGUAGE_VERSION)) {
+    g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_FAILED,
+        "No GL shader support available");
+    return FALSE;
+  }
+
   GST_INFO_OBJECT (context, "GL_VERSION: %s",
       GST_STR_NULL ((const gchar *) gl->GetString (GL_VERSION)));
   GST_INFO_OBJECT (context, "GL_SHADING_LANGUAGE_VERSION: %s",