only applying dimming on frames where the animations were updated
This commit is contained in:
parent
04b351e792
commit
a1e6981bf2
|
@ -172,6 +172,7 @@ struct animation_system
|
|||
s32 LastUpdatedFrame;
|
||||
r32 SecondsPerFrame;
|
||||
b32 TimelineShouldAdvance;
|
||||
u32 UpdatesThisFrame;
|
||||
|
||||
// Settings
|
||||
bool Multithreaded;
|
||||
|
@ -756,6 +757,8 @@ AnimationSystem_Update(animation_system* System, r32 DeltaTime)
|
|||
if (!System->TimelineShouldAdvance) { return; }
|
||||
if (!AnimationFadeGroup_ShouldRender(System->ActiveFadeGroup)) { return; }
|
||||
|
||||
System->UpdatesThisFrame = 0;
|
||||
|
||||
AnimationFadeGroup_Update(&System->ActiveFadeGroup, DeltaTime);
|
||||
|
||||
animation* ActiveAnim = AnimationSystem_GetActiveAnimation(System);
|
||||
|
@ -766,6 +769,7 @@ AnimationSystem_Update(animation_system* System, r32 DeltaTime)
|
|||
{
|
||||
System->CurrentFrame += 1;
|
||||
System->SecondsOnCurrentFrame -= System->SecondsPerFrame;
|
||||
System->UpdatesThisFrame += 1;
|
||||
}
|
||||
|
||||
// Loop back to the beginning
|
||||
|
|
|
@ -169,7 +169,7 @@ typedef DRAW_FONT_CODEPOINT(platform_draw_font_codepoint);
|
|||
|
||||
// Worker Threads
|
||||
|
||||
#define PLATFORM_THREAD_COUNT 0
|
||||
#define PLATFORM_THREAD_COUNT 3
|
||||
|
||||
RESET_WORK_QUEUE(ResetWorkQueue)
|
||||
{
|
||||
|
|
|
@ -800,7 +800,7 @@ BlumenLumen_CustomUpdate(gs_data UserData, app_state* State, context* Context)
|
|||
}
|
||||
|
||||
// Dim the leds based on temp data
|
||||
if (!BLState->DEBUG_IgnoreWeatherDimmingLeds)
|
||||
if (State->AnimationSystem.UpdatesThisFrame > 0 && !BLState->DEBUG_IgnoreWeatherDimmingLeds)
|
||||
{
|
||||
led_buffer B0 = State->LedSystem.Buffers[0];
|
||||
pixel P0 = B0.Colors[0];
|
||||
|
|
Loading…
Reference in New Issue