diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2015-03-22 02:32:03 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-03-23 21:53:32 +0100 |
commit | 3a6ade7a848f5213525430d9049e96e642638fc8 (patch) | |
tree | f0341a228f43f67883b82bf9ebbbd03fefd6388a /video/out/gl_wayland.c | |
parent | c10fb4ce9fcd3dbbf69741eb8499c4cfabbf5412 (diff) | |
download | mpv-3a6ade7a848f5213525430d9049e96e642638fc8.tar.bz2 mpv-3a6ade7a848f5213525430d9049e96e642638fc8.tar.xz |
vo_opengl: do not block on wayland
When not receiving frame callbacks, we should not draw anything to avoid
blocking the OpenGL renderer. We do this by extending gl context api, by
introducing new optional function 'is_active', that indicates whether
OpenGL renderers should draw or not.
This fixes issue #249.
Diffstat (limited to 'video/out/gl_wayland.c')
-rw-r--r-- | video/out/gl_wayland.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/video/out/gl_wayland.c b/video/out/gl_wayland.c index d86faa8d95..0fcec82377 100644 --- a/video/out/gl_wayland.c +++ b/video/out/gl_wayland.c @@ -215,6 +215,12 @@ static int control(struct vo *vo, int *events, int request, void *data) return r; } +static bool is_active(struct MPGLContext *ctx) +{ + struct vo_wayland_state *wl = ctx->vo->wayland; + return wl->frame.pending; +} + void mpgl_set_backend_wayland(MPGLContext *ctx) { ctx->config_window = config_window_wayland; @@ -223,4 +229,5 @@ void mpgl_set_backend_wayland(MPGLContext *ctx) ctx->vo_control = control; ctx->vo_init = vo_wayland_init; ctx->vo_uninit = vo_wayland_uninit; + ctx->is_active = is_active; } |