Support camera-config color-scale pass stacks
This commit is contained in:
@@ -37,6 +37,7 @@ TEST(CameraComponent_Test, DefaultValues) {
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessScale().y, 1.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessScale().z, 1.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessScale().w, 1.0f);
|
||||
EXPECT_TRUE(camera.GetColorScalePostProcessPasses().empty());
|
||||
}
|
||||
|
||||
TEST(CameraComponent_Test, SetterClamping) {
|
||||
@@ -74,8 +75,10 @@ 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.SetColorScalePostProcessEnabled(true);
|
||||
source.SetColorScalePostProcessScale(XCEngine::Math::Vector4(0.55f, 0.8f, 1.2f, 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)
|
||||
});
|
||||
|
||||
std::stringstream stream;
|
||||
source.Serialize(stream);
|
||||
@@ -100,6 +103,34 @@ TEST(CameraComponent_Test, SerializeRoundTripPreservesViewportAndClearState) {
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessScale().y, 0.8f);
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessScale().z, 1.2f);
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessScale().w, 1.0f);
|
||||
ASSERT_EQ(target.GetColorScalePostProcessPasses().size(), 2u);
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessPasses()[1].x, 1.0f);
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessPasses()[1].y, 0.95f);
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessPasses()[1].z, 0.75f);
|
||||
EXPECT_FLOAT_EQ(target.GetColorScalePostProcessPasses()[1].w, 1.0f);
|
||||
}
|
||||
|
||||
TEST(CameraComponent_Test, LegacyColorScaleAccessorsDriveFirstPass) {
|
||||
CameraComponent camera;
|
||||
|
||||
camera.SetColorScalePostProcessScale(XCEngine::Math::Vector4(0.55f, 0.8f, 1.2f, 1.0f));
|
||||
EXPECT_FALSE(camera.IsColorScalePostProcessEnabled());
|
||||
|
||||
camera.SetColorScalePostProcessEnabled(true);
|
||||
ASSERT_EQ(camera.GetColorScalePostProcessPasses().size(), 1u);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[0].x, 0.55f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[0].y, 0.8f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[0].z, 1.2f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[0].w, 1.0f);
|
||||
|
||||
camera.AddColorScalePostProcessPass(XCEngine::Math::Vector4(1.0f, 0.95f, 0.75f, 1.0f));
|
||||
camera.SetColorScalePostProcessScale(XCEngine::Math::Vector4(0.6f, 0.7f, 1.1f, 1.0f));
|
||||
|
||||
ASSERT_EQ(camera.GetColorScalePostProcessPasses().size(), 2u);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[0].x, 0.6f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[0].y, 0.7f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[0].z, 1.1f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessPasses()[1].y, 0.95f);
|
||||
}
|
||||
|
||||
TEST(LightComponent_Test, DefaultValues) {
|
||||
|
||||
Reference in New Issue
Block a user