Formalize final color policy resolution
This commit is contained in:
@@ -2,8 +2,6 @@
|
||||
|
||||
#include <XCEngine/Components/CameraComponent.h>
|
||||
#include <XCEngine/Components/LightComponent.h>
|
||||
#include <XCEngine/Resources/BuiltinResources.h>
|
||||
|
||||
#include <sstream>
|
||||
|
||||
using namespace XCEngine::Components;
|
||||
@@ -33,6 +31,7 @@ TEST(CameraComponent_Test, DefaultValues) {
|
||||
EXPECT_FLOAT_EQ(camera.GetSkyboxHorizonColor().g, 0.84f);
|
||||
EXPECT_FLOAT_EQ(camera.GetSkyboxBottomColor().b, 0.95f);
|
||||
EXPECT_TRUE(camera.GetPostProcessPasses().empty());
|
||||
EXPECT_FALSE(camera.GetFinalColorOverrides().HasOverrides());
|
||||
EXPECT_FALSE(camera.IsColorScalePostProcessEnabled());
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessScale().x, 1.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetColorScalePostProcessScale().y, 1.0f);
|
||||
@@ -72,10 +71,20 @@ TEST(CameraComponent_Test, SerializeRoundTripPreservesViewportAndClearState) {
|
||||
source.SetCullingMask(0x0000000Fu);
|
||||
source.SetViewportRect(XCEngine::Math::Rect(0.25f, 0.125f, 0.5f, 0.625f));
|
||||
source.SetSkyboxEnabled(true);
|
||||
source.SetSkyboxMaterialPath(XCEngine::Resources::GetBuiltinDefaultPrimitiveMaterialPath().CStr());
|
||||
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));
|
||||
XCEngine::Rendering::FinalColorOverrideSettings finalColorOverrides = {};
|
||||
finalColorOverrides.overrideOutputTransferMode = true;
|
||||
finalColorOverrides.outputTransferMode =
|
||||
XCEngine::Rendering::FinalColorOutputTransferMode::LinearToSRGB;
|
||||
finalColorOverrides.overrideExposureMode = true;
|
||||
finalColorOverrides.exposureMode = XCEngine::Rendering::FinalColorExposureMode::Fixed;
|
||||
finalColorOverrides.overrideExposureValue = true;
|
||||
finalColorOverrides.exposureValue = 1.35f;
|
||||
finalColorOverrides.overrideFinalColorScale = true;
|
||||
finalColorOverrides.finalColorScale = XCEngine::Math::Vector4(1.0f, 0.9f, 0.8f, 1.0f);
|
||||
source.SetFinalColorOverrides(finalColorOverrides);
|
||||
source.SetPostProcessPasses({
|
||||
XCEngine::Rendering::CameraPostProcessPassDesc::MakeColorScale(
|
||||
XCEngine::Math::Vector4(0.55f, 0.8f, 1.2f, 1.0f)),
|
||||
@@ -97,10 +106,22 @@ TEST(CameraComponent_Test, SerializeRoundTripPreservesViewportAndClearState) {
|
||||
EXPECT_FLOAT_EQ(target.GetViewportRect().width, 0.5f);
|
||||
EXPECT_FLOAT_EQ(target.GetViewportRect().height, 0.625f);
|
||||
EXPECT_TRUE(target.IsSkyboxEnabled());
|
||||
EXPECT_EQ(target.GetSkyboxMaterialPath(), XCEngine::Resources::GetBuiltinDefaultPrimitiveMaterialPath().CStr());
|
||||
EXPECT_TRUE(target.GetSkyboxMaterialPath().empty());
|
||||
EXPECT_FLOAT_EQ(target.GetSkyboxTopColor().b, 0.64f);
|
||||
EXPECT_FLOAT_EQ(target.GetSkyboxHorizonColor().g, 0.76f);
|
||||
EXPECT_FLOAT_EQ(target.GetSkyboxBottomColor().r, 0.92f);
|
||||
EXPECT_TRUE(target.GetFinalColorOverrides().overrideOutputTransferMode);
|
||||
EXPECT_EQ(
|
||||
target.GetFinalColorOverrides().outputTransferMode,
|
||||
XCEngine::Rendering::FinalColorOutputTransferMode::LinearToSRGB);
|
||||
EXPECT_TRUE(target.GetFinalColorOverrides().overrideExposureMode);
|
||||
EXPECT_EQ(
|
||||
target.GetFinalColorOverrides().exposureMode,
|
||||
XCEngine::Rendering::FinalColorExposureMode::Fixed);
|
||||
EXPECT_TRUE(target.GetFinalColorOverrides().overrideExposureValue);
|
||||
EXPECT_FLOAT_EQ(target.GetFinalColorOverrides().exposureValue, 1.35f);
|
||||
EXPECT_TRUE(target.GetFinalColorOverrides().overrideFinalColorScale);
|
||||
EXPECT_FLOAT_EQ(target.GetFinalColorOverrides().finalColorScale.y, 0.9f);
|
||||
ASSERT_EQ(target.GetPostProcessPasses().size(), 2u);
|
||||
EXPECT_EQ(
|
||||
target.GetPostProcessPasses()[0].type,
|
||||
|
||||
Reference in New Issue
Block a user