summaryrefslogtreecommitdiffstats
path: root/video/out/gl_wayland.c
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2015-03-22 02:32:03 +0200
committerwm4 <wm4@nowhere>2015-03-23 21:53:32 +0100
commit3a6ade7a848f5213525430d9049e96e642638fc8 (patch)
treef0341a228f43f67883b82bf9ebbbd03fefd6388a /video/out/gl_wayland.c
parentc10fb4ce9fcd3dbbf69741eb8499c4cfabbf5412 (diff)
downloadmpv-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.c7
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;
}