summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/context_wayland.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/opengl/context_wayland.c')
-rw-r--r--video/out/opengl/context_wayland.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/video/out/opengl/context_wayland.c b/video/out/opengl/context_wayland.c
index a7a8f4f3b4..98d702c386 100644
--- a/video/out/opengl/context_wayland.c
+++ b/video/out/opengl/context_wayland.c
@@ -54,19 +54,13 @@ static void resize(struct ra_ctx *ctx)
wl->vo->dheight = height;
}
-static bool wayland_egl_start_frame(struct ra_swapchain *sw, struct ra_fbo *out_fbo)
+static bool wayland_egl_check_visible(struct ra_ctx *ctx)
{
- struct ra_ctx *ctx = sw->ctx;
- struct vo_wayland_state *wl = ctx->vo->wl;
- bool render = !wl->hidden || wl->opts->disable_vsync;
- wl->frame_wait = true;
-
- return render ? ra_gl_ctx_start_frame(sw, out_fbo) : false;
+ return vo_wayland_check_visible(ctx->vo);
}
-static void wayland_egl_swap_buffers(struct ra_swapchain *sw)
+static void wayland_egl_swap_buffers(struct ra_ctx *ctx)
{
- struct ra_ctx *ctx = sw->ctx;
struct priv *p = ctx->priv;
struct vo_wayland_state *wl = ctx->vo->wl;
@@ -79,11 +73,6 @@ static void wayland_egl_swap_buffers(struct ra_swapchain *sw)
vo_wayland_sync_swap(wl);
}
-static const struct ra_swapchain_fns wayland_egl_swapchain = {
- .start_frame = wayland_egl_start_frame,
- .swap_buffers = wayland_egl_swap_buffers,
-};
-
static void wayland_egl_get_vsync(struct ra_ctx *ctx, struct vo_vsync_info *info)
{
struct vo_wayland_state *wl = ctx->vo->wl;
@@ -116,8 +105,9 @@ static bool egl_create_context(struct ra_ctx *ctx)
mpegl_load_functions(&p->gl, wl->log);
struct ra_gl_ctx_params params = {
- .external_swapchain = &wayland_egl_swapchain,
- .get_vsync = &wayland_egl_get_vsync,
+ .check_visible = wayland_egl_check_visible,
+ .swap_buffers = wayland_egl_swap_buffers,
+ .get_vsync = wayland_egl_get_vsync,
};
if (!ra_gl_ctx_init(ctx, &p->gl, params))