summaryrefslogtreecommitdiff
path: root/gst-libs/gst/gl/eagl/gstglwindow_eagl.m
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/gl/eagl/gstglwindow_eagl.m')
-rw-r--r--gst-libs/gst/gl/eagl/gstglwindow_eagl.m27
1 files changed, 27 insertions, 0 deletions
diff --git a/gst-libs/gst/gl/eagl/gstglwindow_eagl.m b/gst-libs/gst/gl/eagl/gstglwindow_eagl.m
index eb9d4f7f4..c90a3816d 100644
--- a/gst-libs/gst/gl/eagl/gstglwindow_eagl.m
+++ b/gst-libs/gst/gl/eagl/gstglwindow_eagl.m
@@ -48,6 +48,10 @@ static void gst_gl_window_eagl_set_window_handle (GstGLWindow * window,
static void gst_gl_window_eagl_set_preferred_size (GstGLWindow * window,
gint width, gint height);
static void gst_gl_window_eagl_draw (GstGLWindow * window);
+static void gst_gl_window_eagl_send_message_async (GstGLWindow * window,
+ GstGLWindowCB callback, gpointer data, GDestroyNotify destroy);
+static void gst_gl_window_eagl_send_message (GstGLWindow * window,
+ GstGLWindowCB callback, gpointer data);
struct _GstGLWindowEaglPrivate
{
@@ -72,6 +76,10 @@ gst_gl_window_eagl_class_init (GstGLWindowEaglClass * klass)
window_class->draw = GST_DEBUG_FUNCPTR (gst_gl_window_eagl_draw);
window_class->set_preferred_size =
GST_DEBUG_FUNCPTR (gst_gl_window_eagl_set_preferred_size);
+ window_class->send_message_async =
+ GST_DEBUG_FUNCPTR (gst_gl_window_eagl_send_message_async);
+ window_class->send_message =
+ GST_DEBUG_FUNCPTR (gst_gl_window_eagl_send_message);
}
static void
@@ -125,6 +133,25 @@ gst_gl_window_eagl_set_preferred_size (GstGLWindow * window, gint width, gint he
window_eagl->priv->preferred_width = width;
window_eagl->priv->preferred_height = height;
}
+
+static void
+gst_gl_window_eagl_send_message_async (GstGLWindow * window,
+ GstGLWindowCB callback, gpointer data, GDestroyNotify destroy)
+{
+ GstGLContext *context = gst_gl_window_get_context (window);
+ _gst_gl_context_eagl_invoke (context, callback, data, destroy);
+ gst_object_unref (context);
+}
+
+static void
+gst_gl_window_eagl_send_message (GstGLWindow * window,
+ GstGLWindowCB callback, gpointer data)
+{
+ GstGLContext *context = gst_gl_window_get_context (window);
+ _gst_gl_context_eagl_invoke (context, callback, data, NULL);
+ gst_object_unref (context);
+}
+
static void
draw_cb (gpointer data)