gtk/gl: Use our GL function table instead of directly calling GL functions
authorSebastian Dröge <sebastian@centricular.com>
Wed, 19 Aug 2015 10:52:21 +0000 (13:52 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 19 Aug 2015 10:55:00 +0000 (13:55 +0300)
Otherwise we would have to link the plugin to the GL libraries directly.

ext/gtk/gtkgstglwidget.c

index cdce3aa..1b2cadb 100644 (file)
@@ -202,10 +202,12 @@ _redraw_texture (GtkGstGLWidget * gst_widget, guint tex)
 }
 
 static inline void
-_draw_black (void)
+_draw_black (GstGLContext * context)
 {
-  glClearColor (0.0, 0.0, 0.0, 0.0);
-  glClear (GL_COLOR_BUFFER_BIT);
+  const GstGLFuncs *gl = context->gl_vtable;
+
+  gl->ClearColor (0.0, 0.0, 0.0, 0.0);
+  gl->Clear (GL_COLOR_BUFFER_BIT);
 }
 
 static gboolean
@@ -225,7 +227,7 @@ gtk_gst_gl_widget_render (GtkGLArea * widget, GdkGLContext * context)
     gtk_gst_gl_widget_init_redisplay (GTK_GST_GL_WIDGET (widget));
 
   if (!priv->initted || !base_widget->negotiated) {
-    _draw_black ();
+    _draw_black (priv->other_context);
     goto done;
   }
 
@@ -237,7 +239,7 @@ gtk_gst_gl_widget_render (GtkGLArea * widget, GdkGLContext * context)
 
     if (!gst_video_frame_map (&gl_frame, &base_widget->v_info, buffer,
             GST_MAP_READ | GST_MAP_GL)) {
-      _draw_black ();
+      _draw_black (priv->other_context);
       goto done;
     }