diff options
| author | 2025-01-27 21:56:39 -0500 | |
|---|---|---|
| committer | 2025-01-27 21:56:39 -0500 | |
| commit | 457a3cc1a04e45e31370d9083186436b0d12ab1d (patch) | |
| tree | 7ffb9d676edd4a1b88e8f1020dd905efcfe6b83a /src/screen | |
| parent | f760ecedb619a55ec8ee989639ac385f27e82d98 (diff) | |
| download | camu-457a3cc1a04e45e31370d9083186436b0d12ab1d.tar.gz camu-457a3cc1a04e45e31370d9083186436b0d12ab1d.tar.bz2 camu-457a3cc1a04e45e31370d9083186436b0d12ab1d.zip | |
Refactor threaded waits
- Move seek to handler thread.
- Cleanup and comment some stuff.
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/screen')
| -rw-r--r-- | src/screen/screen.c | 13 | ||||
| -rw-r--r-- | src/screen/screen.h | 4 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src/screen/screen.c b/src/screen/screen.c index 929020e..8e3ecbd 100644 --- a/src/screen/screen.c +++ b/src/screen/screen.c @@ -280,8 +280,6 @@ static void key_immediate_callback(void *userdata, u8 state, u8 button) bool camu_screen_init(struct camu_screen *scr, void *context) { al_atomic_store(s32)(&scr->state, CAMU_SCREEN_PAUSED, AL_ATOMIC_RELAXED); - al_array_init(scr->videos); - scr->renderer = NULL; scr->window = stl_window_create(context); scr->window->pointer_pos_callback = pointer_pos_callback; scr->window->scroll_callback = scroll_callback; @@ -292,15 +290,18 @@ bool camu_screen_init(struct camu_screen *scr, void *context) scr->window->refresh_callback = refresh_callback; scr->window->should_close_callback = should_close_callback; scr->window->userdata = scr; + scr->renderer = NULL; + scr->force_render = false; + scr->flags = CAMU_SCREEN_ZOOM_PAN_SIMPLE; + scr->last_mouse_x = 0.0; + scr->last_mouse_y = 0.0; + al_array_init(scr->videos); #ifdef CAMU_SCREEN_THREADED al_array_init(scr->add_queue); al_array_init(scr->rem_queue); al_atomic_store(u8)(&scr->queued, 0, AL_ATOMIC_RELAXED); nn_mutex_init(&scr->mutex); #endif - scr->last_mouse_x = 0.0; - scr->last_mouse_y = 0.0; - scr->flags = CAMU_SCREEN_ZOOM_PAN_SIMPLE; return true; } @@ -317,7 +318,7 @@ static nn_thread_result NNWT_THREADCALL event_thread(void *userdata) bool camu_screen_create_window(struct camu_screen *scr, const char *name) { - s32 flags = STELA_WINDOW_VSYNC; + u32 flags = STELA_WINDOW_VSYNC; if (!scr->window->create_window(scr->window, CAMU_SCREEN_WIDTH, CAMU_SCREEN_HEIGHT, "", name, flags)) { return false; } diff --git a/src/screen/screen.h b/src/screen/screen.h index c84cfc0..7203018 100644 --- a/src/screen/screen.h +++ b/src/screen/screen.h @@ -20,7 +20,7 @@ enum { CAMU_SCREEN_MODIFIER = 1, CAMU_SCREEN_DRAGGING = 1 << 1, - CAMU_SCREEN_ZOOM_PAN_SIMPLE = 1 << 2, + CAMU_SCREEN_ZOOM_PAN_SIMPLE = 1 << 2 }; enum { @@ -50,13 +50,13 @@ struct camu_screen_video { struct camu_screen { atomic(s32) state; - u32 flags; struct stl_window *window; #ifdef STELA_EVENT_BUFFER struct nn_thread thread; #endif struct camu_renderer *renderer; bool force_render; + u32 flags; s32 width; s32 height; bool last_fullscreen; |