ASSERT_FALSE(surfaceProperties2.chromaKeyEnabled);
}
-TEST_F(IlmCommandTest, ilm_getPropertiesOfLayer_ilm_layerSetSourceRectangle_ilm_layerSetDestinationRectangle) {
+TEST_F(IlmCommandTest, ilm_getPropertiesOfLayer_ilm_layerSetSourceRectangle_ilm_layerSetDestinationRectangle_ilm_layerSetChromaKey) {
t_ilm_uint layer;
+ t_ilm_int chromaKey[3] = {3, 22, 111};
ilm_layerCreate(&layer);
ilm_commitChanges();
ilm_layerSetDestinationRectangle(layer,54,47,947,9);
ilm_layerSetOrientation(layer,ILM_NINETY);
ilm_layerSetVisibility(layer,true);
+ ilm_layerSetChromaKey(layer,chromaKey);
ilm_commitChanges();
ilmLayerProperties layerProperties1;
ASSERT_EQ(9u, layerProperties1.destHeight);
ASSERT_EQ(ILM_NINETY, layerProperties1.orientation);
ASSERT_TRUE( layerProperties1.visibility);
+ ASSERT_TRUE(layerProperties1.chromaKeyEnabled);
+ ASSERT_EQ(3u, layerProperties1.chromaKeyRed);
+ ASSERT_EQ(22u, layerProperties1.chromaKeyGreen);
+ ASSERT_EQ(111u, layerProperties1.chromaKeyBlue);
ilm_layerSetOpacity(layer,0.436);
ilm_layerSetSourceRectangle(layer,784,546,235,78);
ilm_layerSetDestinationRectangle(layer,536,5372,3,4316);
ilm_layerSetOrientation(layer,ILM_TWOHUNDREDSEVENTY);
ilm_layerSetVisibility(layer,false);
+ ilm_layerSetChromaKey(layer,NULL);
ilm_commitChanges();
ilmLayerProperties layerProperties2;
ASSERT_EQ(4316u, layerProperties2.destHeight);
ASSERT_EQ(ILM_TWOHUNDREDSEVENTY, layerProperties2.orientation);
ASSERT_FALSE(layerProperties2.visibility);
+ ASSERT_FALSE(layerProperties2.chromaKeyEnabled);
}
TEST_F(IlmCommandTest, ilm_takeScreenshot) {
unsigned int expectedOpacity = 0.7;
unsigned int expectedVisibility = 1;
unsigned int expectedId = 411;
+ unsigned int expectedChromaKeyEnabled = 0;
+ unsigned char expectedChromaKeyRed = 0;
+ unsigned char expectedChromaKeyGreen = 0;
+ unsigned char expectedChromaKeyBlue = 0;
+ unsigned char chromaKeyRed = 3;
+ unsigned char chromaKeyGreen = 22;
+ unsigned char chromaKeyBlue = 111;
/// Create graphical object of type layer without specific id
GraphicalObject layer(expectedId, TypeLayer, expectedOpacity, expectedVisibility);
/// make sure, layer has expected visibility
EXPECT_EQ(expectedVisibility, layer.getVisibility());
+
+ /// make sure, layer has expected chromaKeyEnabled
+ EXPECT_EQ(expectedChromaKeyEnabled, layer.getChromaKeyEnabled());
+
+ /// make sure, layer has expected chromaKey
+ layer.getChromaKey(chromaKeyRed, chromaKeyGreen, chromaKeyBlue);
+ EXPECT_EQ(expectedChromaKeyRed, chromaKeyRed);
+ EXPECT_EQ(expectedChromaKeyGreen, chromaKeyGreen);
+ EXPECT_EQ(expectedChromaKeyBlue, chromaKeyBlue);
}
TEST_F(GraphicalObjectTest, constructor_SurfaceWithId)
EXPECT_EQ(expectedChromaKeyBlue, chromaKeyBlue);
}
+TEST_F(GraphicalObjectTest, setChromaKeyEnabled_Layer)
+{
+ /// set layer to enable chromakey
+ m_pLayer->setChromaKeyEnabled(true);
+
+ /// make sure, layer has expected chromakey enabled
+ EXPECT_TRUE(m_pLayer->getChromaKeyEnabled());
+
+ /// set layer to disable chromakey
+ m_pLayer->setChromaKeyEnabled(false);
+
+ /// make sure, layer has expected
+ EXPECT_FALSE(m_pLayer->getChromaKeyEnabled());
+}
+
+TEST_F(GraphicalObjectTest, getChromaKeyEnabled_Layer)
+{
+ /// set layer to enable chromakey
+ m_pLayer->setChromaKeyEnabled(true);
+
+ /// make sure, layer has expected chromakey enabled
+ EXPECT_TRUE(m_pLayer->getChromaKeyEnabled());
+
+ /// set layer to disable chromakey
+ m_pLayer->setChromaKeyEnabled(false);
+
+ /// make sure, layer has expected chromakey enabled
+ EXPECT_FALSE(m_pLayer->getChromaKeyEnabled());
+}
+
+TEST_F(GraphicalObjectTest, setChromaKey_Layer)
+{
+ unsigned char expectedChromaKeyRed = 3;
+ unsigned char expectedChromaKeyGreen = 22;
+ unsigned char expectedChromaKeyBlue = 111;
+ unsigned char chromaKeyRed = 0xFF;
+ unsigned char chromaKeyGreen = 0xFF;
+ unsigned char chromaKeyBlue = 0xFF;
+
+ /// make sure, layer has default chromakey
+ m_pLayer->getChromaKey(chromaKeyRed, chromaKeyGreen, chromaKeyBlue);
+ EXPECT_EQ(0, chromaKeyRed);
+ EXPECT_EQ(0, chromaKeyGreen);
+ EXPECT_EQ(0, chromaKeyBlue);
+
+ /// set chromakey of layer to expected value
+ m_pLayer->setChromaKey(expectedChromaKeyRed,
+ expectedChromaKeyGreen,
+ expectedChromaKeyBlue);
+
+ /// make sure, layer has expected chromakey
+ m_pLayer->getChromaKey(chromaKeyRed, chromaKeyGreen, chromaKeyBlue);
+ EXPECT_EQ(expectedChromaKeyRed, chromaKeyRed);
+ EXPECT_EQ(expectedChromaKeyGreen, chromaKeyGreen);
+ EXPECT_EQ(expectedChromaKeyBlue, chromaKeyBlue);
+}
+
+TEST_F(GraphicalObjectTest, getChromaKey_Layer)
+{
+ unsigned char expectedChromaKeyRed = 3;
+ unsigned char expectedChromaKeyGreen = 22;
+ unsigned char expectedChromaKeyBlue = 111;
+ unsigned char chromaKeyRed = 0xFF;
+ unsigned char chromaKeyGreen = 0xFF;
+ unsigned char chromaKeyBlue = 0xFF;
+
+ /// make sure, layer has default chromakey
+ m_pLayer->getChromaKey(chromaKeyRed, chromaKeyGreen, chromaKeyBlue);
+ EXPECT_EQ(0, chromaKeyRed);
+ EXPECT_EQ(0, chromaKeyGreen);
+ EXPECT_EQ(0, chromaKeyBlue);
+
+ /// set chromakey of layer to expected value
+ m_pLayer->setChromaKey(expectedChromaKeyRed,
+ expectedChromaKeyGreen,
+ expectedChromaKeyBlue);
+
+ /// make sure, layer has expected chromakey
+ m_pLayer->getChromaKey(chromaKeyRed, chromaKeyGreen, chromaKeyBlue);
+ EXPECT_EQ(expectedChromaKeyRed, chromaKeyRed);
+ EXPECT_EQ(expectedChromaKeyGreen, chromaKeyGreen);
+ EXPECT_EQ(expectedChromaKeyBlue, chromaKeyBlue);
+}
+
TEST_F(GraphicalObjectTest, DISABLED_setShader)
{
// TODO: requires Shader object and shader code in files