X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali%2Futc-Dali-RenderTask.cpp;h=e5ea26b035cc15d3cf097b7f38ee4403d02e080c;hb=79881246746f65474b24ea4fe14151ccef8df3f4;hp=8067f58686d58a772f25eab4728f1be4364aeabb;hpb=c1df908470fc3dd242fef202248e56009727bca4;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/automated-tests/src/dali/utc-Dali-RenderTask.cpp b/automated-tests/src/dali/utc-Dali-RenderTask.cpp index 8067f58..e5ea26b 100644 --- a/automated-tests/src/dali/utc-Dali-RenderTask.cpp +++ b/automated-tests/src/dali/utc-Dali-RenderTask.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 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. @@ -552,6 +552,41 @@ int UtcDaliRenderTaskSetSourceActorEmpty(void) END_TEST; } +int UtcDaliRenderTaskSetSourceActorDestroyed(void) +{ + TestApplication application; + + tet_infoline( "Testing RenderTask::SetSourceActor - Set a source actor and destroy the source actor" ); + + Stage stage = Stage::GetCurrent(); + RenderTaskList taskList = stage.GetRenderTaskList(); + RenderTask task = taskList.GetTask( 0u ); + + Actor actor = task.GetSourceActor(); + DALI_TEST_CHECK( actor ); + + BufferImage img = BufferImage::New( 1,1 ); + Actor newActor = CreateRenderableActor( img ); + newActor.SetSize(1,1); + stage.Add( newActor ); + + task.SetSourceActor( newActor ); + + DALI_TEST_CHECK( task.GetSourceActor() != actor ); + DALI_TEST_CHECK( task.GetSourceActor() == newActor ); + + application.SendNotification(); + application.Render(); + + // Destroy the source actor + stage.Remove( newActor ); + newActor.Reset(); + + DALI_TEST_CHECK( !task.GetSourceActor() ); // The source actor should be an empty handle. + + END_TEST; +} + int UtcDaliRenderTaskGetSourceActorP01(void) { TestApplication application; @@ -967,6 +1002,29 @@ int UtcDaliRenderTaskSetCameraActorN(void) END_TEST; } +int UtcDaliRenderTaskSetCameraActorDestroyed(void) +{ + TestApplication application; + + tet_infoline( "Testing RenderTask::SetCameraActor - Set a camera actor and destroy the camera actor" ); + + Stage stage = Stage::GetCurrent(); + RenderTaskList taskList = stage.GetRenderTaskList(); + RenderTask task = taskList.GetTask( 0u ); + + CameraActor newCameraActor = CameraActor::New(); + task.SetCameraActor( newCameraActor ); + + DALI_TEST_EQUALS( task.GetCameraActor(), newCameraActor, TEST_LOCATION ); + + // Destroy the camera actor + newCameraActor.Reset(); + + CameraActor camera = task.GetCameraActor(); + DALI_TEST_CHECK( !camera ); // The camera actor should be an empty handle. + + END_TEST; +} int UtcDaliRenderTaskGetCameraActorP(void) { @@ -1125,9 +1183,9 @@ int UtcDaliRenderTaskGetFrameBufferN(void) RenderTask task = taskList.GetTask( 0u ); - // A scene creates frame buffer by default + // By default render-tasks do not render off-screen FrameBuffer frameBuffer = task.GetFrameBuffer(); - DALI_TEST_CHECK( frameBuffer ); + DALI_TEST_CHECK( !frameBuffer ); END_TEST; } @@ -1641,13 +1699,13 @@ int UtcDaliRenderTaskSetClearEnabledP(void) RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); RenderTask task = taskList.GetTask( 0u ); - DALI_TEST_CHECK( !task.GetClearEnabled() ); // defaults to false - - task.SetClearEnabled( true ); - DALI_TEST_EQUALS( task.GetClearEnabled(), true, TEST_LOCATION ); + DALI_TEST_CHECK( task.GetClearEnabled() ); // defaults to true task.SetClearEnabled( false ); DALI_TEST_EQUALS( task.GetClearEnabled(), false, TEST_LOCATION ); + + task.SetClearEnabled( true ); + DALI_TEST_EQUALS( task.GetClearEnabled(), true, TEST_LOCATION ); END_TEST; } @@ -1679,7 +1737,7 @@ int UtcDaliRenderTaskGetClearEnabledP(void) RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); RenderTask task = taskList.GetTask( 0u ); - DALI_TEST_CHECK( !task.GetClearEnabled() ); // defaults to false + DALI_TEST_CHECK( task.GetClearEnabled() ); // defaults to true END_TEST; } @@ -2770,3 +2828,45 @@ int UtcDaliRenderTaskRequiresSync(void) END_TEST; } + +int UtcDaliRenderTaskSetClearEnabled(void) +{ + TestApplication application; + + tet_infoline("UtcDaliRenderTaskSetClearEnabled"); + + application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); + TestGlAbstraction& gl = application.GetGlAbstraction(); + + Actor renderableActor = CreateRenderableActorSuccess( application, "aFile.jpg" ); + Stage::GetCurrent().Add( renderableActor ); + + Actor rootActor = Actor::New(); + Stage::GetCurrent().Add( rootActor ); + + CameraActor offscreenCameraActor = CameraActor::New( Size( TestApplication::DEFAULT_SURFACE_WIDTH, TestApplication::DEFAULT_SURFACE_HEIGHT ) ); + Stage::GetCurrent().Add( offscreenCameraActor ); + + Actor sourceActor = CreateRenderableActorSuccess( application, "aFile.jpg" ); + Stage::GetCurrent().Add( sourceActor ); + + RenderTask newTask = CreateRenderTask( application, offscreenCameraActor, rootActor, sourceActor, RenderTask::REFRESH_ALWAYS, false ); + + DALI_TEST_EQUALS( gl.GetClearCountCalled(), 0, TEST_LOCATION ); + + application.SendNotification(); + application.Render(); + + // glClear should be called twice - default task and the new task. + DALI_TEST_EQUALS( gl.GetClearCountCalled(), 2, TEST_LOCATION ); + + newTask.SetClearEnabled( false ); + + application.SendNotification(); + application.Render(); + + // The count should increase by 1 - default task only. + DALI_TEST_EQUALS( gl.GetClearCountCalled(), 3, TEST_LOCATION ); + + END_TEST; +}