X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-VisualFactory.cpp;h=ab0f0cd0165ac08e38f124bf6d11e1a5c57a8fe5;hp=0b1be30e04f7964d78e7a169f90ae1d622aa80b4;hb=5a2a5883422f4d114902ac57d57d7d1e973fbb2e;hpb=0ade1ea02b460b002d9cd82cd3023a5107eb6294 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp index 0b1be30..ab0f0cd 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp @@ -330,10 +330,13 @@ int UtcDaliVisualFactoryGetColorVisual1(void) DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual ); - Vector4 actualValue(Vector4::ZERO); + Vector3 actualValue(Vector4::ZERO); + float opacity=0.0f; TestGlAbstraction& gl = application.GetGlAbstraction(); - DALI_TEST_CHECK( gl.GetUniformValue( "mixColor", actualValue ) ); - DALI_TEST_EQUALS( actualValue, testColor, TEST_LOCATION ); + DALI_TEST_CHECK( gl.GetUniformValue( "mixColor", actualValue ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "opacity", opacity ) ); + DALI_TEST_EQUALS( actualValue, Vector3(testColor), TEST_LOCATION ); + DALI_TEST_EQUALS( opacity, testColor.a, TEST_LOCATION ); END_TEST; } @@ -356,10 +359,13 @@ int UtcDaliVisualFactoryGetColorVisual2(void) DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual ); - Vector4 actualValue(Vector4::ZERO); + Vector3 actualValue; + float opacity; TestGlAbstraction& gl = application.GetGlAbstraction(); - DALI_TEST_CHECK( gl.GetUniformValue( "mixColor", actualValue ) ); - DALI_TEST_EQUALS( actualValue, testColor, TEST_LOCATION ); + DALI_TEST_CHECK( gl.GetUniformValue( "mixColor", actualValue ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "opacity", opacity ) ); + DALI_TEST_EQUALS( actualValue, Vector3(testColor), TEST_LOCATION ); + DALI_TEST_EQUALS( opacity, testColor.a, TEST_LOCATION ); Stage::GetCurrent().Remove(actor); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); @@ -1976,146 +1982,10 @@ int UtcDaliVisualFactoryGetPrimitiveVisualN1(void) END_TEST; } -int UtcDaliVisualFactoryGetBatchImageVisual1(void) +int UtcDaliVisualFactoryGetAnimatedImageVisual1(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetBatchImageVisual1: Request a Batch Image visual with a Property::Map" ); - - VisualFactory factory = VisualFactory::Get(); - DALI_TEST_CHECK( factory ); - - Property::Map propertyMap; - propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); - propertyMap.Insert( ImageVisual::Property::BATCHING_ENABLED, true ); - propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); - - Visual::Base visual = factory.CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); - - DummyControl actor = DummyControl::New(); - DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); - dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); - - actor.SetSize( 200.0f, 200.0f ); - Stage::GetCurrent().Add( actor ); - visual.SetTransformAndSize(DefaultTransform(), Vector2( 200.0f, 200.0f ) ); - - // Test SetOnStage(). - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - - application.SendNotification(); - application.Render(); - - // Test SetOffStage(). - actor.Unparent(); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); - - END_TEST; -} - -int UtcDaliVisualFactoryGetBatchImageVisual2(void) -{ - ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetBatchImageVisual2: Request Batch Image visual from an Image Visual with batchingEnabled set" ); - - VisualFactory factory = VisualFactory::Get(); - DALI_TEST_CHECK( factory ); - - Property::Map propertyMap; - // Create a normal Image Visual. - propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); - // Instruct the factory to change Image Visuals to Batch-Image Visuals. - propertyMap.Insert( ImageVisual::Property::BATCHING_ENABLED, true ); - - // Properties for the Batch-Image Visual. - propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); - - Visual::Base visual = factory.CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); - - // Check that a Batch-Image visual was created instead of an Image visual. - Property::Map resultMap; - visual.CreatePropertyMap( resultMap ); - - Property::Value* value = resultMap.Find( Visual::Property::TYPE, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get(), (int)Visual::IMAGE, TEST_LOCATION ); - - DummyControl actor = DummyControl::New(); - DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); - dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); - - actor.SetSize( 200.0f, 200.0f ); - Stage::GetCurrent().Add( actor ); - visual.SetTransformAndSize(DefaultTransform(), Vector2( 200.0f, 200.0f ) ); - - // Test SetOnStage(). - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - - application.SendNotification(); - application.Render(); - - // Test SetOffStage(). - actor.Unparent(); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); - - END_TEST; -} - -int UtcDaliVisualFactoryGetBatchImageVisual3(void) -{ - ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetBatchImageVisual3: Create an ImageView that uses a batched visual internally" ); - - VisualFactory factory = VisualFactory::Get(); - DALI_TEST_CHECK( factory ); - - // Create a property-map that enables batching. - Property::Map propertyMap; - propertyMap[ Dali::Toolkit::ImageVisual::Property::URL ] = TEST_IMAGE_FILE_NAME ; - propertyMap[ "desiredHeight" ] = 200; - propertyMap[ "desiredWidth" ] = 200; - propertyMap[ "batchingEnabled" ] = true; - - // Create an ImageView, passing the property-map in to instruct it to use batching. - Toolkit::ImageView imageView = Toolkit::ImageView::New(); - imageView.SetProperty( Toolkit::ImageView::Property::IMAGE, propertyMap ); - - imageView.SetSize( 200.0f, 200.0f ); - Stage::GetCurrent().Add( imageView ); - - END_TEST; -} - -int UtcDaliVisualFactoryGetBatchImageVisual4N(void) -{ - ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetBatchImageVisual4: Create an ImageView that uses a batched visual, with desired properties of the wrong type" ); - - VisualFactory factory = VisualFactory::Get(); - DALI_TEST_CHECK( factory ); - - // Create a property-map that enables batching. - Property::Map propertyMap; - propertyMap[ Dali::Toolkit::ImageVisual::Property::URL ] = TEST_IMAGE_FILE_NAME ; - propertyMap[ "desiredHeight" ] = Vector2(100, 100); - propertyMap[ "desiredWidth" ] = Vector3(1, 1, 1); - propertyMap[ "batchingEnabled" ] = true; - - // Create an ImageView, passing the property-map in to instruct it to use batching. - Toolkit::ImageView imageView = Toolkit::ImageView::New(); - imageView.SetProperty( Toolkit::ImageView::Property::IMAGE, propertyMap ); - - imageView.SetSize( 200.0f, 200.0f ); - Stage::GetCurrent().Add( imageView ); - - END_TEST; -} - -int UtcDaliVisualFactoryGetAnimatedImageVisual(void) -{ - ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetAnimatedImageVisual: Request animated image visual with a gif url" ); + tet_infoline( "UtcDaliVisualFactoryGetAnimatedImageVisual1: Request animated image visual with a gif url" ); VisualFactory factory = VisualFactory::Get(); Visual::Base visual = factory.CreateVisual( TEST_GIF_FILE_NAME, ImageDimensions() ); @@ -2128,6 +1998,7 @@ int UtcDaliVisualFactoryGetAnimatedImageVisual(void) DummyControl actor = DummyControl::New(); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + actor.SetSize( 200.0f, 200.0f ); Stage::GetCurrent().Add( actor ); application.SendNotification(); @@ -2190,3 +2061,69 @@ int UtcDaliVisualFactoryGetAnimatedImageVisual(void) END_TEST; } + +int UtcDaliVisualFactoryGetAnimatedImageVisual2(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualFactoryGetAnimatedImageVisual2: Request animated image visual with a Property::Map, test custom wrap mode and pixel area" ); + + const Vector4 pixelArea(-0.5f, -0.5f, 2.f, 2.f); + Property::Map propertyMap; + propertyMap.Add( Visual::Property::TYPE, Visual::IMAGE ) + .Add( ImageVisual::Property::URL, TEST_GIF_FILE_NAME ) + .Add( ImageVisual::Property::PIXEL_AREA, pixelArea ) + .Add( ImageVisual::Property::WRAP_MODE_U, WrapMode::MIRRORED_REPEAT ) + .Add( ImageVisual::Property::WRAP_MODE_V, WrapMode::REPEAT ); + + Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); + DALI_TEST_CHECK( visual ); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + TraceCallStack& texParameterTrace = gl.GetTexParameterTrace(); + texParameterTrace.Enable( true ); + + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + actor.SetSize( 200.0f, 200.0f ); + Stage::GetCurrent().Add( actor ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); + + // For animated image visual, the wrapping is handled manually in shader, so the following gl function should not be called + std::stringstream out; + out << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_S << ", " << GL_MIRRORED_REPEAT; + DALI_TEST_CHECK( !texParameterTrace.FindMethodAndParams("TexParameteri", out.str()) ); + out.str(""); + out << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_T << ", " << GL_REPEAT; + DALI_TEST_CHECK( !texParameterTrace.FindMethodAndParams("TexParameteri", out.str()) ); + + // test the uniforms which used to handle the wrap mode + Renderer renderer = actor.GetRendererAt( 0u ); + DALI_TEST_CHECK( renderer ); + + Property::Value pixelAreaValue = renderer.GetProperty( renderer.GetPropertyIndex( "pixelArea" ) ); + DALI_TEST_EQUALS( pixelAreaValue.Get(), pixelArea, TEST_LOCATION ); + Vector4 pixelAreaUniform; + DALI_TEST_CHECK( gl.GetUniformValue( "pixelArea", pixelAreaUniform ) ); + DALI_TEST_EQUALS( pixelArea, pixelAreaUniform, Math::MACHINE_EPSILON_100, TEST_LOCATION ); + + Property::Value wrapModeValue = renderer.GetProperty( renderer.GetPropertyIndex( "wrapMode" ) ); + Vector2 wrapMode( WrapMode::MIRRORED_REPEAT-1, WrapMode::REPEAT-1 ); + DALI_TEST_EQUALS( wrapModeValue.Get(), wrapMode, TEST_LOCATION ); + Vector2 wrapModeUniform; + DALI_TEST_CHECK( gl.GetUniformValue( "wrapMode", wrapModeUniform ) ); + DALI_TEST_EQUALS( wrapMode, wrapModeUniform, Math::MACHINE_EPSILON_100, TEST_LOCATION ); + + actor.Unparent( ); + DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + + END_TEST; +}