Formalize final color policy resolution
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include "Rendering/Caches/FullscreenPassSurfaceCache.h"
|
||||
#include "Rendering/Planning/CameraPostProcessPassFactory.h"
|
||||
#include "Rendering/Planning/SceneRenderRequestUtils.h"
|
||||
#include "Rendering/RenderPipelineAsset.h"
|
||||
|
||||
namespace XCEngine {
|
||||
namespace Rendering {
|
||||
@@ -35,6 +36,7 @@ std::vector<CameraRenderRequest> SceneRenderer::BuildRenderRequests(
|
||||
const RenderSurface& surface) {
|
||||
std::vector<CameraRenderRequest> requests =
|
||||
m_requestPlanner.BuildRequests(scene, overrideCamera, context, surface);
|
||||
ResolveCameraFinalColorPolicies(requests);
|
||||
AttachCameraPostProcessRequests(context, requests);
|
||||
return requests;
|
||||
}
|
||||
@@ -91,6 +93,24 @@ void SceneRenderer::PrepareOwnedCameraPostProcessState(size_t requestCount) {
|
||||
}
|
||||
}
|
||||
|
||||
void SceneRenderer::ResolveCameraFinalColorPolicies(
|
||||
std::vector<CameraRenderRequest>& requests) const {
|
||||
const RenderPipelineAsset* pipelineAsset = GetPipelineAsset();
|
||||
const FinalColorSettings pipelineDefaults =
|
||||
pipelineAsset != nullptr ? pipelineAsset->GetDefaultFinalColorSettings() : FinalColorSettings();
|
||||
|
||||
for (CameraRenderRequest& request : requests) {
|
||||
if (request.camera == nullptr) {
|
||||
continue;
|
||||
}
|
||||
|
||||
request.finalColorPolicy = ResolveFinalColorPolicy(
|
||||
pipelineDefaults,
|
||||
&request.camera->GetFinalColorOverrides(),
|
||||
nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
void SceneRenderer::AttachCameraPostProcessRequests(
|
||||
const RenderContext& context,
|
||||
std::vector<CameraRenderRequest>& requests) {
|
||||
|
||||
Reference in New Issue
Block a user