X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-Visual.cpp;h=c329ccc377c8dacf8b6f5f8cf11896d2d3c01704;hb=e35b08ebd60473aef7500601706f665ac8cf7d39;hp=ef801bb53f9708b73b798ea10a4e758887530d18;hpb=901499a7ec86ca342c4e0fdec62a6e4eeeee5c5f;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp index ef801bb..c329ccc 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp @@ -188,10 +188,17 @@ int UtcDaliVisualSize(void) // DALI_TEST_EQUALS( naturalSize, Vector2(100.f, 100.f), TEST_LOCATION ); + // svg visual with a size + Visual::Base svgVisual2 = factory.CreateVisual( TEST_SVG_FILE_NAME, ImageDimensions(200, 200) ); + DALI_TEST_EQUALS( svgVisual2.GetSize(), Vector2( 200.f, 200.f ), TEST_LOCATION ); + svgVisual2.GetNaturalSize(naturalSize); + DALI_TEST_EQUALS( naturalSize, Vector2(100.f, 100.f), TEST_LOCATION ); // Natural size should still be 100, 100 + // Batch Image visual propertyMap.Clear(); - propertyMap.Insert( Visual::Property::TYPE, Visual::BATCH_IMAGE ); - propertyMap.Insert( BatchImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + propertyMap.Insert( ImageVisual::Property::BATCHING_ENABLED, true ); Visual::Base batchImageVisual = factory.CreateVisual( propertyMap ); batchImageVisual.SetSize( visualSize ); DALI_TEST_EQUALS( batchImageVisual.GetSize(), visualSize, TEST_LOCATION ); @@ -307,6 +314,10 @@ int UtcDaliVisualGetPropertyMap1(void) DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == Color::CYAN ); + // Test the properties. TODO: to be completed. + colorVisual.SetProperty( ColorVisual::Property::MIX_COLOR, Color::RED ); + Property::Value value = colorVisual.GetProperty( ColorVisual::Property::MIX_COLOR ); + END_TEST; } @@ -357,6 +368,10 @@ int UtcDaliVisualGetPropertyMap2(void) DALI_TEST_CHECK( colorValue ); DALI_TEST_CHECK( colorValue->Get() == 10.f ); + // Test the properties. TODO: to be completed. + borderVisual.SetProperty( BorderVisual::Property::COLOR, Color::RED ); + Property::Value value = borderVisual.GetProperty( BorderVisual::Property::COLOR ); + END_TEST; } @@ -424,6 +439,10 @@ int UtcDaliVisualGetPropertyMap3(void) DALI_TEST_EQUALS( colorArray->GetElementAt(0).Get(), Color::RED , Math::MACHINE_EPSILON_100, TEST_LOCATION ); DALI_TEST_EQUALS( colorArray->GetElementAt(1).Get(), Color::GREEN , Math::MACHINE_EPSILON_100, TEST_LOCATION ); + // Test the properties. TODO: to be completed. + gradientVisual.SetProperty( GradientVisual::Property::STOP_COLOR, Color::RED ); + Property::Value gradientValue = gradientVisual.GetProperty( GradientVisual::Property::STOP_COLOR ); + END_TEST; } @@ -511,6 +530,9 @@ int UtcDaliVisualGetPropertyMap5(void) propertyMap.Insert( ImageVisual::Property::DESIRED_HEIGHT, 30 ); propertyMap.Insert( ImageVisual::Property::FITTING_MODE, FittingMode::FIT_HEIGHT ); propertyMap.Insert( ImageVisual::Property::SAMPLING_MODE, SamplingMode::BOX_THEN_NEAREST ); + propertyMap.Insert( ImageVisual::Property::PIXEL_AREA, Vector4( 0.25f, 0.25f, 0.5f, 0.5f ) ); + propertyMap.Insert( ImageVisual::Property::WRAP_MODE_U, WrapMode::REPEAT ); + propertyMap.Insert( ImageVisual::Property::WRAP_MODE_V, WrapMode::MIRRORED_REPEAT ); propertyMap.Insert( "synchronousLoading", true ); Visual::Base imageVisual = factory.CreateVisual(propertyMap); @@ -544,6 +566,18 @@ int UtcDaliVisualGetPropertyMap5(void) DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == 30 ); + value = resultMap.Find( ImageVisual::Property::PIXEL_AREA, Property::VECTOR4 ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), Vector4( 0.25f, 0.25f, 0.5f, 0.5f ), Math::MACHINE_EPSILON_100, TEST_LOCATION ); + + value = resultMap.Find( ImageVisual::Property::WRAP_MODE_U, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == WrapMode::REPEAT); + + value = resultMap.Find( ImageVisual::Property::WRAP_MODE_V, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == WrapMode::MIRRORED_REPEAT); + value = resultMap.Find( "synchronousLoading", Property::BOOLEAN ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == true ); @@ -577,10 +611,26 @@ int UtcDaliVisualGetPropertyMap5(void) DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == 200 ); + value = resultMap.Find( ImageVisual::Property::PIXEL_AREA, Property::VECTOR4 ); + DALI_TEST_CHECK( value ); + DALI_TEST_EQUALS( value->Get(), Vector4( 0.f, 0.f, 1.f, 1.f ), Math::MACHINE_EPSILON_100, TEST_LOCATION ); + + value = resultMap.Find( ImageVisual::Property::WRAP_MODE_U, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == WrapMode::DEFAULT); + + value = resultMap.Find( ImageVisual::Property::WRAP_MODE_V, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == WrapMode::DEFAULT); + value = resultMap.Find( "synchronousLoading", Property::BOOLEAN ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == false ); + // Test the properties. TODO: to be completed. + imageVisual.SetProperty( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + Property::Value imageValue = imageVisual.GetProperty( ImageVisual::Property::URL ); + END_TEST; } @@ -612,6 +662,10 @@ int UtcDaliVisualGetPropertyMap6(void) DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() ); + // Test the properties. TODO: to be completed. + nPatchVisual.SetProperty( ImageVisual::Property::URL, TEST_NPATCH_FILE_NAME ); + Property::Value nPatchValue = nPatchVisual.GetProperty( ImageVisual::Property::URL ); + END_TEST; } @@ -624,7 +678,7 @@ int UtcDaliVisualGetPropertyMap7(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); - propertyMap.Insert( ImageVisual::Property::URL, TEST_SVG_FILE_NAME ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_SVG_FILE_NAME ); Visual::Base svgVisual = factory.CreateVisual( propertyMap ); Property::Map resultMap; @@ -651,6 +705,10 @@ int UtcDaliVisualGetPropertyMap7(void) DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == TEST_SVG_FILE_NAME ); + // Test the properties. TODO: to be completed. + svgVisual.SetProperty( ImageVisual::Property::URL, TEST_SVG_FILE_NAME ); + Property::Value svgValue = svgVisual.GetProperty( ImageVisual::Property::URL ); + END_TEST; } @@ -699,6 +757,10 @@ int UtcDaliVisualGetPropertyMap8(void) DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), Vector3( 5.0f, 10.0f, 15.0f), Math::MACHINE_EPSILON_100, TEST_LOCATION ); + // Test the properties. TODO: to be completed. + meshVisual.SetProperty( MeshVisual::Property::OBJECT_URL, TEST_OBJ_FILE_NAME ); + Property::Value meshValue = meshVisual.GetProperty( MeshVisual::Property::OBJECT_URL ); + END_TEST; } @@ -716,7 +778,7 @@ int UtcDaliVisualGetPropertyMap9(void) Property::Map propertyMap; propertyMap.Insert( Visual::Property::TYPE, Visual::PRIMITIVE ); propertyMap.Insert( PrimitiveVisual::Property::SHAPE, PrimitiveVisual::Shape::CUBE ); - propertyMap.Insert( PrimitiveVisual::Property::COLOR, color ); + propertyMap.Insert( PrimitiveVisual::Property::MIX_COLOR, color ); propertyMap.Insert( PrimitiveVisual::Property::SLICES, 10 ); propertyMap.Insert( PrimitiveVisual::Property::STACKS, 20 ); propertyMap.Insert( PrimitiveVisual::Property::SCALE_TOP_RADIUS, 30.0f ); @@ -741,7 +803,7 @@ int UtcDaliVisualGetPropertyMap9(void) DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), (int)PrimitiveVisual::Shape::CUBE, TEST_LOCATION ); - value = resultMap.Find( PrimitiveVisual::Property::COLOR, Property::VECTOR4 ); + value = resultMap.Find( PrimitiveVisual::Property::MIX_COLOR, Property::VECTOR4 ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == color ); DALI_TEST_EQUALS( value->Get(), color, Math::MACHINE_EPSILON_100, TEST_LOCATION ); @@ -786,6 +848,10 @@ int UtcDaliVisualGetPropertyMap9(void) DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), Vector3( 5.0f, 10.0f, 15.0f), Math::MACHINE_EPSILON_100, TEST_LOCATION ); + // Test the properties. TODO: to be completed. + primitiveVisual.SetProperty( PrimitiveVisual::Property::SHAPE, PrimitiveVisual::Shape::CUBE ); + Property::Value primitiveValue = primitiveVisual.GetProperty( PrimitiveVisual::Property::SHAPE ); + END_TEST; } @@ -796,10 +862,11 @@ int UtcDaliVisualGetPropertyMapBatchImageVisual(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert( Visual::Property::TYPE, Visual::BATCH_IMAGE ); - propertyMap.Insert( BatchImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); - propertyMap.Insert( BatchImageVisual::Property::DESIRED_WIDTH, 20 ); - propertyMap.Insert( BatchImageVisual::Property::DESIRED_HEIGHT, 30 ); + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::BATCHING_ENABLED, true ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + propertyMap.Insert( ImageVisual::Property::DESIRED_WIDTH, 20 ); + propertyMap.Insert( ImageVisual::Property::DESIRED_HEIGHT, 30 ); Visual::Base batchImageVisual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( batchImageVisual ); @@ -810,20 +877,24 @@ int UtcDaliVisualGetPropertyMapBatchImageVisual(void) // Check the property values from the returned map from visual Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get() == Visual::BATCH_IMAGE ); + DALI_TEST_CHECK( value->Get() == Visual::IMAGE ); - value = resultMap.Find( BatchImageVisual::Property::URL, Property::STRING ); + value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == TEST_IMAGE_FILE_NAME ); - value = resultMap.Find( BatchImageVisual::Property::DESIRED_WIDTH, Property::INTEGER ); + value = resultMap.Find( ImageVisual::Property::DESIRED_WIDTH, Property::INTEGER ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == 20 ); - value = resultMap.Find( BatchImageVisual::Property::DESIRED_HEIGHT, Property::INTEGER ); + value = resultMap.Find( ImageVisual::Property::DESIRED_HEIGHT, Property::INTEGER ); DALI_TEST_CHECK( value ); DALI_TEST_CHECK( value->Get() == 30 ); + // Test the properties. TODO: to be completed. + batchImageVisual.SetProperty( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + Property::Value primitiveValue = batchImageVisual.GetProperty( ImageVisual::Property::URL ); + END_TEST; } @@ -834,12 +905,13 @@ int UtcDaliVisualGetPropertyMapBatchImageVisualNoAtlas(void) VisualFactory factory = VisualFactory::Get(); Property::Map propertyMap; - propertyMap.Insert( Visual::Property::TYPE, Visual::BATCH_IMAGE ); - propertyMap.Insert( BatchImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::BATCHING_ENABLED, true ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); // Set the desired size to be larger than the atlas limit of 1024x1024. - propertyMap.Insert( BatchImageVisual::Property::DESIRED_WIDTH, 2048 ); - propertyMap.Insert( BatchImageVisual::Property::DESIRED_HEIGHT, 2048 ); + propertyMap.Insert( ImageVisual::Property::DESIRED_WIDTH, 2048 ); + propertyMap.Insert( ImageVisual::Property::DESIRED_HEIGHT, 2048 ); // Create the visual. Visual::Base batchImageVisual = factory.CreateVisual( propertyMap ); @@ -853,3 +925,214 @@ int UtcDaliVisualGetPropertyMapBatchImageVisualNoAtlas(void) END_TEST; } + +int UtcDaliVisualAnimateBorderVisual01(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliAnimateBorderVisual Color" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::BORDER); + propertyMap.Insert(BorderVisual::Property::COLOR, Color::BLUE); + propertyMap.Insert(BorderVisual::Property::SIZE, 5.f); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); + + Actor actor = Actor::New(); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + Stage::GetCurrent().Add(actor); + borderVisual.SetOnStage( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index index = renderer.GetPropertyIndex( BorderVisual::Property::COLOR ); + + Animation animation = Animation::New(4.0f); + animation.AnimateTo( Property(renderer, index), Color::WHITE ); + animation.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(2000u); // halfway point between blue and white + + Vector4 color = renderer.GetProperty( index ); + Vector4 testColor = (Color::BLUE + Color::WHITE)*0.5f; + DALI_TEST_EQUALS( color, testColor, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("borderColor", testColor ), true, TEST_LOCATION ); + + application.Render(2000u); // halfway point between blue and white + + color = renderer.GetProperty( index ); + DALI_TEST_EQUALS( color, Color::WHITE, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("borderColor", Color::WHITE ), true, TEST_LOCATION ); + + END_TEST; +} + + +int UtcDaliVisualAnimateBorderVisual02(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliAnimateBorderVisual Size" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::BORDER); + propertyMap.Insert(BorderVisual::Property::COLOR, Color::BLUE); + propertyMap.Insert(BorderVisual::Property::SIZE, 5.f); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); + + Actor actor = Actor::New(); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + Stage::GetCurrent().Add(actor); + borderVisual.SetOnStage( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index index = renderer.GetPropertyIndex( BorderVisual::Property::SIZE ); + + Animation animation = Animation::New(4.0f); + animation.AnimateTo( Property(renderer, index), 9.0f ); + animation.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(2000u); // halfway point + + float size = renderer.GetProperty( index ); + DALI_TEST_EQUALS( size, 7.0f, 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("borderSize", 7.0f ), true, TEST_LOCATION ); + + application.Render(2000u); // halfway point between blue and white + + size = renderer.GetProperty( index ); + DALI_TEST_EQUALS( size, 9.0f, 0.0001f, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("borderSize", 9.0f ), true, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliVisualAnimateColorVisual(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliAnimateColorVisual mixColor" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); + + Actor actor = Actor::New(); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + Stage::GetCurrent().Add(actor); + borderVisual.SetOnStage( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index index = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); + + Animation animation = Animation::New(4.0f); + animation.AnimateTo( Property(renderer, index), Color::WHITE ); + animation.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(2000u); // halfway point + + Vector4 color = renderer.GetProperty( index ); + Vector4 testColor = (Color::BLUE + Color::WHITE)*0.5f; + DALI_TEST_EQUALS( color, testColor, TEST_LOCATION ); + + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("mixColor", testColor ), true, TEST_LOCATION ); + + application.Render(2000u); // halfway point between blue and white + + color = renderer.GetProperty( index ); + DALI_TEST_EQUALS( color, Color::WHITE, TEST_LOCATION ); + + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("mixColor", Color::WHITE ), true, TEST_LOCATION ); + + + END_TEST; +} + + +int UtcDaliVisualAnimatePrimitiveVisual(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliAnimatePrimitiveVisual color" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR); + propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); + Visual::Base borderVisual = factory.CreateVisual( propertyMap ); + + Actor actor = Actor::New(); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + actor.SetColor(Color::BLACK); + Stage::GetCurrent().Add(actor); + borderVisual.SetOnStage( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index index = renderer.GetPropertyIndex( PrimitiveVisual::Property::MIX_COLOR ); + + // The property isn't registered on the renderer, it's instead registered on the shader. + DALI_TEST_EQUALS( index, Property::INVALID_INDEX, TEST_LOCATION ); + + Animation animation = Animation::New(4.0f); + animation.AnimateTo( Property(actor, Actor::Property::COLOR), Color::WHITE ); + animation.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(2000u); // halfway point + + // Actor color overrides renderer color. + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("uColor", Vector4(0.5f, 0.5f, 0.5f, 1.0f )), true, TEST_LOCATION ); + + application.Render(2000u); // halfway point between blue and white + + DALI_TEST_EQUALS( actor.GetCurrentColor(), Color::WHITE, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("uColor", Color::WHITE ), true, TEST_LOCATION ); + + + END_TEST; +} + +int UtcDaliVisualWireframeVisual(void) +{ + ToolkitTestApplication application; + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert( Visual::Property::TYPE, Visual::WIREFRAME ); + + // Create the visual. + Visual::Base visual = factory.CreateVisual( propertyMap ); + + DALI_TEST_CHECK( visual ); + + Property::Map resultMap; + visual.CreatePropertyMap( resultMap ); + + // Check the property values from the returned map from visual + Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); + DALI_TEST_CHECK( value ); + DALI_TEST_CHECK( value->Get() == Visual::WIREFRAME ); + + // Test the properties. TODO: to be completed. + Property::Value primitiveValue = visual.GetProperty( Visual::Property::TYPE ); + + END_TEST; +}