engine: sync editor rendering and ui changes

This commit is contained in:
2026-04-08 16:09:15 +08:00
parent 31756847ab
commit 162f1cc12e
153 changed files with 4454 additions and 2990 deletions

View File

@@ -90,7 +90,6 @@ TEST(Material, DefaultRenderMetadata) {
EXPECT_TRUE(material.GetRenderState().depthTestEnable);
EXPECT_TRUE(material.GetRenderState().depthWriteEnable);
EXPECT_EQ(material.GetRenderState().depthFunc, MaterialComparisonFunc::Less);
EXPECT_TRUE(material.GetLegacyShaderPassHint().Empty());
EXPECT_EQ(material.GetTagCount(), 0u);
}
@@ -120,6 +119,20 @@ TEST(Material, SetGetRenderState) {
renderState.depthWriteEnable = false;
renderState.depthFunc = MaterialComparisonFunc::LessEqual;
renderState.colorWriteMask = 0x7;
renderState.depthBiasFactor = 1.5f;
renderState.depthBiasUnits = 2;
renderState.stencil.enabled = true;
renderState.stencil.reference = 3;
renderState.stencil.readMask = 0x0F;
renderState.stencil.writeMask = 0xF0;
renderState.stencil.front.func = MaterialComparisonFunc::Equal;
renderState.stencil.front.passOp = MaterialStencilOp::Replace;
renderState.stencil.front.failOp = MaterialStencilOp::Keep;
renderState.stencil.front.depthFailOp = MaterialStencilOp::IncrSat;
renderState.stencil.back.func = MaterialComparisonFunc::NotEqual;
renderState.stencil.back.passOp = MaterialStencilOp::DecrWrap;
renderState.stencil.back.failOp = MaterialStencilOp::Invert;
renderState.stencil.back.depthFailOp = MaterialStencilOp::Zero;
material.SetRenderState(renderState);
@@ -136,18 +149,19 @@ TEST(Material, SetGetRenderState) {
EXPECT_FALSE(result.depthWriteEnable);
EXPECT_EQ(result.depthFunc, MaterialComparisonFunc::LessEqual);
EXPECT_EQ(result.colorWriteMask, 0x7);
}
TEST(Material, SetGetLegacyShaderPassHint) {
Material material;
material.SetLegacyShaderPassHint("ForwardLit");
EXPECT_TRUE(material.HasLegacyShaderPassHint());
EXPECT_EQ(material.GetLegacyShaderPassHint(), "ForwardLit");
material.ClearLegacyShaderPassHint();
EXPECT_FALSE(material.HasLegacyShaderPassHint());
EXPECT_TRUE(material.GetLegacyShaderPassHint().Empty());
EXPECT_FLOAT_EQ(result.depthBiasFactor, 1.5f);
EXPECT_EQ(result.depthBiasUnits, 2);
EXPECT_TRUE(result.stencil.enabled);
EXPECT_EQ(result.stencil.reference, 3u);
EXPECT_EQ(result.stencil.readMask, 0x0Fu);
EXPECT_EQ(result.stencil.writeMask, 0xF0u);
EXPECT_EQ(result.stencil.front.func, MaterialComparisonFunc::Equal);
EXPECT_EQ(result.stencil.front.passOp, MaterialStencilOp::Replace);
EXPECT_EQ(result.stencil.front.depthFailOp, MaterialStencilOp::IncrSat);
EXPECT_EQ(result.stencil.back.func, MaterialComparisonFunc::NotEqual);
EXPECT_EQ(result.stencil.back.passOp, MaterialStencilOp::DecrWrap);
EXPECT_EQ(result.stencil.back.failOp, MaterialStencilOp::Invert);
EXPECT_EQ(result.stencil.back.depthFailOp, MaterialStencilOp::Zero);
}
TEST(Material, SetGetTags) {