2 * Copyright (c) 2018 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
21 #include <dali-toolkit-test-suite-utils.h>
22 #include <toolkit-timer.h>
23 #include <toolkit-event-thread-callback.h>
24 #include <dali-toolkit/dali-toolkit.h>
25 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
26 #include <dali-toolkit/devel-api/controls/control-devel.h>
27 #include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
28 #include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h>
29 #include <dali-toolkit/devel-api/visuals/animated-vector-image-visual-actions-devel.h>
30 #include <dali-toolkit/devel-api/visuals/animated-vector-image-visual-signals-devel.h>
31 #include "dummy-control.h"
34 using namespace Dali::Toolkit;
36 void dali_animated_vector_image_visual_startup(void)
38 test_return_value = TET_UNDEF;
41 void dali_animated_vector_image_visual_cleanup(void)
43 test_return_value = TET_PASS;
49 const char* TEST_VECTOR_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/insta_camera.json";
51 bool gAnimationFinishedSignalFired = false;
53 void VisualEventSignal( Control control, Dali::Property::Index visualIndex, Dali::Property::Index signalId )
55 if( visualIndex == DummyControl::Property::TEST_VISUAL && signalId == DevelAnimatedVectorImageVisual::Signal::ANIMATION_FINISHED )
57 gAnimationFinishedSignalFired = true;
63 int UtcDaliVisualFactoryGetAnimatedVectorImageVisual01(void)
65 ToolkitTestApplication application;
66 tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual01: Request animated vector image visual with a json url" );
68 VisualFactory factory = VisualFactory::Get();
69 Visual::Base visual = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() );
70 DALI_TEST_CHECK( visual );
72 DummyControl actor = DummyControl::New( true );
73 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
74 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
75 actor.SetSize( 200.0f, 200.0f );
76 Stage::GetCurrent().Add( actor );
78 application.SendNotification();
81 // renderer is added to actor
82 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
83 Renderer renderer = actor.GetRendererAt( 0u );
84 DALI_TEST_CHECK( renderer );
86 // Test SetOffStage().
88 DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
93 int UtcDaliVisualFactoryGetAnimatedVectorImageVisual02(void)
95 ToolkitTestApplication application;
96 tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual02: Request animated vector image visual with a Property::Map" );
98 Property::Map propertyMap;
99 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
100 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME );
102 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
103 DALI_TEST_CHECK( visual );
105 DummyControl actor = DummyControl::New( true );
106 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
107 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
108 actor.SetSize( 200.0f, 200.0f );
109 Stage::GetCurrent().Add( actor );
111 application.SendNotification();
112 application.Render();
114 // renderer is added to actor
115 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
116 Renderer renderer = actor.GetRendererAt( 0u );
117 DALI_TEST_CHECK( renderer );
120 DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
125 int UtcDaliVisualFactoryGetAnimatedVectorImageVisual03(void)
127 ToolkitTestApplication application;
128 tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual03: Request animated vector image visual with a Property::Map" );
130 int startFrame = 1, endFrame = 3;
131 Property::Array playRange;
132 playRange.PushBack( startFrame );
133 playRange.PushBack( endFrame );
135 Property::Map propertyMap;
136 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
137 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
138 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 )
139 .Add( DevelImageVisual::Property::PLAY_RANGE, playRange );
141 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
142 DALI_TEST_CHECK( visual );
144 DummyControl actor = DummyControl::New( true );
145 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
146 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
147 actor.SetSize( 200.0f, 200.0f );
148 Stage::GetCurrent().Add( actor );
150 application.SendNotification();
151 application.Render();
153 // renderer is added to actor
154 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
155 Renderer renderer = actor.GetRendererAt( 0u );
156 DALI_TEST_CHECK( renderer );
159 DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
164 int UtcDaliVisualFactoryGetAnimatedVectorImageVisual04(void)
166 ToolkitTestApplication application;
167 tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual04: Request animated vector image visual with a Property::Map" );
169 int startFrame = 1, endFrame = 3;
170 Property::Array playRange;
171 playRange.PushBack( startFrame );
172 playRange.PushBack( endFrame );
174 Property::Map propertyMap;
175 propertyMap.Add( "visualType", DevelVisual::ANIMATED_VECTOR_IMAGE )
176 .Add( "url", TEST_VECTOR_IMAGE_FILE_NAME )
177 .Add( "loopCount", 3 )
178 .Add( "playRange", playRange )
179 .Add( "stopBehavior", DevelImageVisual::StopBehavior::FIRST_FRAME )
180 .Add( "loopingMode", DevelImageVisual::LoopingMode::AUTO_REVERSE );
182 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
183 DALI_TEST_CHECK( visual );
185 DummyControl actor = DummyControl::New( true );
186 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
187 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
188 actor.SetSize( 200.0f, 200.0f );
189 Stage::GetCurrent().Add( actor );
191 application.SendNotification();
192 application.Render();
194 // renderer is added to actor
195 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
196 Renderer renderer = actor.GetRendererAt( 0u );
197 DALI_TEST_CHECK( renderer );
199 Property::Map resultMap;
200 visual.CreatePropertyMap( resultMap );
202 // check the property values from the returned map from a visual
203 Property::Value* value = resultMap.Find( ImageVisual::Property::URL, Property::STRING );
204 DALI_TEST_CHECK( value );
205 DALI_TEST_CHECK( value->Get< std::string >() == TEST_VECTOR_IMAGE_FILE_NAME );
207 value = resultMap.Find( DevelImageVisual::Property::LOOP_COUNT, Property::INTEGER );
208 DALI_TEST_CHECK( value );
209 DALI_TEST_CHECK( value->Get< int >() == 3 );
211 value = resultMap.Find( DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY );
212 DALI_TEST_CHECK( value );
214 Property::Array* result = value->GetArray();
215 DALI_TEST_CHECK( result );
217 DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == startFrame );
218 DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == endFrame );
220 value = resultMap.Find( DevelImageVisual::Property::STOP_BEHAVIOR, Property::INTEGER );
221 DALI_TEST_CHECK( value );
222 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::StopBehavior::FIRST_FRAME );
224 value = resultMap.Find( DevelImageVisual::Property::LOOPING_MODE, Property::INTEGER );
225 DALI_TEST_CHECK( value );
226 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::LoopingMode::AUTO_REVERSE );
229 DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
234 int UtcDaliAnimatedVectorImageVisualGetPropertyMap01(void)
236 ToolkitTestApplication application;
237 tet_infoline( "UtcDaliAnimatedVectorImageVisualGetPropertyMap01" );
239 int startFrame = 1, endFrame = 3;
240 Property::Array playRange;
241 playRange.PushBack( startFrame );
242 playRange.PushBack( endFrame );
244 Property::Map propertyMap;
245 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
246 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
247 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 )
248 .Add( DevelImageVisual::Property::PLAY_RANGE, playRange );
250 // request AnimatedVectorImageVisual with a property map
251 VisualFactory factory = VisualFactory::Get();
252 Visual::Base visual = factory.CreateVisual( propertyMap );
254 Property::Map resultMap;
255 visual.CreatePropertyMap( resultMap );
257 // check the property values from the returned map from a visual
258 Property::Value* value = resultMap.Find( Toolkit::Visual::Property::TYPE, Property::INTEGER );
259 DALI_TEST_CHECK( value );
260 DALI_TEST_CHECK( value->Get< int >() == DevelVisual::ANIMATED_VECTOR_IMAGE );
262 value = resultMap.Find( ImageVisual::Property::URL, Property::STRING );
263 DALI_TEST_CHECK( value );
264 DALI_TEST_CHECK( value->Get< std::string >() == TEST_VECTOR_IMAGE_FILE_NAME );
266 value = resultMap.Find( DevelImageVisual::Property::LOOP_COUNT, Property::INTEGER );
267 DALI_TEST_CHECK( value );
268 DALI_TEST_CHECK( value->Get< int >() == 3 );
270 value = resultMap.Find( DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY );
271 DALI_TEST_CHECK( value );
273 Property::Array* result = value->GetArray();
274 DALI_TEST_CHECK( result );
276 DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == startFrame );
277 DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == endFrame );
279 value = resultMap.Find( DevelImageVisual::Property::STOP_BEHAVIOR, Property::INTEGER );
280 DALI_TEST_CHECK( value );
281 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::StopBehavior::CURRENT_FRAME );
283 value = resultMap.Find( DevelImageVisual::Property::LOOPING_MODE, Property::INTEGER );
284 DALI_TEST_CHECK( value );
285 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::LoopingMode::RESTART );
287 // request AnimatedVectorImageVisual with an URL
288 Visual::Base visual2 = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() );
291 visual2.CreatePropertyMap( resultMap );
293 // check the property values from the returned map from a visual
294 value = resultMap.Find( Toolkit::Visual::Property::TYPE, Property::INTEGER );
295 DALI_TEST_CHECK( value );
296 DALI_TEST_CHECK( value->Get< int >() == DevelVisual::ANIMATED_VECTOR_IMAGE );
298 value = resultMap.Find( ImageVisual::Property::URL, Property::STRING );
299 DALI_TEST_CHECK( value );
300 DALI_TEST_CHECK( value->Get< std::string >() == TEST_VECTOR_IMAGE_FILE_NAME );
305 int UtcDaliAnimatedVectorImageVisualPlayback(void)
307 ToolkitTestApplication application;
309 tet_infoline( "UtcDaliAnimatedVectorImageVisualPlayback" );
312 // request AnimatedVectorImageVisual with a property map
313 VisualFactory factory = VisualFactory::Get();
314 Visual::Base visual = factory.CreateVisual(
316 .Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
317 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) );
319 DummyControl dummyControl = DummyControl::New( true );
320 Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummyControl.GetImplementation() );
321 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
322 dummyControl.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
324 Property::Map attributes;
325 tet_infoline( "Test Play action" );
326 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
328 Stage::GetCurrent().Add( dummyControl );
329 application.SendNotification();
330 application.Render( 16 );
332 std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) ); // wait for one animation loop (16fps, 5frames, need 80ms)
334 Property::Map map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
335 Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_STATE );
336 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PLAYING );
338 tet_infoline( "Test Pause action" );
339 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, attributes );
341 application.SendNotification();
342 application.Render(16);
344 std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run
346 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
347 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
348 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PAUSED );
350 tet_infoline( "Test Play action" );
351 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
353 application.SendNotification();
354 application.Render(16);
356 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
357 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
358 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PLAYING );
360 tet_infoline( "Test Stop action" );
361 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes );
363 application.SendNotification();
364 application.Render(16);
366 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
367 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
368 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::STOPPED );
370 tet_infoline( "Test Stop action again" );
371 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes );
373 application.SendNotification();
374 application.Render(16);
376 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
377 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
378 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::STOPPED );
380 tet_infoline( "Test Play action" );
381 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
383 application.SendNotification();
384 application.Render(16);
386 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
387 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
388 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PLAYING );
390 tet_infoline( "Off stage" );
391 dummyControl.Unparent();
393 application.SendNotification();
394 application.Render(16);
396 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
397 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
398 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PAUSED );
400 tet_infoline( "On stage again" );
401 Stage::GetCurrent().Add( dummyControl );
403 application.SendNotification();
404 application.Render(16);
406 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
407 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
408 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PAUSED );
410 tet_infoline( "Test Play action" );
411 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
413 application.SendNotification();
414 application.Render(16);
416 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
417 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
418 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PLAYING );
421 Vector3 newSize( 100.0f, 100.0f, 0.0f );
422 dummyControl.SetSize( newSize );
424 application.SendNotification();
425 application.Render(16);
427 // Size should be changed
428 Vector3 naturalSize = dummyControl.GetNaturalSize();
429 DALI_TEST_CHECK( naturalSize == newSize );
431 dummyControl.Unparent();
437 int UtcDaliAnimatedVectorImageVisualCustomShader(void)
439 ToolkitTestApplication application;
440 tet_infoline( "UtcDaliAnimatedVectorImageVisualCustomShader Test custom shader" );
442 VisualFactory factory = VisualFactory::Get();
443 Property::Map properties;
444 Property::Map shader;
445 const std::string vertexShader = "Foobar";
446 const std::string fragmentShader = "Foobar sampler2D Foobar";
447 shader[Visual::Shader::Property::FRAGMENT_SHADER] = fragmentShader;
448 shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader;
450 properties[Visual::Property::TYPE] = Visual::IMAGE;
451 properties[Visual::Property::SHADER] = shader;
452 properties[ImageVisual::Property::URL] = TEST_VECTOR_IMAGE_FILE_NAME;
454 Visual::Base visual = factory.CreateVisual( properties );
456 // trigger creation through setting on stage
457 DummyControl dummy = DummyControl::New( true );
458 Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummy.GetImplementation() );
459 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
461 dummy.SetSize( 200.f, 200.f );
462 dummy.SetParentOrigin( ParentOrigin::CENTER );
463 Stage::GetCurrent().Add( dummy );
465 application.SendNotification();
466 application.Render();
468 Renderer renderer = dummy.GetRendererAt( 0 );
469 Shader shader2 = renderer.GetShader();
470 Property::Value value = shader2.GetProperty( Shader::Property::PROGRAM );
471 Property::Map* map = value.GetMap();
472 DALI_TEST_CHECK( map );
474 std::string resultFragmentShader, resultVertexShader;
475 Property::Value* fragment = map->Find( "fragment" ); // fragment key name from shader-impl.cpp
476 fragment->Get( resultFragmentShader );
477 DALI_TEST_CHECK( resultFragmentShader.find( fragmentShader ) != std::string::npos );
479 Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp
480 vertex->Get( resultVertexShader );
481 DALI_TEST_CHECK( resultVertexShader.find( vertexShader ) != std::string::npos );
486 int UtcDaliAnimatedVectorImageVisualNaturalSize(void)
488 ToolkitTestApplication application;
489 tet_infoline( "UtcDaliAnimatedVectorImageVisualNaturalSize" );
491 VisualFactory factory = VisualFactory::Get();
492 Visual::Base visual = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() );
493 DALI_TEST_CHECK( visual );
495 DummyControl actor = DummyControl::New( true );
496 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
497 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
499 Vector2 controlSize( 20.f, 30.f );
502 Stage::GetCurrent().Add( actor );
504 application.SendNotification();
505 application.Render();
507 visual.GetNaturalSize( naturalSize );
509 DALI_TEST_EQUALS( naturalSize, Vector2( 100.0f, 100.0f ), TEST_LOCATION ); // 100x100 is the content default size.
511 actor.SetSize( controlSize );
513 application.SendNotification();
514 application.Render();
516 visual.GetNaturalSize( naturalSize );
518 DALI_TEST_EQUALS( naturalSize, controlSize, TEST_LOCATION );
523 int UtcDaliAnimatedVectorImageVisualLoopCount(void)
525 ToolkitTestApplication application;
526 tet_infoline( "UtcDaliAnimatedVectorImageVisualLoopCount" );
528 Property::Map propertyMap;
529 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
530 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
531 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 );
533 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
534 DALI_TEST_CHECK( visual );
536 DummyControl actor = DummyControl::New( true );
537 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
538 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
540 Vector2 controlSize( 20.f, 30.f );
541 actor.SetSize( controlSize );
543 Stage::GetCurrent().Add( actor );
545 Property::Map attributes;
546 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
548 application.SendNotification();
549 application.Render();
551 // Trigger count is 1 - animation finished
552 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
554 // renderer is added to actor
555 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
556 Renderer renderer = actor.GetRendererAt( 0u );
557 DALI_TEST_CHECK( renderer );
562 int UtcDaliAnimatedVectorImageVisualPlayRange(void)
564 ToolkitTestApplication application;
565 tet_infoline( "UtcDaliAnimatedVectorImageVisualPlayRange" );
567 int startFrame = 3, endFrame = 1;
568 Property::Array array;
569 array.PushBack( startFrame );
570 array.PushBack( endFrame );
572 Property::Map propertyMap;
573 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
574 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
575 .Add( DevelImageVisual::Property::PLAY_RANGE, array );
577 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
578 DALI_TEST_CHECK( visual );
580 DummyControl actor = DummyControl::New( true );
581 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
582 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
584 Vector2 controlSize( 20.f, 30.f );
585 actor.SetSize( controlSize );
587 Stage::GetCurrent().Add( actor );
589 Property::Map attributes;
590 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
592 application.SendNotification();
593 application.Render();
595 // renderer is added to actor
596 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
597 Renderer renderer = actor.GetRendererAt( 0u );
598 DALI_TEST_CHECK( renderer );
600 Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
601 Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_RANGE );
603 int resultStartFrame, resultEndFrame;
604 Property::Array* result = value->GetArray();
605 result->GetElementAt( 0 ).Get( resultStartFrame );
606 result->GetElementAt( 1 ).Get( resultEndFrame );
608 DALI_TEST_EQUALS( startFrame, resultStartFrame, TEST_LOCATION );
609 DALI_TEST_EQUALS( endFrame, resultEndFrame, TEST_LOCATION );
611 // Set invalid play range
613 array.PushBack( -1 );
614 array.PushBack( 100 );
617 attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array );
618 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
620 application.SendNotification();
621 application.Render();
623 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
624 value = map.Find( DevelImageVisual::Property::PLAY_RANGE );
626 result = value->GetArray();
627 result->GetElementAt( 0 ).Get( resultStartFrame );
628 result->GetElementAt( 1 ).Get( resultEndFrame );
630 DALI_TEST_EQUALS( startFrame, resultStartFrame, TEST_LOCATION ); // Should not be changed
631 DALI_TEST_EQUALS( endFrame, resultEndFrame, TEST_LOCATION );
636 int UtcDaliAnimatedVectorImageVisualAnimationFinishedSignal(void)
638 ToolkitTestApplication application;
639 tet_infoline( "UtcDaliAnimatedVectorImageVisualAnimationFinishedSignal" );
641 Property::Map propertyMap;
642 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
643 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
644 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 );
646 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
647 DALI_TEST_CHECK( visual );
649 DummyControl actor = DummyControl::New( true );
650 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
651 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
653 DevelControl::VisualEventSignal( actor ).Connect( &VisualEventSignal );
655 Vector2 controlSize( 20.f, 30.f );
656 actor.SetSize( controlSize );
658 Stage::GetCurrent().Add( actor );
660 Property::Map attributes;
661 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
663 application.SendNotification();
664 application.Render();
666 // Wait for animation finish
667 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
669 Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
670 Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_STATE );
671 DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::STOPPED );
673 DALI_TEST_EQUALS( gAnimationFinishedSignalFired, true, TEST_LOCATION );
678 int UtcDaliAnimatedVectorImageVisualJumpTo(void)
680 ToolkitTestApplication application;
681 tet_infoline( "UtcDaliAnimatedVectorImageVisualJumpTo" );
683 Property::Map propertyMap;
684 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
685 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME );
687 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
688 DALI_TEST_CHECK( visual );
690 DummyControl actor = DummyControl::New( true );
691 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
692 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
694 Vector2 controlSize( 20.f, 30.f );
695 actor.SetSize( controlSize );
697 Stage::GetCurrent().Add( actor );
699 application.SendNotification();
700 application.Render();
702 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 2 );
704 application.SendNotification();
705 application.Render();
707 Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
708 Property::Value* value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
709 DALI_TEST_EQUALS( value->Get< int >(), 2, TEST_LOCATION );
711 Property::Array array;
715 Property::Map attributes;
716 attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array );
717 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
719 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3 );
721 application.SendNotification();
722 application.Render();
724 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
725 value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
726 DALI_TEST_EQUALS( value->Get< int >(), 2, TEST_LOCATION );
735 attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array );
736 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
739 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
741 application.SendNotification();
742 application.Render();
744 // Stop and jump to 3
745 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes );
747 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3 );
749 application.SendNotification();
750 application.Render();
752 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
753 value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
754 DALI_TEST_EQUALS( value->Get< int >(), 3, TEST_LOCATION );
756 // Jump to the same position
757 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3 );
759 application.SendNotification();
760 application.Render();
762 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
763 value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
764 DALI_TEST_EQUALS( value->Get< int >(), 3, TEST_LOCATION );
769 int UtcDaliAnimatedVectorImageVisualUpdateProperty(void)
771 ToolkitTestApplication application;
772 tet_infoline( "UtcDaliAnimatedVectorImageVisualJumpToCurrentProgress" );
774 int startFrame = 1, endFrame = 3;
775 Property::Array playRange;
776 playRange.PushBack( startFrame );
777 playRange.PushBack( endFrame );
779 Property::Map propertyMap;
780 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
781 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
782 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 )
783 .Add( DevelImageVisual::Property::PLAY_RANGE, playRange );
785 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
786 DALI_TEST_CHECK( visual );
788 DummyControl actor = DummyControl::New( true );
789 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
790 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
792 Vector2 controlSize( 20.f, 30.f );
793 actor.SetSize( controlSize );
795 Stage::GetCurrent().Add( actor );
797 application.SendNotification();
798 application.Render();
800 Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
801 Property::Value* value = map.Find( DevelImageVisual::Property::LOOP_COUNT );
802 DALI_TEST_EQUALS( value->Get< int >(), 3, TEST_LOCATION );
804 value = map.Find( DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY );
805 DALI_TEST_CHECK( value );
807 Property::Array* result = value->GetArray();
808 DALI_TEST_CHECK( result );
810 DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == startFrame );
811 DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == endFrame );
814 playRange.PushBack( 0 );
815 playRange.PushBack( 2 );
817 Property::Map attributes;
818 attributes.Add( DevelImageVisual::Property::PLAY_RANGE, playRange );
819 attributes.Add( DevelImageVisual::Property::LOOP_COUNT, 5 );
821 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
823 application.SendNotification();
824 application.Render();
826 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
827 value = map.Find( DevelImageVisual::Property::LOOP_COUNT );
828 DALI_TEST_EQUALS( value->Get< int >(), 5, TEST_LOCATION );
830 value = map.Find( DevelImageVisual::Property::PLAY_RANGE );
831 result = value->GetArray();
832 DALI_TEST_CHECK( result );
834 DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == 0 );
835 DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == 2 );
840 playRange.PushBack( startFrame );
841 playRange.PushBack( endFrame );
843 attributes.Add( DevelImageVisual::Property::PLAY_RANGE, playRange );
845 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
847 application.SendNotification();
848 application.Render();
850 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
851 value = map.Find( DevelImageVisual::Property::PLAY_RANGE );
853 result = value->GetArray();
854 DALI_TEST_CHECK( result );
856 DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == startFrame );
857 DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == endFrame );
862 int UtcDaliAnimatedVectorImageVisualStopBehavior(void)
864 ToolkitTestApplication application;
865 tet_infoline( "UtcDaliAnimatedVectorImageVisualStopBehavior" );
867 Property::Map propertyMap;
868 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
869 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
870 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 )
871 .Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::FIRST_FRAME );
873 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
874 DALI_TEST_CHECK( visual );
876 DummyControl actor = DummyControl::New( true );
877 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
878 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
880 Vector2 controlSize( 20.f, 30.f );
881 actor.SetSize( controlSize );
883 Stage::GetCurrent().Add( actor );
885 Property::Map attributes;
886 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
888 application.SendNotification();
889 application.Render();
891 // Trigger count is 1 - animation finished
892 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
894 Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
895 Property::Value* value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
896 DALI_TEST_EQUALS( value->Get< int >(), 0, TEST_LOCATION ); // Should be the first frame
898 // Change stop behavior
899 attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::LAST_FRAME );
901 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
906 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
908 application.SendNotification();
909 application.Render();
911 // Trigger count is 1 - animation finished
912 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
914 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
916 Property::Value* value1 = map.Find( DevelImageVisual::Property::TOTAL_FRAME_NUMBER );
917 int totalFrameNumber = value1->Get< int >();
919 value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
920 DALI_TEST_EQUALS( value->Get< int >(), totalFrameNumber - 1, TEST_LOCATION ); // Should be the last frame
922 // Change stop behavior
923 attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::CURRENT_FRAME );
924 attributes.Add( DevelImageVisual::Property::LOOP_COUNT, -1 );
926 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
931 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
933 application.SendNotification();
934 application.Render();
937 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, attributes );
939 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
940 value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
941 int currentFrameNumber = value->Get< int >();
944 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes );
946 application.SendNotification();
947 application.Render( 16 );
949 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
950 value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
951 DALI_TEST_EQUALS( value->Get< int >(), currentFrameNumber, TEST_LOCATION ); // Should be same with currentFrameNumber
956 int UtcDaliAnimatedVectorImageVisualLoopingMode(void)
958 ToolkitTestApplication application;
959 tet_infoline( "UtcDaliAnimatedVectorImageVisualLoopingMode" );
961 Property::Map propertyMap;
962 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
963 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
964 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 )
965 .Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::LAST_FRAME )
966 .Add( DevelImageVisual::Property::LOOPING_MODE, DevelImageVisual::LoopingMode::AUTO_REVERSE );
968 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
969 DALI_TEST_CHECK( visual );
971 DummyControl actor = DummyControl::New( true );
972 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
973 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
975 Vector2 controlSize( 20.f, 30.f );
976 actor.SetSize( controlSize );
978 Stage::GetCurrent().Add( actor );
980 Property::Map attributes;
981 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
983 application.SendNotification();
984 application.Render();
986 // Trigger count is 1 - animation finished
987 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
989 Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
990 Property::Value* value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
991 DALI_TEST_EQUALS( value->Get< int >(), 0, TEST_LOCATION ); // Should be the first frame because of auto reverse
993 // Change stop behavior
994 attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::CURRENT_FRAME );
996 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
999 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
1001 application.SendNotification();
1002 application.Render();
1004 // Trigger count is 1 - animation finished
1005 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
1007 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
1008 value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
1009 DALI_TEST_EQUALS( value->Get< int >(), 0, TEST_LOCATION ); // Should be the first frame
1011 // Change looping mode
1012 attributes.Add( DevelImageVisual::Property::LOOPING_MODE, DevelImageVisual::LoopingMode::RESTART );
1014 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes );
1017 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
1019 application.SendNotification();
1020 application.Render();
1022 // Trigger count is 1 - animation finished
1023 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
1025 Property::Value* value1 = map.Find( DevelImageVisual::Property::TOTAL_FRAME_NUMBER );
1026 int totalFrameNumber = value1->Get< int >();
1028 map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
1029 value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER );
1030 DALI_TEST_EQUALS( value->Get< int >(), totalFrameNumber - 1, TEST_LOCATION ); // Should be the last frame
1035 int UtcDaliAnimatedVectorImageVisualPropertyNotification(void)
1037 ToolkitTestApplication application;
1038 tet_infoline( "UtcDaliAnimatedVectorImageVisualPropertyNotification" );
1040 Property::Map propertyMap;
1041 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
1042 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME );
1044 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
1045 DALI_TEST_CHECK( visual );
1047 DummyControl actor = DummyControl::New( true );
1048 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
1049 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
1051 Vector2 controlSize( 20.f, 30.f );
1052 Vector3 controlScale( 2.0f, 2.0f, 1.0f );
1053 actor.SetSize( controlSize );
1054 actor.SetScale( controlScale );
1056 Stage::GetCurrent().Add( actor );
1058 application.SendNotification();
1059 application.Render();
1061 application.SendNotification();
1062 application.Render();
1064 Renderer renderer = actor.GetRendererAt( 0u );
1065 DALI_TEST_CHECK( renderer );
1067 auto textureSet = renderer.GetTextures();
1068 auto texture = textureSet.GetTexture(0);
1070 DALI_TEST_EQUALS( controlSize.width * controlScale.width, texture.GetWidth(), TEST_LOCATION );
1071 DALI_TEST_EQUALS( controlSize.height * controlScale.height, texture.GetHeight(), TEST_LOCATION );
1073 // Change scale and size
1074 controlSize = Vector2( 50.f, 40.f );
1075 controlScale= Vector3( 0.5f, 0.5f, 1.0f );
1076 actor.SetSize( controlSize );
1077 actor.SetScale( controlScale );
1079 application.SendNotification();
1080 application.Render();
1082 application.SendNotification();
1083 application.Render();
1085 renderer = actor.GetRendererAt( 0u );
1086 DALI_TEST_CHECK( renderer );
1088 textureSet = renderer.GetTextures();
1089 texture = textureSet.GetTexture(0);
1091 DALI_TEST_EQUALS( controlSize.width * controlScale.width, texture.GetWidth(), TEST_LOCATION );
1092 DALI_TEST_EQUALS( controlSize.height * controlScale.height, texture.GetHeight(), TEST_LOCATION );