feat(rendering): add managed camera request planning seam
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include <XCEngine/Rendering/Execution/CameraFrameRenderGraphFrameData.h>
|
||||
#include <XCEngine/Rendering/Graph/RenderGraph.h>
|
||||
#include <XCEngine/Rendering/Graph/RenderGraphCompiler.h>
|
||||
#include <XCEngine/Rendering/Planning/SceneRenderRequestPlanner.h>
|
||||
#include <XCEngine/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h>
|
||||
#include <XCEngine/Rendering/RenderSurface.h>
|
||||
#include <XCEngine/Scene/Scene.h>
|
||||
@@ -577,6 +578,53 @@ TEST_F(
|
||||
EXPECT_TRUE(plan.IsFinalOutputStageValid());
|
||||
}
|
||||
|
||||
TEST_F(
|
||||
MonoScriptRuntimeTest,
|
||||
ManagedRenderPipelineAssetConfiguresCameraRequestsThroughRequestContext) {
|
||||
Scene* runtimeScene = CreateScene("ManagedRenderPipelineCameraRequestScene");
|
||||
|
||||
GameObject* cameraObject = runtimeScene->CreateGameObject("Camera");
|
||||
auto* camera = cameraObject->AddComponent<CameraComponent>();
|
||||
camera->SetPrimary(true);
|
||||
|
||||
GameObject* lightObject = runtimeScene->CreateGameObject("Light");
|
||||
auto* light = lightObject->AddComponent<LightComponent>();
|
||||
light->SetLightType(LightType::Directional);
|
||||
light->SetCastsShadows(true);
|
||||
|
||||
XCEngine::Rendering::CameraRenderRequest baselineRequest = {};
|
||||
baselineRequest.scene = runtimeScene;
|
||||
baselineRequest.camera = camera;
|
||||
baselineRequest.surface = XCEngine::Rendering::RenderSurface(64u, 64u);
|
||||
XCEngine::Rendering::ApplyDefaultRenderPipelineAssetCameraRenderRequestPolicy(
|
||||
baselineRequest,
|
||||
0u,
|
||||
0u,
|
||||
XCEngine::Rendering::DirectionalShadowPlanningSettings{});
|
||||
ASSERT_TRUE(baselineRequest.directionalShadow.IsValid());
|
||||
|
||||
const XCEngine::Rendering::Pipelines::ManagedRenderPipelineAssetDescriptor descriptor = {
|
||||
"GameScripts",
|
||||
"Gameplay",
|
||||
"ManagedCameraRequestConfiguredRenderPipelineProbeAsset"
|
||||
};
|
||||
|
||||
XCEngine::Rendering::Pipelines::ManagedScriptableRenderPipelineAsset asset(
|
||||
descriptor);
|
||||
|
||||
XCEngine::Rendering::CameraRenderRequest request = {};
|
||||
request.scene = runtimeScene;
|
||||
request.camera = camera;
|
||||
request.surface = XCEngine::Rendering::RenderSurface(64u, 64u);
|
||||
asset.ConfigureCameraRenderRequest(
|
||||
request,
|
||||
0u,
|
||||
0u,
|
||||
XCEngine::Rendering::DirectionalShadowPlanningSettings{});
|
||||
|
||||
EXPECT_FALSE(request.directionalShadow.IsValid());
|
||||
}
|
||||
|
||||
TEST_F(MonoScriptRuntimeTest, ClassFieldDefaultValueQueryReturnsNullComponentReferences) {
|
||||
std::vector<ScriptFieldDefaultValue> fields;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user