summaryrefslogtreecommitdiff
path: root/src/screen
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-01-16 21:01:49 -0500
committerAndrew Opalach <andrew@akon.city> 2024-01-16 21:01:49 -0500
commit9065d8778e63ea919506fd0d4a0692042fb503fb (patch)
tree09de40e56ac924e60c4f3c080ac74a5064049e90 /src/screen
parent863eda6c45a0ed0bf5f460dde6177c257d57cff8 (diff)
downloadcamu-9065d8778e63ea919506fd0d4a0692042fb503fb.tar.gz
camu-9065d8778e63ea919506fd0d4a0692042fb503fb.tar.bz2
camu-9065d8778e63ea919506fd0d4a0692042fb503fb.zip
Improve windows build
- Support using libplacebo vulkan backend on windows Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/screen')
-rw-r--r--src/screen/meson.build5
-rw-r--r--src/screen/screen.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/src/screen/meson.build b/src/screen/meson.build
index d0bbd50..063b11a 100644
--- a/src/screen/meson.build
+++ b/src/screen/meson.build
@@ -1,8 +1,9 @@
screen_src = ['screen.c', 'view.c']
+use_vulkan = false
sekihi = subproject('sekihi',
default_options: [
- 'api=opengl',
- 'window=wayland',
+ use_vulkan ? 'api=vulkan' : 'api=opengl',
+ 'window=glfw',
'poll=inline',
'event-buffer=false',
'pause=true'
diff --git a/src/screen/screen.c b/src/screen/screen.c
index 94b5d8c..0baaef3 100644
--- a/src/screen/screen.c
+++ b/src/screen/screen.c
@@ -39,6 +39,14 @@ static void resize_callback(void *userdata, s32 width, s32 height)
}
}
+static void refresh_callback(void *userdata)
+{
+ struct camu_screen *scr = (struct camu_screen *)userdata;
+ if (scr->renderer) {
+ scr->renderer->render(scr->renderer, scr);
+ }
+}
+
static bool pointer_pos_callback(void *userdata, f64 x, f64 y)
{
struct camu_screen *scr = (struct camu_screen *)userdata;
@@ -200,6 +208,7 @@ bool camu_screen_init(struct camu_screen *scr)
scr->window->key_callback = key_callback;
scr->window->key_immediate_callback = key_immediate_callback;
scr->window->resize_callback = resize_callback;
+ scr->window->refresh_callback = refresh_callback;
scr->window->should_close_callback = should_close_callback;
scr->window->userdata = scr;
#ifdef CAMU_SCREEN_THREADED