Refactor editor rendering contracts

This commit is contained in:
2026-04-28 02:57:49 +08:00
parent 3bc0cfcf08
commit b1ae6c462d
47 changed files with 798 additions and 377 deletions

View File

@@ -1,5 +1,7 @@
#include "Viewport/SceneViewportRenderService.h"
#include "Viewport/ViewportObjectIdPicker.h"
#include <XCEngine/Rendering/Picking/RenderObjectIdRegistry.h>
#include <XCEngine/Rendering/Execution/SceneRenderer.h>
#include <XCEngine/Scene/Scene.h>
@@ -41,9 +43,9 @@ SceneViewportRenderService::SceneViewportRenderService() = default;
SceneViewportRenderService::~SceneViewportRenderService() = default;
ViewportResourceRequirements
EditorViewportResourceRequirements
SceneViewportRenderService::GetViewportResourceRequirements() {
ViewportResourceRequirements requirements = {};
EditorViewportResourceRequirements requirements = {};
requirements.requiresDepthSampling = true;
requirements.requiresObjectIdSurface = true;
requirements.requiresSelectionMaskSurface = true;
@@ -79,6 +81,10 @@ void SceneViewportRenderService::SetRenderRequest(
m_renderRequest = std::move(request);
}
const IViewportObjectPickerService& SceneViewportRenderService::GetObjectPicker() const {
return *this;
}
ViewportRenderResult SceneViewportRenderService::Render(
ViewportRenderTargets& targets,
::XCEngine::RHI::RHIDevice& device,