refactor: move scene view selection utilities into renderer

This commit is contained in:
2026-04-01 19:03:58 +08:00
parent 44771d3cc1
commit 55b3021159
9 changed files with 210 additions and 309 deletions

View File

@@ -57,10 +57,6 @@ public:
Components::CameraComponent* overrideCamera) const;
private:
RenderCameraData BuildCameraData(
const Components::CameraComponent& camera,
uint32_t viewportWidth,
uint32_t viewportHeight) const;
void ExtractLighting(
const Components::Scene& scene,
RenderLightingData& lightingData) const;

View File

@@ -0,0 +1,35 @@
#pragma once
#include <XCEngine/Core/Math/Vector3.h>
#include <XCEngine/Rendering/RenderCameraData.h>
#include <XCEngine/Rendering/VisibleRenderObject.h>
#include <cstdint>
#include <vector>
namespace XCEngine {
namespace Components {
class CameraComponent;
class GameObject;
class Scene;
} // namespace Components
namespace Rendering {
RenderCameraData BuildRenderCameraData(
const Components::CameraComponent& camera,
uint32_t viewportWidth,
uint32_t viewportHeight);
void AppendRenderItemsForGameObject(
Components::GameObject& gameObject,
const Math::Vector3& cameraPosition,
std::vector<VisibleRenderItem>& outVisibleItems);
std::vector<VisibleRenderItem> CollectRenderItemsForEntityIds(
const Components::Scene& scene,
const std::vector<uint64_t>& entityIds,
const Math::Vector3& cameraPosition);
} // namespace Rendering
} // namespace XCEngine