summaryrefslogtreecommitdiff
path: root/src/screen
diff options
context:
space:
mode:
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