Phase 3 refactor in progress
This commit is contained in:
@@ -259,8 +259,7 @@ bool RenderEngine::ResolveRenderLayerStates(
|
||||
layerStates.clear();
|
||||
if (useCommittedLayerStates)
|
||||
{
|
||||
layerStates = mShaderPrograms.CommittedLayerStates();
|
||||
ApplyOscOverlays(layerStates, false, oscSmoothing, commitRequests);
|
||||
layerStates = ComposeRenderLayerStates(mShaderPrograms.CommittedLayerStates(), false, oscSmoothing, commitRequests);
|
||||
mRuntimeSnapshotProvider.RefreshDynamicRenderStateFields(layerStates);
|
||||
return true;
|
||||
}
|
||||
@@ -281,12 +280,12 @@ bool RenderEngine::ResolveRenderLayerStates(
|
||||
renderSnapshot.versions.parameterStateVersion = mCachedParameterStateVersion;
|
||||
renderSnapshot.states = mCachedLayerRenderStates;
|
||||
|
||||
ApplyOscOverlays(renderSnapshot.states, true, oscSmoothing, commitRequests);
|
||||
renderSnapshot.states = ComposeRenderLayerStates(renderSnapshot.states, true, oscSmoothing, commitRequests);
|
||||
if (mCachedParameterStateVersion != versions.parameterStateVersion &&
|
||||
mRuntimeSnapshotProvider.TryRefreshPublishedSnapshotParameters(renderSnapshot))
|
||||
{
|
||||
mCachedParameterStateVersion = renderSnapshot.versions.parameterStateVersion;
|
||||
ApplyOscOverlays(renderSnapshot.states, true, oscSmoothing, commitRequests);
|
||||
renderSnapshot.states = ComposeRenderLayerStates(renderSnapshot.states, true, oscSmoothing, commitRequests);
|
||||
}
|
||||
|
||||
mCachedLayerRenderStates = renderSnapshot.states;
|
||||
@@ -303,36 +302,38 @@ bool RenderEngine::ResolveRenderLayerStates(
|
||||
mCachedParameterStateVersion = renderSnapshot.versions.parameterStateVersion;
|
||||
mCachedRenderStateWidth = renderSnapshot.outputWidth;
|
||||
mCachedRenderStateHeight = renderSnapshot.outputHeight;
|
||||
ApplyOscOverlays(mCachedLayerRenderStates, true, oscSmoothing, commitRequests);
|
||||
mCachedLayerRenderStates = ComposeRenderLayerStates(mCachedLayerRenderStates, true, oscSmoothing, commitRequests);
|
||||
layerStates = mCachedLayerRenderStates;
|
||||
return true;
|
||||
}
|
||||
|
||||
ApplyOscOverlays(mCachedLayerRenderStates, true, oscSmoothing, commitRequests);
|
||||
layerStates = mCachedLayerRenderStates;
|
||||
layerStates = ComposeRenderLayerStates(mCachedLayerRenderStates, true, oscSmoothing, commitRequests);
|
||||
mRuntimeSnapshotProvider.RefreshDynamicRenderStateFields(layerStates);
|
||||
return !layerStates.empty();
|
||||
}
|
||||
|
||||
void RenderEngine::ApplyOscOverlays(
|
||||
std::vector<RuntimeRenderState>& states,
|
||||
std::vector<RuntimeRenderState> RenderEngine::ComposeRenderLayerStates(
|
||||
const std::vector<RuntimeRenderState>& baseStates,
|
||||
bool allowCommit,
|
||||
double smoothing,
|
||||
std::vector<OscOverlayCommitRequest>* commitRequests)
|
||||
{
|
||||
std::vector<RuntimeLiveOscCommitRequest> liveCommitRequests;
|
||||
RuntimeLiveStateApplyOptions options;
|
||||
options.allowCommit = allowCommit;
|
||||
options.smoothing = smoothing;
|
||||
options.commitDelay = kOscOverlayCommitDelay;
|
||||
options.now = std::chrono::steady_clock::now();
|
||||
mRuntimeLiveState.ApplyToLayerStates(states, options, commitRequests ? &liveCommitRequests : nullptr);
|
||||
RenderStateCompositionInput input;
|
||||
input.baseLayerStates = &baseStates;
|
||||
input.liveState = &mRuntimeLiveState;
|
||||
input.allowLiveCommits = allowCommit;
|
||||
input.collectLiveCommitRequests = commitRequests != nullptr;
|
||||
input.liveSmoothing = smoothing;
|
||||
input.liveCommitDelay = kOscOverlayCommitDelay;
|
||||
input.now = std::chrono::steady_clock::now();
|
||||
const RenderStateCompositionResult result = mRenderStateComposer.BuildFrameState(input);
|
||||
|
||||
if (!commitRequests)
|
||||
return;
|
||||
return result.layerStates;
|
||||
|
||||
for (const RuntimeLiveOscCommitRequest& request : liveCommitRequests)
|
||||
for (const RuntimeLiveOscCommitRequest& request : result.commitRequests)
|
||||
commitRequests->push_back({ request.routeKey, request.layerKey, request.parameterKey, request.value, request.generation });
|
||||
return result.layerStates;
|
||||
}
|
||||
|
||||
void RenderEngine::RenderLayerStack(
|
||||
|
||||
Reference in New Issue
Block a user