Move scene viewport post effects into editor passes

This commit is contained in:
2026-04-03 14:26:36 +08:00
parent b882610bbc
commit 9edf378085
8 changed files with 314 additions and 15 deletions

View File

@@ -5,6 +5,8 @@
#include "Core/ISelectionManager.h"
#include "IViewportHostService.h"
#include "Passes/SceneViewportEditorOverlayPass.h"
#include "Passes/SceneViewportGridPass.h"
#include "Passes/SceneViewportSelectionOutlinePass.h"
#include "SceneViewportCameraController.h"
#include "SceneViewportEditorOverlayData.h"
#include "SceneViewportOverlayHandleBuilder.h"
@@ -206,6 +208,8 @@ public:
entry = {};
}
m_sceneViewportSelectionOutlineRenderer.Shutdown();
m_sceneViewportGridRenderer.Shutdown();
m_sceneViewportEditorOverlayRenderer.Shutdown();
m_sceneViewCamera = {};
ResetSceneViewEditorOverlayFrameData();
@@ -650,6 +654,21 @@ private:
selectedObjectIds,
editorOverlayFrameData,
BuildSceneViewTransientTransformGizmoOverlayFrameData(),
[this](const Rendering::Passes::InfiniteGridPassData& data) {
return CreateSceneViewportGridPass(
m_sceneViewportGridRenderer,
data);
},
[this](
RHI::RHIResourceView* objectIdTextureView,
const std::vector<uint64_t>& selectedObjectIds,
const Rendering::Passes::ObjectIdOutlineStyle& style) {
return CreateSceneViewportSelectionOutlinePass(
m_sceneViewportSelectionOutlineRenderer,
objectIdTextureView,
selectedObjectIds,
style);
},
[this](const SceneViewportOverlayFrameData& frameData) {
return CreateSceneViewportEditorOverlayPass(
m_sceneViewportEditorOverlayRenderer,
@@ -867,6 +886,8 @@ private:
uint32_t m_sceneViewEditorOverlayViewportHeight = 0u;
uint64_t m_sceneViewEditorOverlayContentSignature = 0u;
bool m_sceneViewEditorOverlayCached = false;
SceneViewportGridPassRenderer m_sceneViewportGridRenderer;
SceneViewportSelectionOutlinePassRenderer m_sceneViewportSelectionOutlineRenderer;
SceneViewportEditorOverlayPassRenderer m_sceneViewportEditorOverlayRenderer;
};