#pragma once #include "renderer.h" #include #if defined STELA_API_VULKAN #include #elif defined STELA_API_DX11 #include #define COBJMACROS #include #elif defined STELA_API_OPENGL #include #endif #ifdef CAMU_HAVE_SUBTITLES #include #endif struct camu_renderer_lp { struct camu_renderer r; #if defined STELA_API_VULKAN VkSurfaceKHR surface; pl_vulkan vk; pl_vk_inst vk_inst; VkResult (*vk_destroy_surface)(VkInstance, VkSurfaceKHR); #elif defined STELA_API_DX11 pl_d3d11 d3d11; #elif defined STELA_API_OPENGL pl_opengl gl; #endif pl_gpu gpu; pl_log logger; pl_swapchain swapchain; struct pl_frame target; bool have_frame; pl_renderer renderer; f64 last_swap_tick; struct pl_render_params params; const struct pl_hook *vr_emulation_hook[1]; #ifdef CAMU_HAVE_SUBTITLES ASS_Library *ass; #endif }; struct camu_renderer *camu_renderer_libplacebo_create(void);