Add material render metadata and loader parsing
This commit is contained in:
@@ -34,6 +34,76 @@ TEST(Material, SetGetShader) {
|
||||
EXPECT_EQ(material.GetShader(), shader);
|
||||
}
|
||||
|
||||
TEST(Material, DefaultRenderMetadata) {
|
||||
Material material;
|
||||
EXPECT_EQ(material.GetRenderQueue(), static_cast<XCEngine::Core::int32>(MaterialRenderQueue::Geometry));
|
||||
EXPECT_TRUE(material.GetShaderPass().Empty());
|
||||
EXPECT_EQ(material.GetTagCount(), 0u);
|
||||
}
|
||||
|
||||
TEST(Material, SetGetRenderQueue) {
|
||||
Material material;
|
||||
|
||||
material.SetRenderQueue(MaterialRenderQueue::Transparent);
|
||||
EXPECT_EQ(material.GetRenderQueue(), static_cast<XCEngine::Core::int32>(MaterialRenderQueue::Transparent));
|
||||
|
||||
material.SetRenderQueue(2600);
|
||||
EXPECT_EQ(material.GetRenderQueue(), 2600);
|
||||
}
|
||||
|
||||
TEST(Material, SetGetShaderPass) {
|
||||
Material material;
|
||||
|
||||
material.SetShaderPass("ForwardLit");
|
||||
EXPECT_EQ(material.GetShaderPass(), "ForwardLit");
|
||||
}
|
||||
|
||||
TEST(Material, SetGetTags) {
|
||||
Material material;
|
||||
|
||||
material.SetTag("LightMode", "ForwardBase");
|
||||
material.SetTag("RenderType", "Opaque");
|
||||
|
||||
EXPECT_TRUE(material.HasTag("LightMode"));
|
||||
EXPECT_EQ(material.GetTag("LightMode"), "ForwardBase");
|
||||
EXPECT_EQ(material.GetTag("RenderType"), "Opaque");
|
||||
EXPECT_EQ(material.GetTagCount(), 2u);
|
||||
}
|
||||
|
||||
TEST(Material, SetTagReplacesExistingValue) {
|
||||
Material material;
|
||||
|
||||
material.SetTag("LightMode", "ForwardBase");
|
||||
material.SetTag("LightMode", "ShadowCaster");
|
||||
|
||||
EXPECT_EQ(material.GetTagCount(), 1u);
|
||||
EXPECT_EQ(material.GetTag("LightMode"), "ShadowCaster");
|
||||
}
|
||||
|
||||
TEST(Material, RemoveTag) {
|
||||
Material material;
|
||||
|
||||
material.SetTag("LightMode", "ForwardBase");
|
||||
EXPECT_TRUE(material.HasTag("LightMode"));
|
||||
|
||||
material.RemoveTag("LightMode");
|
||||
EXPECT_FALSE(material.HasTag("LightMode"));
|
||||
EXPECT_TRUE(material.GetTag("LightMode").Empty());
|
||||
}
|
||||
|
||||
TEST(Material, ClearTags) {
|
||||
Material material;
|
||||
|
||||
material.SetTag("LightMode", "ForwardBase");
|
||||
material.SetTag("RenderType", "Opaque");
|
||||
ASSERT_EQ(material.GetTagCount(), 2u);
|
||||
|
||||
material.ClearTags();
|
||||
EXPECT_EQ(material.GetTagCount(), 0u);
|
||||
EXPECT_FALSE(material.HasTag("LightMode"));
|
||||
EXPECT_FALSE(material.HasTag("RenderType"));
|
||||
}
|
||||
|
||||
TEST(Material, SetGetFloat) {
|
||||
Material material;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user