Formalize camera post-process descriptors
This commit is contained in:
@@ -32,6 +32,7 @@ TEST(CameraComponent_Test, DefaultValues) {
|
||||
EXPECT_FLOAT_EQ(camera.GetSkyboxTopColor().r, 0.18f);
|
||||
EXPECT_FLOAT_EQ(camera.GetSkyboxHorizonColor().g, 0.84f);
|
||||
EXPECT_FLOAT_EQ(camera.GetSkyboxBottomColor().b, 0.95f);
|
||||
EXPECT_TRUE(camera.GetPostProcessPasses().empty());
|
||||
EXPECT_FALSE(camera.IsColorScalePostProcessEnabled());
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessScale().x, 1.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessScale().y, 1.0f);
|
||||
@@ -75,9 +76,11 @@ TEST(CameraComponent_Test, SerializeRoundTripPreservesViewportAndClearState) {
|
||||
source.SetSkyboxTopColor(XCEngine::Math::Color(0.12f, 0.21f, 0.64f, 1.0f));
|
||||
source.SetSkyboxHorizonColor(XCEngine::Math::Color(0.71f, 0.76f, 0.88f, 1.0f));
|
||||
source.SetSkyboxBottomColor(XCEngine::Math::Color(0.92f, 0.82f, 0.58f, 1.0f));
|
||||
source.SetColorScalePostProcessPasses({
|
||||
XCEngine::Math::Vector4(0.55f, 0.8f, 1.2f, 1.0f),
|
||||
XCEngine::Math::Vector4(1.0f, 0.95f, 0.75f, 1.0f)
|
||||
source.SetPostProcessPasses({
|
||||
XCEngine::Rendering::CameraPostProcessPassDesc::MakeColorScale(
|
||||
XCEngine::Math::Vector4(0.55f, 0.8f, 1.2f, 1.0f)),
|
||||
XCEngine::Rendering::CameraPostProcessPassDesc::MakeColorScale(
|
||||
XCEngine::Math::Vector4(1.0f, 0.95f, 0.75f, 1.0f))
|
||||
});
|
||||
|
||||
std::stringstream stream;
|
||||
@@ -98,6 +101,13 @@ TEST(CameraComponent_Test, SerializeRoundTripPreservesViewportAndClearState) {
|
||||
EXPECT_FLOAT_EQ(target.GetSkyboxTopColor().b, 0.64f);
|
||||
EXPECT_FLOAT_EQ(target.GetSkyboxHorizonColor().g, 0.76f);
|
||||
EXPECT_FLOAT_EQ(target.GetSkyboxBottomColor().r, 0.92f);
|
||||
ASSERT_EQ(target.GetPostProcessPasses().size(), 2u);
|
||||
EXPECT_EQ(
|
||||
target.GetPostProcessPasses()[0].type,
|
||||
XCEngine::Rendering::CameraPostProcessPassType::ColorScale);
|
||||
EXPECT_EQ(
|
||||
target.GetPostProcessPasses()[1].type,
|
||||
XCEngine::Rendering::CameraPostProcessPassType::ColorScale);
|
||||
EXPECT_TRUE(target.IsColorScalePostProcessEnabled());
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessScale().x, 0.55f);
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessScale().y, 0.8f);
|
||||
@@ -110,6 +120,27 @@ TEST(CameraComponent_Test, SerializeRoundTripPreservesViewportAndClearState) {
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessPasses()[1].w, 1.0f);
|
||||
}
|
||||
|
||||
TEST(CameraComponent_Test, DeserializeLegacyColorScalePostProcessFields) {
|
||||
std::stringstream stream;
|
||||
stream
|
||||
<< "colorScalePostProcessEnabled=1;"
|
||||
<< "colorScalePostProcessScale=0.55,0.8,1.2,1;"
|
||||
<< "colorScalePostProcessPassCount=2;"
|
||||
<< "colorScalePostProcessPass0=0.55,0.8,1.2,1;"
|
||||
<< "colorScalePostProcessPass1=1,0.95,0.75,1;";
|
||||
|
||||
CameraComponent camera;
|
||||
camera.Deserialize(stream);
|
||||
|
||||
ASSERT_EQ(camera.GetPostProcessPasses().size(), 2u);
|
||||
EXPECT_EQ(
|
||||
camera.GetPostProcessPasses()[0].type,
|
||||
XCEngine::Rendering::CameraPostProcessPassType::ColorScale);
|
||||
EXPECT_TRUE(camera.IsColorScalePostProcessEnabled());
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[0].x, 0.55f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[1].y, 0.95f);
|
||||
}
|
||||
|
||||
TEST(CameraComponent_Test, LegacyColorScaleAccessorsDriveFirstPass) {
|
||||
CameraComponent camera;
|
||||
|
||||
|
||||
@@ -243,9 +243,11 @@ void CameraPostProcessSceneTest::BuildScene() {
|
||||
mCamera->SetNearClipPlane(0.1f);
|
||||
mCamera->SetFarClipPlane(20.0f);
|
||||
mCamera->SetClearColor(XCEngine::Math::Color(0.06f, 0.08f, 0.12f, 1.0f));
|
||||
mCamera->SetColorScalePostProcessPasses({
|
||||
Vector4(1.0f, 0.75f, 0.75f, 1.0f),
|
||||
Vector4(0.55f, 0.95f, 1.0f, 1.0f)
|
||||
mCamera->SetPostProcessPasses({
|
||||
XCEngine::Rendering::CameraPostProcessPassDesc::MakeColorScale(
|
||||
Vector4(1.0f, 0.75f, 0.75f, 1.0f)),
|
||||
XCEngine::Rendering::CameraPostProcessPassDesc::MakeColorScale(
|
||||
Vector4(0.55f, 0.95f, 1.0f, 1.0f))
|
||||
});
|
||||
|
||||
GameObject* quadObject = mScene->CreateGameObject("Quad");
|
||||
|
||||
@@ -1778,9 +1778,11 @@ TEST(SceneRenderer_Test, BuildsCameraColorScalePostProcessRequestFromCameraPassS
|
||||
camera->SetPrimary(true);
|
||||
camera->SetDepth(2.0f);
|
||||
camera->SetViewportRect(XCEngine::Math::Rect(0.25f, 0.125f, 0.5f, 0.625f));
|
||||
camera->SetColorScalePostProcessPasses({
|
||||
XCEngine::Math::Vector4(1.0f, 0.75f, 0.75f, 1.0f),
|
||||
XCEngine::Math::Vector4(0.55f, 0.95f, 1.1f, 1.0f)
|
||||
camera->SetPostProcessPasses({
|
||||
XCEngine::Rendering::CameraPostProcessPassDesc::MakeColorScale(
|
||||
XCEngine::Math::Vector4(1.0f, 0.75f, 0.75f, 1.0f)),
|
||||
XCEngine::Rendering::CameraPostProcessPassDesc::MakeColorScale(
|
||||
XCEngine::Math::Vector4(0.55f, 0.95f, 1.1f, 1.0f))
|
||||
});
|
||||
|
||||
auto allocationState = std::make_shared<MockShadowAllocationState>();
|
||||
|
||||
Reference in New Issue
Block a user