From d3d1b5a5e2192425f13c318598ea0671beba39d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 13 Apr 2014 16:53:58 +0200 Subject: [PATCH] gl/eagl: Notify the window's resize callback about surface dimension changes https://bugzilla.gnome.org/show_bug.cgi?id=728107 --- gst-libs/gst/gl/eagl/gstglwindow_eagl.m | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gst-libs/gst/gl/eagl/gstglwindow_eagl.m b/gst-libs/gst/gl/eagl/gstglwindow_eagl.m index c9f4c3f182..3ec03b0faf 100644 --- a/gst-libs/gst/gl/eagl/gstglwindow_eagl.m +++ b/gst-libs/gst/gl/eagl/gstglwindow_eagl.m @@ -23,6 +23,7 @@ #endif #import +#import #import #include "gstglwindow_eagl.h" @@ -229,6 +230,22 @@ draw_cb (gpointer data) GstGLContextEagl *eagl_context = GST_GL_CONTEXT_EAGL (context); GstGLContextClass *context_class = GST_GL_CONTEXT_GET_CLASS (context); + if (window_eagl->view) { + CGSize size; + CAEAGLLayer *eagl_layer; + + eagl_layer = (CAEAGLLayer *)[window_eagl->priv->view layer]; + size = eagl_layer.frame.size; + + if (window_eagl->priv->window_width != size.width || window_eagl->priv->window_height != size.height) { + window_eagl->priv->window_width = size.width; + window_eagl->priv->window_height = size.height; + + if (window->resize_cb) + window->resize_cb (window->resize_data, size.width, size.height); + } + } + gst_gl_context_eagl_prepare_draw (eagl_context); if (window->draw)