diff options
| author | 2025-10-30 14:40:08 -0400 | |
|---|---|---|
| committer | 2025-10-30 14:40:08 -0400 | |
| commit | 90da3b27d939b3b7af1cf7fed10dfaaa7e271622 (patch) | |
| tree | f0cf96c76d5c83470d2c50dd69d2d3e39a503fab /src/screen | |
| parent | 77837d7b63240c069b3351a919a7d2af670f46cd (diff) | |
| download | camu-90da3b27d939b3b7af1cf7fed10dfaaa7e271622.tar.gz camu-90da3b27d939b3b7af1cf7fed10dfaaa7e271622.tar.bz2 camu-90da3b27d939b3b7af1cf7fed10dfaaa7e271622.zip | |
Fixes from testing sink change, document things
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/screen')
| -rw-r--r-- | src/screen/screen.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/screen/screen.c b/src/screen/screen.c index 7bd5d25..844076e 100644 --- a/src/screen/screen.c +++ b/src/screen/screen.c @@ -1,4 +1,5 @@ #define AL_LOG_SECTION "screen" +//#define AL_LOG_ENABLE_TRACE #include <al/log.h> #include <al/math.h> #include <nnwt/thread.h> @@ -703,7 +704,9 @@ void camu_screen_clear(struct camu_screen *scr) void camu_screen_set_state(struct camu_screen *scr, s32 state) { - // @TODO: What to do if a buffer is queued for removal and we pause here. + // 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); if (state == CAMU_SCREEN_PAUSED) { al_atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED); @@ -747,6 +750,7 @@ bool camu_screen_tick(struct camu_screen *scr, bool *force) force_refresh = al_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); } |