#pragma once #include "RuntimeLiveState.h" #include #include struct RenderStateCompositionInput { const std::vector* baseLayerStates = nullptr; RuntimeLiveState* liveState = nullptr; 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 layerStates; std::vector commitRequests; bool hasLayerStates = false; }; class RenderStateComposer { public: RenderStateCompositionResult BuildFrameState(const RenderStateCompositionInput& input) const; };