diff options
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); } |