Something went wrong. Try again.
🎥 Command line media player
Something went wrong. Try again.
C
123456789101112131415161718192021222324252627282930313233343536373839404142#pragma once
#include "video/out/gpu/context.h"#include "common.h"
struct ra_vk_ctx_params { // See ra_swapchain_fns.get_vsync. void (*get_vsync)(struct ra_ctx *ctx, struct vo_vsync_info *info);
// 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);
// See ra_swapchain_fns.color_depth. int (*color_depth)(struct ra_ctx *ctx);};
// Helpers for ra_ctx based on ra_vk. These initialize ctx->ra and ctx->swchain.void ra_vk_ctx_uninit(struct ra_ctx *ctx);bool ra_vk_ctx_init(struct ra_ctx *ctx, struct mpvk_ctx *vk, struct ra_vk_ctx_params params, VkPresentModeKHR preferred_mode);
// Helper for initializing mpvk_ctx->vulkanpl_vulkan mppl_create_vulkan(struct vulkan_opts *opts, pl_vk_inst vkinst, pl_log pllog, VkSurfaceKHR surface, bool allow_software);
// Handles a resize request, and updates ctx->vo->dwidth/dheightbool ra_vk_ctx_resize(struct ra_ctx *ctx, int width, int height);
// May be called on a ra_ctx of any type.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);