editor: centralize engine runtime access
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
#include "Viewport/SceneViewportRenderService.h"
|
||||
|
||||
#include "Engine/EditorEngineServices.h"
|
||||
#include "Viewport/ViewportObjectIdPicker.h"
|
||||
|
||||
#include <XCEngine/Rendering/Picking/RenderObjectIdRegistry.h>
|
||||
#include <XCEngine/Rendering/Execution/SceneRenderer.h>
|
||||
#include <XCEngine/Scene/Scene.h>
|
||||
|
||||
@@ -53,13 +53,16 @@ SceneViewportRenderService::GetViewportResourceRequirements() {
|
||||
}
|
||||
|
||||
void SceneViewportRenderService::Initialize(
|
||||
const SceneViewportShaderPaths& shaderPaths) {
|
||||
m_renderPassBundle.Initialize(shaderPaths);
|
||||
const SceneViewportShaderPaths& shaderPaths,
|
||||
EditorEngineServices& engineServices) {
|
||||
m_engineServices = &engineServices;
|
||||
m_renderPassBundle.Initialize(shaderPaths, engineServices);
|
||||
}
|
||||
|
||||
void SceneViewportRenderService::Shutdown() {
|
||||
m_renderRequest = {};
|
||||
m_renderPassBundle.Shutdown();
|
||||
m_engineServices = nullptr;
|
||||
m_sceneRenderer.reset();
|
||||
m_device = nullptr;
|
||||
m_lastTargets = nullptr;
|
||||
@@ -211,10 +214,10 @@ ViewportObjectIdPickResult SceneViewportRenderService::PickObject(
|
||||
}
|
||||
|
||||
std::uint64_t runtimeObjectId = 0u;
|
||||
if (!::XCEngine::Rendering::RenderObjectIdRegistry::Get()
|
||||
.TryResolveRuntimeObjectId(
|
||||
result.renderObjectId,
|
||||
runtimeObjectId)) {
|
||||
if (m_engineServices == nullptr ||
|
||||
!m_engineServices->TryResolveRenderObjectId(
|
||||
result.renderObjectId,
|
||||
runtimeObjectId)) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user