refactor(editor): isolate engine service boundaries
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "Viewport/SceneViewportRenderService.h"
|
||||
|
||||
#include "Engine/EditorEngineServices.h"
|
||||
#include "Engine/EditorShaderProvider.h"
|
||||
#include "Engine/SceneViewportEngineBridge.h"
|
||||
#include "Viewport/ViewportObjectIdPicker.h"
|
||||
|
||||
#include <utility>
|
||||
@@ -51,15 +52,16 @@ SceneViewportRenderService::GetViewportResourceRequirements() {
|
||||
|
||||
void SceneViewportRenderService::Initialize(
|
||||
const SceneViewportShaderPaths& shaderPaths,
|
||||
EditorEngineServices& engineServices) {
|
||||
m_engineServices = &engineServices;
|
||||
m_renderPassBundle.Initialize(shaderPaths, engineServices);
|
||||
SceneViewportEngineBridge& engineBridge,
|
||||
EditorShaderProvider& shaderProvider) {
|
||||
m_engineBridge = &engineBridge;
|
||||
m_renderPassBundle.Initialize(shaderPaths, shaderProvider);
|
||||
}
|
||||
|
||||
void SceneViewportRenderService::Shutdown() {
|
||||
m_renderRequest = {};
|
||||
m_renderPassBundle.Shutdown();
|
||||
m_engineServices = nullptr;
|
||||
m_engineBridge = nullptr;
|
||||
m_device = nullptr;
|
||||
m_lastTargets = nullptr;
|
||||
m_lastRenderContext = {};
|
||||
@@ -103,8 +105,8 @@ ViewportRenderResult SceneViewportRenderService::Render(
|
||||
BuildViewportColorSurface(targets);
|
||||
::XCEngine::Rendering::CameraFramePlan framePlan = {};
|
||||
const SceneViewportFramePlanBuildStatus buildStatus =
|
||||
m_engineServices != nullptr
|
||||
? m_engineServices->BuildSceneViewportFramePlan(
|
||||
m_engineBridge != nullptr
|
||||
? m_engineBridge->BuildSceneViewportFramePlan(
|
||||
m_renderRequest,
|
||||
renderContext,
|
||||
surface,
|
||||
@@ -139,8 +141,8 @@ ViewportRenderResult SceneViewportRenderService::Render(
|
||||
SetStatusIfEmpty(result.statusText, renderPlan.warningStatusText);
|
||||
}
|
||||
|
||||
if (m_engineServices == nullptr ||
|
||||
!m_engineServices->RenderSceneViewportFramePlan(framePlan)) {
|
||||
if (m_engineBridge == nullptr ||
|
||||
!m_engineBridge->RenderSceneViewportFramePlan(framePlan)) {
|
||||
return BuildFallbackResult(
|
||||
"Scene renderer failed",
|
||||
0.18f,
|
||||
@@ -208,8 +210,8 @@ ViewportObjectIdPickResult SceneViewportRenderService::PickObject(
|
||||
}
|
||||
|
||||
EditorSceneObjectId runtimeObjectId = kInvalidEditorSceneObjectId;
|
||||
if (m_engineServices == nullptr ||
|
||||
!m_engineServices->TryResolveActiveSceneRenderObjectId(
|
||||
if (m_engineBridge == nullptr ||
|
||||
!m_engineBridge->TryResolveActiveSceneRenderObjectId(
|
||||
result.renderObjectId,
|
||||
runtimeObjectId)) {
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user