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,9 +1,8 @@
#pragma once
#include "Viewport/EditorViewportRuntimeServices.h"
#include "Viewport/ViewportContentRenderer.h"
#include "Viewport/ViewportObjectPickerService.h"
#include "Viewport/SceneViewportRenderPassBundle.h"
#include "Scene/SceneViewportRenderRequest.h"
#include <memory>
#include <string>
@@ -28,16 +27,18 @@ namespace XCEngine::UI::Editor::App {
class SceneViewportRenderService
: public IViewportContentRenderer
, public EditorSceneViewportRuntime
, public IViewportObjectPickerService {
public:
SceneViewportRenderService();
~SceneViewportRenderService();
static ViewportResourceRequirements GetViewportResourceRequirements();
static EditorViewportResourceRequirements GetViewportResourceRequirements();
void Initialize(const SceneViewportShaderPaths& shaderPaths);
void Shutdown();
void SetRenderRequest(SceneViewportRenderRequest request);
void SetRenderRequest(SceneViewportRenderRequest request) override;
const IViewportObjectPickerService& GetObjectPicker() const override;
ViewportRenderResult Render(
ViewportRenderTargets& targets,