Switch scene viewport flow to frame plans
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
#include "ViewportHostRenderTargets.h"
|
||||
|
||||
#include <XCEngine/Core/Math/Color.h>
|
||||
#include <XCEngine/Rendering/Planning/CameraRenderRequest.h>
|
||||
#include <XCEngine/Rendering/Execution/CameraFramePlan.h>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@@ -142,31 +142,31 @@ inline SceneViewportSelectionOutlineStyle BuildSceneViewportSelectionOutlineStyl
|
||||
inline void ApplySceneViewportRenderRequestSetup(
|
||||
const ViewportRenderTargets& targets,
|
||||
Rendering::RenderPassSequence* postPasses,
|
||||
Rendering::CameraRenderRequest& request) {
|
||||
request.preScenePasses = nullptr;
|
||||
request.postScenePasses = nullptr;
|
||||
request.overlayPasses = nullptr;
|
||||
request.objectId = {};
|
||||
Rendering::CameraFramePlan& plan) {
|
||||
plan.preScenePasses = nullptr;
|
||||
plan.postScenePasses = nullptr;
|
||||
plan.overlayPasses = nullptr;
|
||||
plan.request.objectId = {};
|
||||
|
||||
if (postPasses != nullptr && postPasses->GetPassCount() > 0) {
|
||||
request.postScenePasses = postPasses;
|
||||
plan.postScenePasses = postPasses;
|
||||
}
|
||||
|
||||
if (targets.objectIdView == nullptr || targets.objectIdDepthView == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
request.objectId.surface = BuildViewportObjectIdSurface(targets);
|
||||
request.objectId.surface.SetRenderArea(request.surface.GetRenderArea());
|
||||
plan.request.objectId.surface = BuildViewportObjectIdSurface(targets);
|
||||
plan.request.objectId.surface.SetRenderArea(plan.request.surface.GetRenderArea());
|
||||
}
|
||||
|
||||
inline void MarkSceneViewportRenderSuccess(
|
||||
ViewportRenderTargets& targets,
|
||||
const Rendering::CameraRenderRequest& request) {
|
||||
const Rendering::CameraFramePlan& plan) {
|
||||
targets.colorState = RHI::ResourceStates::PixelShaderResource;
|
||||
targets.objectIdState = RHI::ResourceStates::PixelShaderResource;
|
||||
targets.selectionMaskState = RHI::ResourceStates::PixelShaderResource;
|
||||
targets.hasValidObjectIdFrame = request.objectId.IsRequested();
|
||||
targets.hasValidObjectIdFrame = plan.request.objectId.IsRequested();
|
||||
}
|
||||
|
||||
inline void MarkGameViewportRenderSuccess(ViewportRenderTargets& targets) {
|
||||
|
||||
Reference in New Issue
Block a user