diff options
Diffstat (limited to 'src/screen')
| -rw-r--r-- | src/screen/meson.build | 5 | ||||
| -rw-r--r-- | src/screen/screen.c | 9 |
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 |