summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2021-11-04 09:42:54 -0500
committerDudemanguy <random342@airmail.cc>2021-11-04 15:59:56 +0000
commitacde63f05ade3f4da8424bb3b764966e9f7a3fc3 (patch)
tree3aa66218c2b690c499d214c524da26e215afe763
parenta73e5cdbed417c554244dda403412d57cba12e8d (diff)
downloadmpv-acde63f05ade3f4da8424bb3b764966e9f7a3fc3.tar.bz2
mpv-acde63f05ade3f4da8424bb3b764966e9f7a3fc3.tar.xz
wayland_vk: rename start_frame to check_visible
This vulkan-specific parameter was poorly named and probably causes confusion. Just rename it to check_visible instead to make clear what is going on here. Only wayland uses it for now but in theory anyone else can. As an aside, wayland egl accomplishes this by using an external swapchain instead (an opengl-only concept in the mpv code). This may or may not need to be changed in the future when gpu-next gets opengl support.
-rw-r--r--video/out/vulkan/context.c8
-rw-r--r--video/out/vulkan/context.h7
-rw-r--r--video/out/vulkan/context_wayland.c4
3 files changed, 10 insertions, 9 deletions
diff --git a/video/out/vulkan/context.c b/video/out/vulkan/context.c
index 3e49435f14..bcc52f46f3 100644
--- a/video/out/vulkan/context.c
+++ b/video/out/vulkan/context.c
@@ -239,10 +239,10 @@ static bool start_frame(struct ra_swapchain *sw, struct ra_fbo *out_fbo)
{
struct priv *p = sw->priv;
struct pl_swapchain_frame frame;
- bool start = true;
- if (p->params.start_frame)
- start = p->params.start_frame(sw->ctx);
- if (!start)
+ bool visible = true;
+ if (p->params.check_visible)
+ visible = p->params.check_visible(sw->ctx);
+ if (!visible)
return false;
if (!pl_swapchain_start_frame(p->vk->swapchain, &frame))
return false;
diff --git a/video/out/vulkan/context.h b/video/out/vulkan/context.h
index d85b3fe193..c846942b0e 100644
--- a/video/out/vulkan/context.h
+++ b/video/out/vulkan/context.h
@@ -7,8 +7,9 @@ struct ra_vk_ctx_params {
// See ra_swapchain_fns.get_vsync.
void (*get_vsync)(struct ra_ctx *ctx, struct vo_vsync_info *info);
- // In case something special needs to be done when starting a frame.
- bool (*start_frame)(struct ra_ctx *ctx);
+ // For special contexts (i.e. wayland) that want to check visibility
+ // before drawing a frame.
+ bool (*check_visible)(struct ra_ctx *ctx);
// In case something special needs to be done on the buffer swap.
void (*swap_buffers)(struct ra_ctx *ctx);
@@ -27,4 +28,4 @@ bool ra_vk_ctx_resize(struct ra_ctx *ctx, int width, int height);
struct mpvk_ctx *ra_vk_ctx_get(struct ra_ctx *ctx);
// Get the user requested Vulkan device name.
-char *ra_vk_ctx_get_device_name(struct ra_ctx *ctx); \ No newline at end of file
+char *ra_vk_ctx_get_device_name(struct ra_ctx *ctx);
diff --git a/video/out/vulkan/context_wayland.c b/video/out/vulkan/context_wayland.c
index d2e6309776..0770004b4c 100644
--- a/video/out/vulkan/context_wayland.c
+++ b/video/out/vulkan/context_wayland.c
@@ -26,7 +26,7 @@ struct priv {
struct mpvk_ctx vk;
};
-static bool wayland_vk_start_frame(struct ra_ctx *ctx)
+static bool wayland_vk_check_visible(struct ra_ctx *ctx)
{
struct vo_wayland_state *wl = ctx->vo->wl;
bool render = !wl->hidden || wl->opts->disable_vsync;
@@ -84,7 +84,7 @@ static bool wayland_vk_init(struct ra_ctx *ctx)
};
struct ra_vk_ctx_params params = {
- .start_frame = wayland_vk_start_frame,
+ .check_visible = wayland_vk_check_visible,
.swap_buffers = wayland_vk_swap_buffers,
.get_vsync = wayland_vk_get_vsync,
};