diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-10-01 16:04:36 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-10-14 10:01:31 +0200 |
commit | b183e3e5f778840546deac7c16c8291c376ea693 (patch) | |
tree | b747ebcd2706c79cedec3b0d49506818c49dcb0a /gst-libs | |
parent | 5279342396d426c6d30bf833173ee373fe95ca49 (diff) | |
download | gstreamer-plugins-bad-b183e3e5f778840546deac7c16c8291c376ea693.tar.gz |
gl/cocoa: Always update our viewport if Cocoa tells us something has changed
The visible rect and bounds might be the same as before, but Cocoa
might've changed our viewport without us nothing. This happens if
you hide the view and show it again.
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m b/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m index cc88160cb..339c59327 100644 --- a/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m +++ b/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m @@ -85,7 +85,6 @@ struct _GstGLWindowCocoaPrivate GMainLoop *loop; GLint viewport_dim[4]; - NSRect bounds, visibleRect; }; static void @@ -524,25 +523,17 @@ resize_cb (gpointer data) [glContext update]; - if (window_cocoa->priv->bounds.size.width != resize_data->bounds.size.width || - window_cocoa->priv->bounds.size.height != resize_data->bounds.size.height || - window_cocoa->priv->visibleRect.origin.x != resize_data->visibleRect.origin.x || - window_cocoa->priv->visibleRect.origin.y != resize_data->visibleRect.origin.y) { - gl = context->gl_vtable; - - if (window->resize) { - window->resize (window->resize_data, resize_data->bounds.size.width, resize_data->bounds.size.height); - gl->GetIntegerv (GL_VIEWPORT, window_cocoa->priv->viewport_dim); - } + gl = context->gl_vtable; - gl->Viewport (window_cocoa->priv->viewport_dim[0] - resize_data->visibleRect.origin.x, - window_cocoa->priv->viewport_dim[1] - resize_data->visibleRect.origin.y, - window_cocoa->priv->viewport_dim[2], window_cocoa->priv->viewport_dim[3]); - - window_cocoa->priv->visibleRect = resize_data->visibleRect; - window_cocoa->priv->bounds = resize_data->bounds; + if (window->resize) { + window->resize (window->resize_data, resize_data->bounds.size.width, resize_data->bounds.size.height); + gl->GetIntegerv (GL_VIEWPORT, window_cocoa->priv->viewport_dim); } + gl->Viewport (window_cocoa->priv->viewport_dim[0] - resize_data->visibleRect.origin.x, + window_cocoa->priv->viewport_dim[1] - resize_data->visibleRect.origin.y, + window_cocoa->priv->viewport_dim[2], window_cocoa->priv->viewport_dim[3]); + GST_GL_WINDOW (window_cocoa)->draw (GST_GL_WINDOW (window_cocoa)->draw_data); [glContext flushBuffer]; } |