summaryrefslogtreecommitdiff
path: root/src/screen
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-11-30 18:26:31 -0500
committerAndrew Opalach <andrew@akon.city> 2025-11-30 18:26:31 -0500
commitc6a78e2502fd3f7deabecbf48970f346424106f6 (patch)
tree4564443ec04438d4c878203029f7abf53437c287 /src/screen
parentc8412bbedae0fce38db96833732e8ce904721e4c (diff)
downloadcamu-c6a78e2502fd3f7deabecbf48970f346424106f6.tar.gz
camu-c6a78e2502fd3f7deabecbf48970f346424106f6.tar.bz2
camu-c6a78e2502fd3f7deabecbf48970f346424106f6.zip
Pass on atomic usage
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/screen')
-rw-r--r--src/screen/screen.c40
-rw-r--r--src/screen/screen.h2
2 files changed, 21 insertions, 21 deletions
diff --git a/src/screen/screen.c b/src/screen/screen.c
index f6833dd..701b39e 100644
--- a/src/screen/screen.c
+++ b/src/screen/screen.c
@@ -47,7 +47,7 @@ static void do_resize(struct camu_screen *scr, u32 width, u32 height)
camu_view_calculate(&video->view, scr->width, scr->height);
}
// No buffers resize.
- al_atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
+ atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
}
static void resize_callback(void *userdata, u32 width, u32 height)
@@ -400,7 +400,7 @@ static bool key_callback(void *userdata, u8 state, u16 button)
log_info("Background solid.");
}
// Force refresh for if there's no video buffer.
- al_atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
+ atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
return true;
case STELA_KEY_V: {
if (SCREEN_MOD1(scr)) {
@@ -469,7 +469,7 @@ static void key_immediate_callback(void *userdata, u8 state, u16 button)
bool camu_screen_init(struct camu_screen *scr)
{
- al_atomic_store(s32)(&scr->state, CAMU_SCREEN_PAUSED, AL_ATOMIC_RELAXED);
+ atomic_store(s32)(&scr->state, CAMU_SCREEN_PAUSED, AL_ATOMIC_RELAXED);
scr->window = stl_window_create();
scr->window->render_callback = render_callback;
scr->window->resize_callback = resize_callback;
@@ -482,7 +482,7 @@ bool camu_screen_init(struct camu_screen *scr)
scr->window->should_close_callback = should_close_callback;
scr->window->userdata = scr;
scr->renderer = NULL;
- al_atomic_store(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
+ atomic_store(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
scr->flags = CAMU_SCREEN_ZOOM_PAN_SIMPLE;
scr->scaling_disabled = false;
scr->transparent_background = false;
@@ -502,7 +502,7 @@ bool camu_screen_init(struct camu_screen *scr)
#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);
+ atomic_store(bool)(&scr->queued, false, AL_ATOMIC_RELAXED);
nn_mutex_init(&scr->mutex);
#endif
return true;
@@ -584,7 +584,7 @@ static void add_buffer_internal(struct camu_screen *scr, struct camu_video_buffe
}
camu_view_calculate(&video.view, scr->width, scr->height);
#ifdef CAMU_SCREEN_THREADED
- al_atomic_store(u8)(&buf->ref, 1, AL_ATOMIC_RELAXED);
+ atomic_store(bool)(&buf->ref, true, AL_ATOMIC_RELAXED);
#endif
al_array_push(scr->videos, video);
}
@@ -596,7 +596,7 @@ static void remove_buffer_internal(struct camu_screen *scr, struct camu_video_bu
if (video->buf == buf) {
buf->view = video->view;
#ifdef CAMU_SCREEN_THREADED
- al_atomic_store(u8)(&buf->ref, 0, AL_ATOMIC_RELAXED);
+ atomic_store(bool)(&buf->ref, false, AL_ATOMIC_RELAXED);
#endif
al_array_remove_at(scr->videos, i);
break;
@@ -639,14 +639,14 @@ void camu_screen_add_buffer(struct camu_screen *scr, struct camu_video_buffer *b
al_array_remove_at(scr->rem_queue, i);
bool queue_empty = scr->add_queue.count + scr->rem_queue.count == 0;
if (queue_empty) {
- al_atomic_store(u8)(&scr->queued, 0, AL_ATOMIC_RELAXED);
+ atomic_store(bool)(&scr->queued, false, AL_ATOMIC_RELAXED);
}
nn_mutex_unlock(&scr->mutex);
return;
}
}
al_array_push(scr->add_queue, buf);
- al_atomic_store(u8)(&scr->queued, 1, AL_ATOMIC_RELAXED);
+ atomic_store(bool)(&scr->queued, true, AL_ATOMIC_RELAXED);
nn_mutex_unlock(&scr->mutex);
#else
add_buffer_internal(scr, buf);
@@ -670,14 +670,14 @@ void camu_screen_remove_buffer(struct camu_screen *scr, struct camu_video_buffer
al_array_remove_at(scr->add_queue, i);
bool queue_empty = scr->add_queue.count + scr->rem_queue.count == 0;
if (queue_empty) {
- al_atomic_store(u8)(&scr->queued, 0, AL_ATOMIC_RELAXED);
+ atomic_store(bool)(&scr->queued, false, AL_ATOMIC_RELAXED);
}
nn_mutex_unlock(&scr->mutex);
return;
}
}
al_array_push(scr->rem_queue, buf);
- al_atomic_store(u8)(&scr->queued, 1, AL_ATOMIC_RELAXED);
+ atomic_store(bool)(&scr->queued, true, AL_ATOMIC_RELAXED);
nn_mutex_unlock(&scr->mutex);
#else
remove_buffer_internal(scr, buf);
@@ -690,7 +690,7 @@ void camu_screen_run_queue(struct camu_screen *scr)
{
nn_mutex_lock(&scr->mutex);
run_queue_internal(scr);
- al_atomic_store(u8)(&scr->queued, 0, AL_ATOMIC_RELAXED);
+ atomic_store(bool)(&scr->queued, false, AL_ATOMIC_RELAXED);
nn_mutex_unlock(&scr->mutex);
}
@@ -700,7 +700,7 @@ void camu_screen_clear(struct camu_screen *scr)
struct camu_screen_video *video;
al_array_foreach_ptr(scr->videos, i, video) {
struct camu_video_buffer *buf = video->buf;
- al_atomic_store(u8)(&buf->ref, 0, AL_ATOMIC_RELAXED);
+ atomic_store(bool)(&buf->ref, false, AL_ATOMIC_RELAXED);
}
nn_mutex_unlock(&scr->mutex);
}
@@ -711,15 +711,15 @@ void camu_screen_set_state(struct camu_screen *scr, s32 state)
// If state = PAUSED, remove_buffer() relies on screen_wake().
// Unlike mixer_pause() there are no special considerations needed for
// the buffer queue at the point we set state to PAUSED.
- al_atomic_store(s32)(&scr->state, state, AL_ATOMIC_RELEASE);
+ atomic_store(s32)(&scr->state, state, AL_ATOMIC_RELEASE);
if (state == CAMU_SCREEN_PAUSED) {
- al_atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
+ atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
}
}
void camu_screen_force_refresh(struct camu_screen *scr)
{
- al_atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
+ atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED);
camu_screen_wake(scr);
}
@@ -746,17 +746,17 @@ bool camu_screen_poll(struct camu_screen *scr, bool block)
bool camu_screen_tick(struct camu_screen *scr, bool *force)
{
- s32 state = al_atomic_load(s32)(&scr->state, AL_ATOMIC_RELAXED);
- u32 force_refresh = al_atomic_load(u32)(&scr->force_refresh, AL_ATOMIC_ACQUIRE);
+ s32 state = atomic_load(s32)(&scr->state, AL_ATOMIC_RELAXED);
+ u32 force_refresh = atomic_load(u32)(&scr->force_refresh, AL_ATOMIC_ACQUIRE);
bool paused = !scr->vr_emulation && state == CAMU_SCREEN_PAUSED && force_refresh == 0;
bool do_render = camu_screen_poll(scr, paused) || !paused;
// Should be AL_ATOMIC_ACQ_REL.
- force_refresh = al_atomic_load(u32)(&scr->force_refresh, AL_ATOMIC_ACQUIRE);
+ force_refresh = atomic_load(u32)(&scr->force_refresh, AL_ATOMIC_ACQUIRE);
do_render |= force_refresh > 0;
*force = force_refresh > 0;
log_trace("tick (do_render: %s, force_refresh: %u).", BOOLSTR(do_render), force_refresh);
if (force_refresh > 0) {
- al_atomic_sub(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELEASE);
+ atomic_sub(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELEASE);
}
return do_render;
}
diff --git a/src/screen/screen.h b/src/screen/screen.h
index e12d0ae..aded49c 100644
--- a/src/screen/screen.h
+++ b/src/screen/screen.h
@@ -86,7 +86,7 @@ struct camu_screen {
#ifdef CAMU_SCREEN_THREADED
array(struct camu_video_buffer *) add_queue;
array(struct camu_video_buffer *) rem_queue;
- atomic(u8) queued;
+ atomic(bool) queued;
struct nn_mutex mutex;
#endif
void (*callback)(void *, u8, void *);