/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
#include <dali-toolkit-test-suite-utils.h>
#include <toolkit-event-thread-callback.h>
#include <dali-toolkit/devel-api/image-loader/image-atlas.h>
-#include <dali-toolkit/public-api/controls/image-view/image-view.h>
+#include <dali-toolkit/dali-toolkit.h>
using namespace Dali;
using namespace Dali::Toolkit;
// resolution: 128*128, pixel format: RGB888
static const char* gImage_128_RGB = TEST_RESOURCE_DIR "/gallery-small-1.jpg";
-// this is image is not exist, for negative test
-static const char* gImageNonExist = "non-exist.jpg";
+// Empty image, for testing broken image loading
+static const char* gEmptyImage = TEST_RESOURCE_DIR "/empty.bmp";
const int RENDER_FRAME_INTERVAL = 16; ///< Duration of each frame in ms. (at approx 60FPS)
unsigned int size = 200;
ImageAtlas atlas = ImageAtlas::New( size, size );
- Vector4 textureRect;
- atlas.Upload( textureRect, gImageNonExist );
- DALI_TEST_EQUALS( textureRect, Vector4::ZERO, TEST_LOCATION );
-
// Set broken image
TestPlatformAbstraction& platform = application.GetPlatform();
platform.SetClosestImageSize(Vector2( 34, 34));
atlas.SetBrokenImage( gImage_34_RGBA );
- // the non-exit image will be replaced with the broken image
- platform.SetClosestImageSize(Vector2( 0, 0));
- atlas.Upload( textureRect, gImageNonExist );
+ Vector4 textureRect;
+
+ // the empty image will be replaced with the broken image
+ platform.SetClosestImageSize(Vector2( 20, 20));
+ atlas.Upload( textureRect, gEmptyImage );
+ DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
Rect<int> pixelArea = TextureCoordinateToPixelArea(textureRect, size);
- DALI_TEST_EQUALS( pixelArea.width, 34, TEST_LOCATION );
- DALI_TEST_EQUALS( pixelArea.height, 34, TEST_LOCATION );
+ DALI_TEST_EQUALS( pixelArea.width, 20, TEST_LOCATION );
+ DALI_TEST_EQUALS( pixelArea.height, 20, TEST_LOCATION );
END_TEST;
}
+
+
int UtcDaliImageAtlasUploadP(void)
{
ToolkitTestApplication application;
int UtcDaliImageAtlasUploadWithObserver01(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
ImageAtlas atlas = ImageAtlas::New( 200, 200 );
int UtcDaliImageAtlasUploadWithObserver02(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
ImageAtlas atlas = ImageAtlas::New( 200, 200 );
gCountOfTestFuncCall = 0;
int UtcDaliImageAtlasUploadWithObserver03(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
gCountOfTestFuncCall = 0;
TestUploadObserver* uploadObserver = new TestUploadObserver;
int UtcDaliImageAtlasRemove(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
unsigned int size = 100;
ImageAtlas atlas = ImageAtlas::New( size, size );
Vector4 textureRect1;
callStack.Reset();
callStack.Enable(true);
- ImageView imageView1 = ImageView::New( gImage_34_RGBA, ImageDimensions(34, 34) );
- ImageView imageView2 = ImageView::New( gImage_50_RGBA, ImageDimensions(50, 50) );
+ Property::Map imageMap1;
+
+ imageMap1[ ImageVisual::Property::URL ] = gImage_34_RGBA;
+ imageMap1[ ImageVisual::Property::DESIRED_HEIGHT ] = 34;
+ imageMap1[ ImageVisual::Property::DESIRED_WIDTH ] = 34;
+ imageMap1[ ImageVisual::Property::ATLASING] = true;
+
+ Property::Map imageMap2;
+
+ imageMap2[ ImageVisual::Property::URL ] = gImage_50_RGBA;
+ imageMap2[ ImageVisual::Property::DESIRED_HEIGHT ] = 50;
+ imageMap2[ ImageVisual::Property::DESIRED_WIDTH ] = 50;
+ imageMap2[ ImageVisual::Property::ATLASING ] = true;
+
+ ImageView imageView1 = ImageView::New();
+ imageView1.SetProperty( ImageView::Property::IMAGE, imageMap1 );
+
+ ImageView imageView2 = ImageView::New();
+ imageView2.SetProperty( ImageView::Property::IMAGE, imageMap2 );
// ImageView doesn't do size negotiation properly: it only listens to OnSizeSet:
- imageView1.SetSize( 100, 100 );
- imageView2.SetSize( 100, 100 );
+ imageView1.SetProperty( Actor::Property::SIZE, Vector2( 100, 100 ) );
+ imageView2.SetProperty( Actor::Property::SIZE, Vector2( 100, 100 ) );
imageView1.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
imageView2.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
application.GetPlatform().SetClosestImageSize( Vector2(34, 34) );
- Stage::GetCurrent().Add( imageView1 );
+ application.GetScene().Add( imageView1 );
application.GetPlatform().SetClosestImageSize( Vector2(50, 50) );
- Stage::GetCurrent().Add( imageView2 );
+ application.GetScene().Add( imageView2 );
DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 2 ), true, TEST_LOCATION );
// remove the imageView2 from stage, the second image will also be removed from atlas
// then the space on the atlas will be used by the third image added.
- Stage::GetCurrent().Remove( imageView2 );
+ application.GetScene().Remove( imageView2 );
application.SendNotification();
application.Render(RENDER_FRAME_INTERVAL);
- ImageView imageView3 = ImageView::New( gImage_128_RGB, ImageDimensions(100, 100) );
+
+ Property::Map imageMap3;
+ imageMap3[ ImageVisual::Property::URL ] = gImage_128_RGB;
+ imageMap3[ ImageVisual::Property::DESIRED_HEIGHT ] = 100;
+ imageMap3[ ImageVisual::Property::DESIRED_WIDTH ] = 100;
+ imageMap3[ ImageVisual::Property::ATLASING ] = true;
+
+ ImageView imageView3 = ImageView::New();
+ imageView3.SetProperty( ImageView::Property::IMAGE, imageMap3 );
+
application.GetPlatform().SetClosestImageSize( Vector2(100, 100) );
- Stage::GetCurrent().Add( imageView3 );
+ application.GetScene().Add( imageView3 );
- DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 3 ), true, TEST_LOCATION );
+ DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
application.SendNotification();
application.Render(RENDER_FRAME_INTERVAL);