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-ImageView.cpp;h=3921404362e32bb931a4a753e456f2aa4103e5d0;hp=40f9c7cbe3ea6c5c08ca2ae1fcfb08341a667bd4;hb=9ce1fa453940de2fb38552cc374cd54af660debf;hpb=fb0339fee98523cbf3e527ddd8125660aa441c6c diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp index 40f9c7c..3921404 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp @@ -80,6 +80,9 @@ static const char* gImage_34_RGBA = TEST_RESOURCE_DIR "/icon-edit.png"; // resolution: 600*600, pixel format: RGB888 static const char* gImage_600_RGB = TEST_RESOURCE_DIR "/test-image-600.jpg"; +// resolution: 50*50, frame count: 4, frame delay: 0.2 second for each frame +const char* TEST_GIF_FILE_NAME = TEST_RESOURCE_DIR "/anim.gif"; + void TestImage( ImageView imageView, BufferImage image ) { Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) ); @@ -363,6 +366,62 @@ int UtcDaliImageViewSetGetProperty03(void) END_TEST; } +int UtcDaliImageViewPixelArea(void) +{ + // Test pixel area property + ToolkitTestApplication application; + + // Gif image, use AnimatedImageVisual internally + // Atlasing is applied to pack multiple frames, use custom wrap mode + ImageView gifView = ImageView::New(); + const Vector4 pixelAreaVisual( 0.f, 0.f, 2.f, 2.f ); + gifView.SetProperty( ImageView::Property::IMAGE, + Property::Map().Add( ImageVisual::Property::URL, TEST_GIF_FILE_NAME ) + .Add( ImageVisual::Property::PIXEL_AREA, pixelAreaVisual ) ); + + // Add to stage + Stage stage = Stage::GetCurrent(); + stage.Add( gifView ); + + // loading started + application.SendNotification(); + application.Render(16); + DALI_TEST_CHECK( gifView.GetRendererCount() == 1u ); + + const Vector4 fullTextureRect( 0.f, 0.f, 1.f, 1.f ); + // test that the pixel area value defined in the visual property map is registered on renderer + Renderer renderer = gifView.GetRendererAt(0); + Property::Value pixelAreaValue = renderer.GetProperty( renderer.GetPropertyIndex( "pixelArea" ) ); + DALI_TEST_EQUALS( pixelAreaValue.Get(), pixelAreaVisual, TEST_LOCATION ); + + // test that the shader has the default pixel area value registered. + Shader shader = renderer.GetShader(); + pixelAreaValue = shader.GetProperty( shader.GetPropertyIndex( "pixelArea" ) ); + DALI_TEST_EQUALS( pixelAreaValue.Get(), fullTextureRect, TEST_LOCATION ); + + // test that the uniform uses the pixelArea property on the renderer. + TestGlAbstraction& gl = application.GetGlAbstraction(); + Vector4 pixelAreaUniform; + DALI_TEST_CHECK( gl.GetUniformValue( "pixelArea", pixelAreaUniform ) ); + DALI_TEST_EQUALS( pixelAreaVisual, pixelAreaUniform, Math::MACHINE_EPSILON_100, TEST_LOCATION ); + + // set the pixelArea property on the control + const Vector4 pixelAreaControl( -1.f, -1.f, 3.f, 3.f ); + gifView.SetProperty( ImageView::Property::PIXEL_AREA, pixelAreaControl ); + application.SendNotification(); + application.Render(16); + + // check the pixelArea property on the control + pixelAreaValue = gifView.GetProperty( gifView.GetPropertyIndex( "pixelArea" ) ); + DALI_TEST_EQUALS( pixelAreaValue.Get(), pixelAreaControl, TEST_LOCATION ); + // test that the uniform uses the pixelArea property on the control. + DALI_TEST_CHECK( gl.GetUniformValue( "pixelArea", pixelAreaUniform ) ); + DALI_TEST_EQUALS( pixelAreaControl, pixelAreaUniform, Math::MACHINE_EPSILON_100, TEST_LOCATION ); + + + END_TEST; +} + int UtcDaliImageViewAsyncLoadingWithoutAltasing(void) { ToolkitTestApplication application;