Phase 3 refactor in progress
Some checks failed
CI / React UI Build (push) Successful in 10s
CI / Native Windows Build And Tests (push) Successful in 2m33s
CI / Windows Release Package (push) Has been cancelled

This commit is contained in:
Aiden
2026-05-11 16:48:52 +10:00
parent 0808171677
commit 06f3dd4942
12 changed files with 655 additions and 87 deletions

View File

@@ -175,7 +175,7 @@ RuntimeCoordinatorResult RuntimeCoordinator::CommitOscParameterByControlKey(cons
std::lock_guard<std::mutex> lock(mMutex);
std::string error;
ResolvedParameterMutation mutation;
if (!BuildParameterMutationByControlKey(layerKey, parameterKey, newValue, false, mutation, error))
if (!BuildParameterMutationByControlKey(layerKey, parameterKey, newValue, true, mutation, error))
{
RuntimeCoordinatorResult result = ApplyStoreMutation(false, error, false, false, false);
PublishCoordinatorResult("CommitOscParameterByControlKey", result);

View File

@@ -3,8 +3,22 @@
RenderStateCompositionResult RenderStateComposer::BuildFrameState(const RenderStateCompositionInput& input) const
{
RenderStateCompositionResult result;
result.layerStates = input.baseLayerStates;
if (!input.baseLayerStates)
return result;
result.layerStates = *input.baseLayerStates;
result.hasLayerStates = !result.layerStates.empty();
if (input.liveState)
input.liveState->ApplyToLayerStates(result.layerStates, input.liveStateOptions, &result.commitRequests);
{
RuntimeLiveStateApplyOptions options;
options.allowCommit = input.allowLiveCommits;
options.smoothing = input.liveSmoothing;
options.commitDelay = input.liveCommitDelay;
options.now = input.now;
input.liveState->ApplyToLayerStates(
result.layerStates,
options,
input.collectLiveCommitRequests ? &result.commitRequests : nullptr);
}
return result;
}

View File

@@ -2,19 +2,25 @@
#include "RuntimeLiveState.h"
#include <chrono>
#include <vector>
struct RenderStateCompositionInput
{
std::vector<RuntimeRenderState> baseLayerStates;
const std::vector<RuntimeRenderState>* baseLayerStates = nullptr;
RuntimeLiveState* liveState = nullptr;
RuntimeLiveStateApplyOptions liveStateOptions;
bool allowLiveCommits = false;
bool collectLiveCommitRequests = true;
double liveSmoothing = 0.0;
std::chrono::milliseconds liveCommitDelay = std::chrono::milliseconds(150);
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
};
struct RenderStateCompositionResult
{
std::vector<RuntimeRenderState> layerStates;
std::vector<RuntimeLiveOscCommitRequest> commitRequests;
bool hasLayerStates = false;
};
class RenderStateComposer