X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali%2Futc-Dali-RenderTask.cpp;h=a83a92e55ba5290de1719798df9ef7056114d4db;hb=151c243df781c5e8948268f60f009a2426ac60c6;hp=8cc7e8f4a7b8198bb4bf74ad4cb97cb26039d228;hpb=7f9bd77c1b3c3ddb6b496510ea1f35b16b5bc16d;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 8cc7e8f..a83a92e 100644 --- a/automated-tests/src/dali/utc-Dali-RenderTask.cpp +++ b/automated-tests/src/dali/utc-Dali-RenderTask.cpp @@ -28,6 +28,7 @@ #define BOOLSTR(x) ((x)?"T":"F") +//& set: DaliRenderTask using namespace Dali; @@ -257,10 +258,13 @@ RenderTask CreateRenderTask(TestApplication& application, return newTask; } -bool UpdateRender(TestApplication& application, TraceCallStack& callStack, bool testDrawn, bool& finishedSig, bool testFinished, bool testKeepUpdating ) +bool UpdateRender(TestApplication& application, TraceCallStack& callStack, bool testDrawn, bool& finishedSig, bool testFinished, bool testKeepUpdating, int lineNumber ) { finishedSig = false; callStack.Reset(); + + tet_printf("TestApplication::UpdateRender().\n"); + application.Render(16); application.SendNotification(); @@ -299,10 +303,11 @@ bool UpdateRender(TestApplication& application, TraceCallStack& callStack, bool bool result = (sigPassed && drawPassed && keepUpdatingPassed); - tet_printf("UpdateRender: Expected: Draw:%s Signal:%s Keep Updating: %s Actual: Draw:%s Signal:%s KeepUpdating: %s %s\n", + tet_printf("UpdateRender: Expected: Draw:%s Signal:%s KeepUpdating: %s Actual: Draw:%s Signal:%s KeepUpdating: %s %s, line %d\n", BOOLSTR(testDrawn), BOOLSTR(testFinished), BOOLSTR(testKeepUpdating), BOOLSTR(drawResult), BOOLSTR(finishedSig), BOOLSTR(keepUpdating), - result ? "Passed":"Failed"); + result ? "Passed":"Failed", + lineNumber ); return result; } @@ -856,7 +861,7 @@ int UtcDaliRenderTaskSetExclusive02(void) application.SendNotification(); application.Render(); - DALI_TEST_EQUALS( drawTrace.CountMethod("DrawArrays"), 1, TEST_LOCATION ); + DALI_TEST_EQUALS( drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION ); // Set task to non-exclusive - actor1 should render twice: drawTrace.Reset(); @@ -864,7 +869,7 @@ int UtcDaliRenderTaskSetExclusive02(void) application.SendNotification(); application.Render(); - DALI_TEST_EQUALS( drawTrace.CountMethod("DrawArrays"), 2, TEST_LOCATION ); + DALI_TEST_EQUALS( drawTrace.CountMethod("DrawElements"), 2, TEST_LOCATION ); END_TEST; } @@ -1737,6 +1742,7 @@ int UtcDaliRenderTaskSignalFinished(void) Stage::GetCurrent().Add( offscreenCameraActor ); BufferImage image = BufferImage::New( 10, 10 ); + image.Update(); ImageActor rootActor = ImageActor::New( image ); rootActor.SetSize( 10, 10 ); Stage::GetCurrent().Add( rootActor ); @@ -1745,10 +1751,6 @@ int UtcDaliRenderTaskSignalFinished(void) NativeImageInterfacePtr testNativeImagePtr = TestNativeImage::New(10, 10); FrameBufferImage frameBufferImage = FrameBufferImage::New( *testNativeImagePtr.Get() ); - // Flush all outstanding messages - application.SendNotification(); - application.Render(); - RenderTask newTask = taskList.CreateTask(); newTask.SetCameraActor( offscreenCameraActor ); newTask.SetSourceActor( rootActor ); @@ -1759,8 +1761,6 @@ int UtcDaliRenderTaskSignalFinished(void) newTask.SetRefreshRate( RenderTask::REFRESH_ONCE ); newTask.SetTargetFrameBuffer( frameBufferImage ); - // Framebuffer doesn't actually get created until Connected, i.e. by previous line - bool finished = false; RenderTaskFinished renderTaskFinished( finished ); newTask.FinishedSignal().Connect( &application, renderTaskFinished ); @@ -1799,9 +1799,7 @@ int UtcDaliRenderTaskSignalFinished(void) DALI_TEST_CHECK( finished ); finished = false; - application.Render(); // Double check no more finished signal - application.SendNotification(); - DALI_TEST_CHECK( ! finished ); + DALI_TEST_EQUALS( application.GetUpdateStatus(), 0, TEST_LOCATION ); END_TEST; } @@ -1836,7 +1834,7 @@ int UtcDaliRenderTaskContinuous01(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected, KeepUpdating - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, false, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); // ADD SOURCE ACTOR TO STAGE - expect continuous renders to start, no finished signal @@ -1844,7 +1842,7 @@ int UtcDaliRenderTaskContinuous01(void) application.SendNotification(); // CONTINUE PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); END_TEST; } @@ -1881,7 +1879,7 @@ int UtcDaliRenderTaskContinuous02(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected, KeepUpdating - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, false, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); // MAKE SOURCE ACTOR VISIBLE - expect continuous renders to start, no finished signal @@ -1889,7 +1887,7 @@ int UtcDaliRenderTaskContinuous02(void) application.SendNotification(); // CONTINUE PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); END_TEST; } @@ -1922,7 +1920,7 @@ int UtcDaliRenderTaskContinuous03(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, false, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); // ADD CAMERA ACTOR TO STAGE - expect continuous renders to start, no finished signal @@ -1930,7 +1928,7 @@ int UtcDaliRenderTaskContinuous03(void) application.SendNotification(); // CONTINUE PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); END_TEST; } @@ -1964,12 +1962,12 @@ int UtcDaliRenderTaskContinuous04(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING - expect 'continuous' renders to start, no finished signal CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); END_TEST; } @@ -2012,12 +2010,12 @@ int UtcDaliRenderTaskContinous05(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING - expect 'continuous' renders to start, no finished signal CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); END_TEST; } @@ -2054,26 +2052,26 @@ int UtcDaliRenderTaskOnce01(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // MAKE SOURCE VISIBLE secondRootActor.SetVisible(true); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING - expect no rendering yet CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2101,7 +2099,7 @@ int UtcDaliRenderTaskOnce02(void) Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest(); Integration::ResourceId imageRequestId = imageRequest->GetId(); Integration::ResourceTypeId imageType = imageRequest->GetType()->id; - material.AddTexture( image, "sTexture" ); + material.AddTexture( image, "sTexture"); Geometry geometry = CreateQuadGeometry(); Renderer renderer = Renderer::New(geometry, material); @@ -2117,20 +2115,20 @@ int UtcDaliRenderTaskOnce02(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING - expect no rendering yet CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2167,27 +2165,27 @@ int UtcDaliRenderTaskOnce03(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); // Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2234,27 +2232,27 @@ int UtcDaliRenderTaskOnce04(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); // Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2292,18 +2290,18 @@ int UtcDaliRenderTaskOnce05(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // CHANGE TO RENDER ONCE newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); // Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); application.GetPlatform().ClearReadyResources(); @@ -2313,13 +2311,13 @@ int UtcDaliRenderTaskOnce05(void) // Expect: No draw - we've just drawn our render task once, above. No finished signal - // we won't read the gl sync until the next frame. Continue rendering - we're waiting for // the sync - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // Expect: 1 final draw - this Update doesn't update the scene, hence render instructions // from last frame but 1 are still present. // Finished signal should be true - we've just done the sync. // Should now stop rendering and updating - nothing left to do. - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2362,8 +2360,8 @@ int UtcDaliRenderTaskOnce05(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); // CHANGE TO RENDER ONCE, RESOURCES BECOME NOT READY newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); @@ -2372,29 +2370,29 @@ int UtcDaliRenderTaskOnce05(void) ReloadImage(application, secondRootActor.GetImage()); application.SendNotification(); // Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); DALI_TEST_EQUALS( secondRootActor.GetImage().GetLoadingState(), Dali::ResourceLoading, TEST_LOCATION); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, true, __LINE__ ) ); // Finished rendering - expect no more renders, no more signals: - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); END_TEST; } #endif @@ -2436,31 +2434,31 @@ int UtcDaliRenderTaskOnce07(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); // CHANGE TO RENDER ONCE, newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2479,6 +2477,7 @@ int UtcDaliRenderTaskOnce08(void) application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction(); TraceCallStack& drawTrace = application.GetGlAbstraction().GetDrawTrace(); + sync.GetTrace().Enable(true); drawTrace.Enable(true); Actor rootActor = Actor::New(); @@ -2496,7 +2495,7 @@ int UtcDaliRenderTaskOnce08(void) Stage::GetCurrent().Add(secondRootActor); - RenderTask newTask = CreateRenderTask(application, offscreenCameraActor, rootActor, secondRootActor, RenderTask::REFRESH_ALWAYS, true); + RenderTask newTask = CreateRenderTask(application, offscreenCameraActor, rootActor, secondRootActor, RenderTask::REFRESH_ALWAYS, /*GL-SYNC*/ true); bool finished = false; ConnectionTracker connectionTracker; @@ -2506,23 +2505,35 @@ int UtcDaliRenderTaskOnce08(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj == NULL ); + DALI_TEST_EQUALS( sync.GetTrace().CountMethod( "CreateSyncObject" ), 0, TEST_LOCATION ); + // CHANGE TO RENDER ONCE, newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); + DALI_TEST_EQUALS( sync.GetNumberOfSyncObjects(), 1, TEST_LOCATION ); + DALI_TEST_EQUALS( sync.GetTrace().CountMethod( "CreateSyncObject" ), 1, TEST_LOCATION ); + + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_EQUALS( sync.GetNumberOfSyncObjects(), 1, TEST_LOCATION ); + DALI_TEST_EQUALS( sync.GetTrace().CountMethod( "CreateSyncObject" ), 1, TEST_LOCATION ); + + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + + DALI_TEST_EQUALS( sync.GetNumberOfSyncObjects(), 1, TEST_LOCATION ); + DALI_TEST_EQUALS( sync.GetTrace().CountMethod( "CreateSyncObject" ), 1, TEST_LOCATION ); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); application.SendNotification(); // Expect SetRefreshRate to have been called again @@ -2530,13 +2541,13 @@ int UtcDaliRenderTaskOnce08(void) RenderTaskFinished renderTaskFinished( finished ); connectionTracker.DisconnectAll(); newTask.FinishedSignal().Connect( &connectionTracker, renderTaskFinished ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2578,26 +2589,26 @@ int UtcDaliRenderTaskOnce09(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); // CHANGE TO RENDER ONCE, newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); DALI_TEST_CHECK( lastSyncObj != NULL ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); sync.SetObjectSynced( lastSyncObj, true ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2613,7 +2624,6 @@ int UtcDaliRenderTaskOnce10(void) // SETUP A CONTINUOUS OFFSCREEN RENDER TASK application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); - TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction(); TraceCallStack& drawTrace = application.GetGlAbstraction().GetDrawTrace(); drawTrace.Enable(true); @@ -2627,39 +2637,33 @@ int UtcDaliRenderTaskOnce10(void) Integration::ResourceId imageRequestId = imageRequest->GetId(); Stage::GetCurrent().Add(secondRootActor); - RenderTask newTask = CreateRenderTask(application, offscreenCameraActor, rootActor, secondRootActor, RenderTask::REFRESH_ALWAYS, true); + RenderTask newTask = CreateRenderTask(application, offscreenCameraActor, rootActor, secondRootActor, RenderTask::REFRESH_ALWAYS, false); bool finished = false; RenderTaskFinished renderTaskFinished( finished ); newTask.FinishedSignal().Connect( &application, renderTaskFinished ); application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // CHANGE TO RENDER ONCE, newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); tet_printf(" FailImageLoad\n"); FailImageLoad(application, imageRequestId); // Need to run Update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); // nothing to draw + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // nothing to draw application.SendNotification(); - // Drawing empty framebuffer, so will still get a GL sync - Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); - DALI_TEST_CHECK( lastSyncObj != NULL ); - - sync.SetObjectSynced( lastSyncObj, true ); - + // load is now failed so there's nothing more to render in the render task // Expect finished signal, as all resources are complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2694,14 +2698,14 @@ int UtcDaliRenderTaskOnceNoSync01(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING - expect immediate rendering yet CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2727,7 +2731,7 @@ int UtcDaliRenderTaskOnceNoSync02(void) Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest(); Integration::ResourceId imageRequestId = imageRequest->GetId(); Integration::ResourceTypeId imageType = imageRequest->GetType()->id; - material.AddTexture(image, "sTexture" ); + material.AddTexture( image, "sTexture"); Geometry geometry = CreateQuadGeometry(); Renderer renderer = Renderer::New(geometry, material); @@ -2743,14 +2747,14 @@ int UtcDaliRenderTaskOnceNoSync02(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING - expect immediate rendering yet CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2786,18 +2790,18 @@ int UtcDaliRenderTaskOnceNoSync03(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); // Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2843,18 +2847,29 @@ int UtcDaliRenderTaskOnceNoSync04(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + + TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction(); + Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); + DALI_TEST_CHECK( lastSyncObj == NULL ); // FINISH RESOURCE LOADING CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); + lastSyncObj = sync.GetLastSyncObject(); + DALI_TEST_CHECK( lastSyncObj == NULL ); + newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); // Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); + + lastSyncObj = sync.GetLastSyncObject(); + DALI_TEST_CHECK( lastSyncObj == NULL ); + END_TEST; } @@ -2889,21 +2904,25 @@ int UtcDaliRenderTaskOnceNoSync05(void) newTask.FinishedSignal().Connect( &application, renderTaskFinished ); application.SendNotification(); + TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction(); + Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject(); + DALI_TEST_CHECK( lastSyncObj == NULL ); + // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // CHANGE TO RENDER ONCE newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); // Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -2944,8 +2963,8 @@ int UtcDaliRenderTaskOnceNoSync05(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); // CHANGE TO RENDER ONCE, RESOURCES BECOME NOT READY newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); @@ -2954,18 +2973,18 @@ int UtcDaliRenderTaskOnceNoSync05(void) ReloadImage(application, secondRootActor.GetImage()); application.SendNotification(); // Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); DALI_TEST_EQUALS( secondRootActor.GetImage().GetLoadingState(), Dali::ResourceLoading, TEST_LOCATION); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // FINISH RESOURCE LOADING CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, true, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, true, true, __LINE__ ) ); application.GetPlatform().ClearReadyResources(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); END_TEST; } #endif @@ -3006,18 +3025,18 @@ int UtcDaliRenderTaskOnceNoSync07(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); // CHANGE TO RENDER ONCE, newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -3062,13 +3081,13 @@ int UtcDaliRenderTaskOnceNoSync08(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); // CHANGE TO RENDER ONCE, newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); // Expect SetRefreshRate to have been called again // Prevent next finished signal calling refresh once again @@ -3076,8 +3095,8 @@ int UtcDaliRenderTaskOnceNoSync08(void) connectionTracker.DisconnectAll(); newTask.FinishedSignal().Connect( &connectionTracker, renderTaskFinished ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -3118,18 +3137,18 @@ int UtcDaliRenderTaskOnceNoSync09(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) ); // CHANGE TO RENDER ONCE, newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -3164,19 +3183,19 @@ int UtcDaliRenderTaskOnceNoSync10(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // CHANGE TO RENDER ONCE, newTask.SetRefreshRate(RenderTask::REFRESH_ONCE); application.SendNotification(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); FailImageLoad(application, imageRequestId); // Need to run Update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true ) ); // nothing to draw - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) ); // nothing to draw + DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) ); END_TEST; } @@ -3226,17 +3245,23 @@ int UtcDaliRenderTaskOnceChain01(void) application.SendNotification(); // START PROCESS/RENDER Input, Expected Input, Expected - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, firstFinished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, firstFinished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( firstFinished == false ); DALI_TEST_CHECK( secondFinished == false ); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, firstFinished, false, true ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, firstFinished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( firstFinished == false ); DALI_TEST_CHECK( secondFinished == false ); - CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete - DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, firstFinished, false, true ) ); + CompleteImageLoad(application, imageRequestId, imageType); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, firstFinished, false, true, __LINE__ ) ); + DALI_TEST_CHECK( firstFinished == false ); + DALI_TEST_CHECK( secondFinished == false ); + + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, firstFinished, true, true, __LINE__ ) ); + DALI_TEST_CHECK( firstFinished == true ); DALI_TEST_CHECK( secondFinished == false ); - application.GetPlatform().ClearReadyResources(); - DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, firstFinished, true, false ) ); + DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, secondFinished, true, false, __LINE__ ) ); DALI_TEST_CHECK( secondFinished == true ); END_TEST; @@ -3331,7 +3356,7 @@ int UtcDaliRenderTaskFinishInvisibleSourceActor(void) { TestApplication application; - tet_infoline("Testing RenderTask::SignalFinished()"); + tet_infoline("Testing RenderTask::FinishInvisibleSourceActor()"); application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction(); @@ -3451,3 +3476,99 @@ int UtcDaliRenderTaskFinishMissingImage(void) END_TEST; } + +int UtcDaliRenderTaskWorldToViewport(void) +{ + TestApplication application( static_cast(400), static_cast(400) ); // square surface + + RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); + + Actor actor = Actor::New(); + actor.SetSize(100.0f, 100.0f); + actor.SetPosition( Vector3(0.0, 0.0, 0.0) ); + + actor.SetParentOrigin( Vector3(0.5, 0.5, 0.5) ); + actor.SetAnchorPoint( Vector3(0.5, 0.5, 0.5) ); + + Stage::GetCurrent().Add(actor); + + application.SendNotification(); + application.Render(); + application.SendNotification(); + + RenderTask task = taskList.GetTask( 0u ); + + CameraActor camera = task.GetCameraActor(); + + Vector2 screenSize = task.GetCurrentViewportSize(); + + float screenX = 0.0; + float screenY = 0.0; + + bool ok = task.WorldToViewport(actor.GetCurrentWorldPosition(), screenX, screenY); + DALI_TEST_CHECK(ok == true); + + DALI_TEST_EQUALS(screenX, screenSize.x/2, Math::MACHINE_EPSILON_10000, TEST_LOCATION); + DALI_TEST_EQUALS(screenY, screenSize.y/2, Math::MACHINE_EPSILON_10000, TEST_LOCATION); + + Actor actor2 = Actor::New(); + float actor2Size = 100.f; + actor2.SetSize( actor2Size, actor2Size ); + actor2.SetPosition( Vector3(0.0, 0.0, 0.0) ); + actor2.SetParentOrigin( Vector3(0.5, 0.5, 0.0) ); + actor2.SetAnchorPoint( Vector3(0.5, 0.5, 0.0) ); + Stage::GetCurrent().Add( actor2 ); + actor2.Add(actor); + actor.SetParentOrigin( Vector3(0,0,0) ); + + application.SendNotification(); + application.Render(); + application.SendNotification(); + + ok = task.WorldToViewport(actor.GetCurrentWorldPosition(), screenX, screenY); + DALI_TEST_CHECK(ok == true); + + DALI_TEST_EQUALS(screenX, screenSize.x/2 - actor2Size/2, Math::MACHINE_EPSILON_10000, TEST_LOCATION); + DALI_TEST_EQUALS(screenY, screenSize.y/2 - actor2Size/2, Math::MACHINE_EPSILON_10000, TEST_LOCATION); + + END_TEST; +} + + +int UtcDaliRenderTaskViewportToLocal(void) +{ + TestApplication application; + Actor actor = Actor::New(); + actor.SetAnchorPoint(AnchorPoint::TOP_LEFT); + actor.SetSize(100.0f, 100.0f); + actor.SetPosition(10.0f, 10.0f); + Stage::GetCurrent().Add(actor); + + RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); + RenderTask task = taskList.GetTask( 0u ); + + // flush the queue and render once + application.SendNotification(); + application.Render(); + application.SendNotification(); + application.Render(); + + float localX; + float localY; + + float rtLocalX; + float rtLocalY; + + float screenX = 50.0f; + float screenY = 50.0f; + + DALI_TEST_CHECK( actor.ScreenToLocal(localX, localY, screenX, screenY) ); + + DALI_TEST_CHECK( task.ViewportToLocal(actor, screenX, screenY, rtLocalX, rtLocalY ) ); + + DALI_TEST_EQUALS(localX, rtLocalX, 0.01f, TEST_LOCATION); + DALI_TEST_EQUALS(localY, rtLocalY, 0.01f, TEST_LOCATION); + + END_TEST; + +}