Phase 5 step 2
All checks were successful
CI / React UI Build (push) Successful in 10s
CI / Native Windows Build And Tests (push) Successful in 2m39s
CI / Windows Release Package (push) Successful in 2m54s

This commit is contained in:
Aiden
2026-05-11 18:56:39 +10:00
parent 77590f4a62
commit 7740fe209c
5 changed files with 103 additions and 56 deletions

View File

@@ -1,24 +1,26 @@
#include "RenderStateComposer.h"
RenderStateCompositionResult RenderStateComposer::BuildFrameState(const RenderStateCompositionInput& input) const
RenderStateCompositionResult RenderStateComposer::BuildFrameState(const LayeredRenderStateInput& input) const
{
RenderStateCompositionResult result;
if (!input.baseLayerStates)
const std::vector<RuntimeRenderState>* layerStates =
input.committedLiveLayerStates ? input.committedLiveLayerStates : input.basePersistedLayerStates;
if (!layerStates)
return result;
result.layerStates = *input.baseLayerStates;
result.layerStates = *layerStates;
result.hasLayerStates = !result.layerStates.empty();
if (input.liveState)
if (input.transientAutomationOverlay)
{
RuntimeLiveStateApplyOptions options;
options.allowCommit = input.allowLiveCommits;
options.smoothing = input.liveSmoothing;
options.commitDelay = input.liveCommitDelay;
options.allowCommit = input.allowTransientAutomationCommits;
options.smoothing = input.transientAutomationSmoothing;
options.commitDelay = input.transientAutomationCommitDelay;
options.now = input.now;
input.liveState->ApplyToLayerStates(
input.transientAutomationOverlay->ApplyToLayerStates(
result.layerStates,
options,
input.collectLiveCommitRequests ? &result.commitRequests : nullptr);
input.collectTransientAutomationCommitRequests ? &result.commitRequests : nullptr);
}
return result;
}

View File

@@ -5,14 +5,15 @@
#include <chrono>
#include <vector>
struct RenderStateCompositionInput
struct LayeredRenderStateInput
{
const std::vector<RuntimeRenderState>* baseLayerStates = nullptr;
RuntimeLiveState* liveState = nullptr;
bool allowLiveCommits = false;
bool collectLiveCommitRequests = true;
double liveSmoothing = 0.0;
std::chrono::milliseconds liveCommitDelay = std::chrono::milliseconds(150);
const std::vector<RuntimeRenderState>* basePersistedLayerStates = nullptr;
const std::vector<RuntimeRenderState>* committedLiveLayerStates = nullptr;
RuntimeLiveState* transientAutomationOverlay = nullptr;
bool allowTransientAutomationCommits = false;
bool collectTransientAutomationCommitRequests = true;
double transientAutomationSmoothing = 0.0;
std::chrono::milliseconds transientAutomationCommitDelay = std::chrono::milliseconds(150);
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
};
@@ -26,5 +27,5 @@ struct RenderStateCompositionResult
class RenderStateComposer
{
public:
RenderStateCompositionResult BuildFrameState(const RenderStateCompositionInput& input) const;
RenderStateCompositionResult BuildFrameState(const LayeredRenderStateInput& input) const;
};