X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ImageVisual.cpp;h=5cbfc8964301d40c279668ad198394306982e371;hb=8e98f1407744af67cc5b5f37e979c2496468c50c;hp=1a15ec651def82d4dcf4e0777557d8376c5d290d;hpb=30ae04d70a9a93e49163a5cec2efafd32fc678b5;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp index 1a15ec6..5cbfc89 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -760,18 +760,17 @@ int UtcDaliImageVisualAnimateMixColor(void) application.SendNotification(); application.Render(0); // Ensure animation starts application.Render(2000u); // Halfway point - Vector4 testColor(1.0f, 0.0f, 0.5f, 0.75f ); + Vector3 testColor( 1.0f, 0.0f, 0.5f ); - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("uColor", Vector4(0.5f, 0.5f, 0.5f, 1.0f )), true, TEST_LOCATION ); - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("mixColor", Vector3(testColor)), true, TEST_LOCATION ); - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("opacity", testColor.a), true, TEST_LOCATION ); + // uColor.a should be actor's alpha * mixColor.a. + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue( "uColor", Vector4( 0.5f, 0.5f, 0.5f, 0.75f ) ), true, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue( "mixColor", testColor ), 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 ); - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("mixColor", Vector3(TARGET_MIX_COLOR)), true, TEST_LOCATION ); - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("opacity", TARGET_MIX_COLOR.a), true, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue( "uColor", Vector4( 1.0f, 1.0f, 1.0f, 0.5f ) ), true, TEST_LOCATION ); + DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue( "mixColor", Vector3( TARGET_MIX_COLOR ) ), true, TEST_LOCATION ); TestMixColor( visual, Visual::Property::MIX_COLOR, TARGET_MIX_COLOR ); @@ -808,11 +807,6 @@ int UtcDaliImageVisualAnimateOpacity(void) DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); Renderer renderer = actor.GetRendererAt(0); - tet_infoline("Test that the renderer has the opacity property"); - Property::Index index = DevelHandle::GetPropertyIndex( renderer, Visual::Property::OPACITY ); - DALI_TEST_CHECK( index != Property::INVALID_INDEX ); - - Property::Value blendModeValue = renderer.GetProperty( Renderer::Property::BLEND_MODE ); DALI_TEST_EQUALS( blendModeValue.Get(), (int)BlendMode::ON, TEST_LOCATION ); @@ -838,12 +832,15 @@ int UtcDaliImageVisualAnimateOpacity(void) application.Render(2000u); // Halfway point through animation application.SendNotification(); // Handle any signals - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("opacity", 0.75f), true, TEST_LOCATION ); + Vector4 color; + DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) ); + DALI_TEST_EQUALS( color.a, 0.75f, TEST_LOCATION ); application.Render(2001u); // end application.SendNotification(); // ensure animation finished signal is sent - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("opacity", 1.0f), true, TEST_LOCATION ); + DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) ); + DALI_TEST_EQUALS( color.a, 1.0f, TEST_LOCATION ); blendModeValue = renderer.GetProperty( Renderer::Property::BLEND_MODE ); DALI_TEST_EQUALS( blendModeValue.Get(), (int)BlendMode::AUTO, TEST_LOCATION ); @@ -875,12 +872,15 @@ int UtcDaliImageVisualAnimateOpacity(void) application.Render(2000u); // Halfway point application.SendNotification(); - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("opacity", 0.55f), true, TEST_LOCATION ); + Vector4 color; + DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) ); + DALI_TEST_EQUALS( color.a, 0.55f, TEST_LOCATION ); application.Render(2016u); // end application.SendNotification(); - DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue("opacity", 0.1f), true, TEST_LOCATION ); + DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) ); + DALI_TEST_EQUALS( color.a, 0.1f, TEST_LOCATION ); blendModeValue = renderer.GetProperty( Renderer::Property::BLEND_MODE ); DALI_TEST_EQUALS( blendModeValue.Get(), (int)BlendMode::ON, TEST_LOCATION ); @@ -890,6 +890,95 @@ int UtcDaliImageVisualAnimateOpacity(void) END_TEST; } + + +int UtcDaliImageVisualAnimateOpacity02(void) +{ + ToolkitTestApplication application; + tet_infoline( "Animate image visual opacity" ); + + application.GetPlatform().SetClosestImageSize( Vector2(100, 100) ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::IMAGE); + propertyMap.Insert(ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + propertyMap.Insert("opacity", 0.5f); + propertyMap.Insert(ImageVisual::Property::SYNCHRONOUS_LOADING, true); + Visual::Base visual = factory.CreateVisual( propertyMap ); + + DummyControl actor = DummyControl::New(true); + Impl::DummyControl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + actor.SetColor(Color::BLACK); + + tet_infoline( "Test that the opacity doesn't animate when actor not staged" ); + + Property::Array array; + + Property::Map map; + map["target"] = "testVisual"; + map["property"] = "opacity"; + map["initialValue"] = 0.0f; + map["targetValue"] = 1.0f; + map["animator"] = Property::Map() + .Add("alphaFunction", "LINEAR") + .Add("timePeriod", Property::Map() + .Add("delay", 0.0f) + .Add("duration", 4.0f)); + + Property::Map map2; + map2["target"] = "testVisual"; + map2["property"] = "size"; + map2["targetValue"] = Vector2(1.0f, 1.0f); + + array.Add( map ).Add(map2); + + Dali::Toolkit::TransitionData transition = TransitionData::New( array ); + Animation animation = dummyImpl.CreateTransition( transition ); + + Stage::GetCurrent().Add(actor); + application.SendNotification(); + application.Render(0); // Ensure animation starts + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); + + Renderer renderer = actor.GetRendererAt(0); + Property::Value blendModeValue = renderer.GetProperty( Renderer::Property::BLEND_MODE ); + DALI_TEST_EQUALS( blendModeValue.Get(), (int)BlendMode::AUTO, TEST_LOCATION ); + + animation = dummyImpl.CreateTransition( transition ); + animation.Play(); + + application.SendNotification(); + application.Render(0); // Ensure animation starts + application.Render(2000u); // Halfway point through animation + application.SendNotification(); // Handle any signals + + blendModeValue = renderer.GetProperty( Renderer::Property::BLEND_MODE ); + DALI_TEST_EQUALS( blendModeValue.Get(), (int)BlendMode::ON, TEST_LOCATION ); + + Vector4 color; + DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) ); + DALI_TEST_EQUALS( color.a, 0.5f, TEST_LOCATION ); + + application.Render(2001u); // end + application.SendNotification(); // ensure animation finished signal is sent + + DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) ); + DALI_TEST_EQUALS( color.a, 1.0f, TEST_LOCATION ); + + blendModeValue = renderer.GetProperty( Renderer::Property::BLEND_MODE ); + DALI_TEST_EQUALS( blendModeValue.Get(), (int)BlendMode::AUTO, TEST_LOCATION ); + + END_TEST; +} + + + int UtcDaliImageVisualAnimatePixelArea(void) { ToolkitTestApplication application;