diff options
author | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2014-10-18 18:30:22 +0200 |
---|---|---|
committer | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2014-10-18 18:30:22 +0200 |
commit | fa904150bfb7467b66e7fc0a7c709e61cb3dd9fc (patch) | |
tree | 4178261c60fb754197df47264784305f422136cc /video/out/vo_opengl.c | |
parent | 421bce00776f00cc0185ef65b82a6a4c8bcfd366 (diff) | |
download | mpv-fa904150bfb7467b66e7fc0a7c709e61cb3dd9fc.tar.bz2 mpv-fa904150bfb7467b66e7fc0a7c709e61cb3dd9fc.tar.xz |
cocoa: reintroduce async resize
After removing synchronous libdispatch calls, this looks like it doesn't
deadlock anymore. I also experimented with pthread_mutex_trylock liek wm4
suggested, but it leads to some annoying black flickering. I will fallback to
that only if some new deadlocks are discovered.
Diffstat (limited to 'video/out/vo_opengl.c')
-rw-r--r-- | video/out/vo_opengl.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/video/out/vo_opengl.c b/video/out/vo_opengl.c index 1acd6ef466..3b6e3a2e43 100644 --- a/video/out/vo_opengl.c +++ b/video/out/vo_opengl.c @@ -203,6 +203,13 @@ static bool config_window(struct gl_priv *p, int flags) return mpgl_config_window(p->glctx, mpgl_caps, flags); } +static void video_resize_redraw_callback(struct vo *vo, int w, int h) +{ + struct gl_priv *p = vo->priv; + gl_video_resize_redraw(p->renderer, w, h); + +} + static int reconfig(struct vo *vo, struct mp_image_params *params, int flags) { struct gl_priv *p = vo->priv; @@ -214,6 +221,10 @@ static int reconfig(struct vo *vo, struct mp_image_params *params, int flags) return -1; } + if (p->glctx->register_resize_callback) { + p->glctx->register_resize_callback(vo, video_resize_redraw_callback); + } + gl_video_config(p->renderer, params); p->vo_flipped = !!(flags & VOFLAG_FLIPPING); |