feat: add camera viewport rect render areas
This commit is contained in:
@@ -20,6 +20,10 @@ TEST(CameraComponent_Test, DefaultValues) {
|
||||
EXPECT_TRUE(camera.IsPrimary());
|
||||
EXPECT_EQ(camera.GetClearMode(), CameraClearMode::Auto);
|
||||
EXPECT_EQ(camera.GetCullingMask(), 0xFFFFFFFFu);
|
||||
EXPECT_FLOAT_EQ(camera.GetViewportRect().x, 0.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetViewportRect().y, 0.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetViewportRect().width, 1.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetViewportRect().height, 1.0f);
|
||||
}
|
||||
|
||||
TEST(CameraComponent_Test, SetterClamping) {
|
||||
@@ -36,10 +40,21 @@ TEST(CameraComponent_Test, SetterClamping) {
|
||||
EXPECT_GT(camera.GetFarClipPlane(), camera.GetNearClipPlane());
|
||||
}
|
||||
|
||||
TEST(CameraComponent_Test, SerializeRoundTripPreservesClearMode) {
|
||||
TEST(CameraComponent_Test, ViewportRectIsClampedToNormalizedSurfaceRange) {
|
||||
CameraComponent camera;
|
||||
camera.SetViewportRect(XCEngine::Math::Rect(-0.25f, 0.2f, 1.5f, 1.1f));
|
||||
|
||||
EXPECT_FLOAT_EQ(camera.GetViewportRect().x, 0.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetViewportRect().y, 0.2f);
|
||||
EXPECT_FLOAT_EQ(camera.GetViewportRect().width, 1.0f);
|
||||
EXPECT_FLOAT_EQ(camera.GetViewportRect().height, 0.8f);
|
||||
}
|
||||
|
||||
TEST(CameraComponent_Test, SerializeRoundTripPreservesViewportAndClearState) {
|
||||
CameraComponent source;
|
||||
source.SetClearMode(CameraClearMode::DepthOnly);
|
||||
source.SetCullingMask(0x0000000Fu);
|
||||
source.SetViewportRect(XCEngine::Math::Rect(0.25f, 0.125f, 0.5f, 0.625f));
|
||||
|
||||
std::stringstream stream;
|
||||
source.Serialize(stream);
|
||||
@@ -49,6 +64,10 @@ TEST(CameraComponent_Test, SerializeRoundTripPreservesClearMode) {
|
||||
|
||||
EXPECT_EQ(target.GetClearMode(), CameraClearMode::DepthOnly);
|
||||
EXPECT_EQ(target.GetCullingMask(), 0x0000000Fu);
|
||||
EXPECT_FLOAT_EQ(target.GetViewportRect().x, 0.25f);
|
||||
EXPECT_FLOAT_EQ(target.GetViewportRect().y, 0.125f);
|
||||
EXPECT_FLOAT_EQ(target.GetViewportRect().width, 0.5f);
|
||||
EXPECT_FLOAT_EQ(target.GetViewportRect().height, 0.625f);
|
||||
}
|
||||
|
||||
TEST(LightComponent_Test, DefaultValues) {
|
||||
|
||||
Reference in New Issue
Block a user