blob: dba71bbec672d40abab16c395b97c57a46dcfb13 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#pragma once
#include "renderer.h"
#include <libplacebo/renderer.h>
#if defined STELA_API_VULKAN
#include <libplacebo/vulkan.h>
#elif defined STELA_API_DX11
#include <nnwt/windows.h>
#define COBJMACROS
#include <libplacebo/d3d11.h>
#elif defined STELA_API_OPENGL
#include <libplacebo/opengl.h>
#endif
#ifdef CAMU_HAVE_SUBTITLES
#include <ass/ass.h>
#endif
//#define USE_LIBPLACEBO_CACHE
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;
#ifdef USE_LIBPLACEBO_CACHE
pl_cache cache;
#endif
pl_dispatch dispatch;
pl_log logger;
pl_swapchain swapchain;
struct pl_swapchain_frame frame;
bool have_frame;
bool frame_cleared;
struct pl_frame target;
pl_renderer renderer;
f64 last_swap_tick;
struct pl_render_params params;
struct {
char *prelude;
char *header;
char *binds;
pl_shader sh;
u32 screen_size[2];
f32 time;
struct pl_shader_var vars[23];
f32 vertices[24];
struct pl_vertex_attrib attribs[2];
f64 tick_time;
bool logged_fail;
} osd;
const struct pl_hook *vr_emulation_hook[1];
bool vr_init_failed;
#ifdef CAMU_HAVE_SUBTITLES
ASS_Library *ass;
#endif
};
struct camu_renderer *camu_renderer_libplacebo_create(void);
|