89 lines
3.3 KiB
C++
89 lines
3.3 KiB
C++
#include <gtest/gtest.h>
|
|
|
|
#include <XCEngine/Rendering/Execution/CameraFrameRenderGraphFrameData.h>
|
|
|
|
using namespace XCEngine::Rendering;
|
|
|
|
TEST(CameraFrameRenderGraphFrameData_Test, StoresFrameDataAndResourcesInBlackboard) {
|
|
RenderGraphBlackboard blackboard = {};
|
|
|
|
CameraFrameRenderGraphFrameData& frameData =
|
|
EmplaceCameraFrameRenderGraphFrameData(blackboard);
|
|
frameData.resources.mainScene.color = RenderGraphTextureHandle{ 7u };
|
|
frameData.resources.postProcess.depth = RenderGraphTextureHandle{ 9u };
|
|
|
|
CameraFrameRenderGraphFrameData* const storedFrameData =
|
|
TryGetCameraFrameRenderGraphFrameData(&blackboard);
|
|
ASSERT_NE(storedFrameData, nullptr);
|
|
EXPECT_EQ(storedFrameData, &frameData);
|
|
|
|
CameraFrameRenderGraphResources* const frameResources =
|
|
TryGetCameraFrameRenderGraphResources(&blackboard);
|
|
ASSERT_NE(frameResources, nullptr);
|
|
EXPECT_EQ(frameResources, &frameData.resources);
|
|
EXPECT_EQ(frameResources->mainScene.color.index, 7u);
|
|
EXPECT_EQ(frameResources->postProcess.depth.index, 9u);
|
|
}
|
|
|
|
TEST(CameraFrameRenderGraphFrameData_Test, ResolvesColorSourceFromBlackboardFrameData) {
|
|
RenderGraphBlackboard blackboard = {};
|
|
CameraFrameRenderGraphFrameData& frameData =
|
|
EmplaceCameraFrameRenderGraphFrameData(blackboard);
|
|
frameData.resources.mainScene.color = RenderGraphTextureHandle{ 17u };
|
|
frameData.resources.postProcess.color = RenderGraphTextureHandle{ 19u };
|
|
|
|
EXPECT_EQ(
|
|
ResolveCameraFrameRenderGraphColorSource(
|
|
&blackboard,
|
|
CameraFrameColorSource::MainSceneColor)
|
|
.index,
|
|
17u);
|
|
EXPECT_EQ(
|
|
ResolveCameraFrameRenderGraphColorSource(
|
|
&blackboard,
|
|
CameraFrameColorSource::PostProcessColor)
|
|
.index,
|
|
19u);
|
|
}
|
|
|
|
TEST(CameraFrameRenderGraphFrameData_Test, ResolvesStageSurfaceResourcesThroughCentralSlotPolicy) {
|
|
CameraFrameRenderGraphResources frameResources = {};
|
|
|
|
EXPECT_EQ(
|
|
ResolveCameraFrameRenderGraphStageSurfaceResources(
|
|
frameResources,
|
|
CameraFrameStage::MainScene),
|
|
&frameResources.mainScene);
|
|
EXPECT_EQ(
|
|
ResolveCameraFrameRenderGraphStageSurfaceResources(
|
|
frameResources,
|
|
CameraFrameStage::PostProcess),
|
|
&frameResources.postProcess);
|
|
EXPECT_EQ(
|
|
ResolveCameraFrameRenderGraphStageSurfaceResources(
|
|
frameResources,
|
|
CameraFrameStage::ObjectId),
|
|
&frameResources.objectId);
|
|
EXPECT_EQ(
|
|
ResolveCameraFrameRenderGraphStageSurfaceResources(
|
|
frameResources,
|
|
CameraFrameStage::FinalOutput),
|
|
nullptr);
|
|
|
|
WriteCameraFrameRenderGraphStageSurfaceResources(
|
|
frameResources,
|
|
CameraFrameStage::PostProcess,
|
|
RenderGraphTextureHandle{ 23u },
|
|
RenderGraphTextureHandle{ 29u });
|
|
WriteCameraFrameRenderGraphStageSurfaceResources(
|
|
frameResources,
|
|
CameraFrameStage::FinalOutput,
|
|
RenderGraphTextureHandle{ 31u },
|
|
RenderGraphTextureHandle{ 37u });
|
|
|
|
EXPECT_EQ(frameResources.postProcess.color.index, 23u);
|
|
EXPECT_EQ(frameResources.postProcess.depth.index, 29u);
|
|
EXPECT_FALSE(frameResources.mainScene.color.IsValid());
|
|
EXPECT_FALSE(frameResources.objectId.color.IsValid());
|
|
}
|