X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftest-application.cpp;h=a247f7dfe28897490d306cc4cc328fd7c49fb7e5;hp=ea7e48e8683f0b1a88a6c7e7a939894e1af69ec0;hb=1f172503d4866758631ed95c7c4687ad6d10f1d0;hpb=d5e3ed5f5b1c8fdba3ae97ead8729620f54b3836 diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-application.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-application.cpp index ea7e48e..a247f7d 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-application.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-application.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 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. @@ -24,12 +24,15 @@ namespace Dali TestApplication::TestApplication( size_t surfaceWidth, size_t surfaceHeight, float horizontalDpi, - float verticalDpi) + float verticalDpi, + ResourcePolicy::DataRetention policy) : mCore( NULL ), mSurfaceWidth( surfaceWidth ), mSurfaceHeight( surfaceHeight ), mFrame( 0u ), - mDpi( horizontalDpi, verticalDpi ) + mDpi( horizontalDpi, verticalDpi ), + mLastVSyncTime(0u), + mDataRetentionPolicy( policy ) { Initialize(); } @@ -38,12 +41,15 @@ TestApplication::TestApplication( bool initialize, size_t surfaceWidth, size_t surfaceHeight, float horizontalDpi, - float verticalDpi ) + float verticalDpi, + ResourcePolicy::DataRetention policy) : mCore( NULL ), mSurfaceWidth( surfaceWidth ), mSurfaceHeight( surfaceHeight ), mFrame( 0u ), - mDpi( horizontalDpi, verticalDpi ) + mDpi( horizontalDpi, verticalDpi ), + mLastVSyncTime(0u), + mDataRetentionPolicy( policy ) { if ( initialize ) { @@ -53,12 +59,18 @@ TestApplication::TestApplication( bool initialize, void TestApplication::Initialize() { - mCore = Dali::Integration::Core::New( - mRenderController, - mPlatformAbstraction, - mGlAbstraction, - mGlSyncAbstraction, - mGestureManager ); + // We always need the first update! + mStatus.keepUpdating = Integration::KeepUpdating::STAGE_KEEP_RENDERING; + + mCore = Dali::Integration::Core::New( mRenderController, + mPlatformAbstraction, + mGlAbstraction, + mGlSyncAbstraction, + mGestureManager, + mDataRetentionPolicy, + Integration::RenderToFrameBuffer::FALSE, + Integration::DepthBufferAvailable::TRUE, + Integration::StencilBufferAvailable::TRUE ); mCore->ContextCreated(); mCore->SurfaceResized( mSurfaceWidth, mSurfaceHeight ); @@ -66,6 +78,8 @@ void TestApplication::Initialize() Dali::Integration::Log::LogFunction logFunction(&TestApplication::LogMessage); Dali::Integration::Log::InstallLogFunction(logFunction); + + mCore->SceneCreated(); } TestApplication::~TestApplication() @@ -142,15 +156,33 @@ void TestApplication::SetSurfaceWidth( unsigned int width, unsigned height ) mCore->SurfaceResized( mSurfaceWidth, mSurfaceHeight ); } -bool TestApplication::Render( unsigned int intervalMilliseconds ) +void TestApplication::SetTopMargin( unsigned int margin ) { - // Update Time values - mPlatformAbstraction.IncrementGetTimeResult( intervalMilliseconds ); - unsigned int seconds(0u), microseconds(0u); - mPlatformAbstraction.GetTimeMicroseconds( seconds, microseconds ); + mCore->SetTopMargin( margin ); +} + +void TestApplication::DoUpdate( unsigned int intervalMilliseconds, const char* location ) +{ + if( GetUpdateStatus() == 0 && + mRenderStatus.NeedsUpdate() == false && + ! GetRenderController().WasCalled(TestRenderController::RequestUpdateFunc) ) + { + fprintf(stderr, "WARNING - Update not required :%s\n", location==NULL?"NULL":location); + } + + unsigned int nextVSyncTime = mLastVSyncTime + intervalMilliseconds; + float elapsedSeconds = intervalMilliseconds / 1e3f; + + mCore->Update( elapsedSeconds, mLastVSyncTime, nextVSyncTime, mStatus, false, false ); + + GetRenderController().Initialize(); + + mLastVSyncTime = nextVSyncTime; +} - mCore->VSync( mFrame, seconds, microseconds ); - mCore->Update( mStatus ); +bool TestApplication::Render( unsigned int intervalMilliseconds, const char* location ) +{ + DoUpdate( intervalMilliseconds, location ); mCore->Render( mRenderStatus ); mFrame++; @@ -165,17 +197,15 @@ unsigned int TestApplication::GetUpdateStatus() bool TestApplication::UpdateOnly( unsigned int intervalMilliseconds ) { - // Update Time values - mPlatformAbstraction.IncrementGetTimeResult( intervalMilliseconds ); - unsigned int seconds(0u), microseconds(0u); - mPlatformAbstraction.GetTimeMicroseconds( seconds, microseconds ); - - mCore->VSync( mFrame, seconds, microseconds ); - mCore->Update( mStatus ); - + DoUpdate( intervalMilliseconds ); return mStatus.KeepUpdating(); } +bool TestApplication::GetRenderNeedsUpdate() +{ + return mRenderStatus.NeedsUpdate(); +} + bool TestApplication::RenderOnly( ) { // Update Time values @@ -188,9 +218,22 @@ bool TestApplication::RenderOnly( ) void TestApplication::ResetContext() { - mCore->ContextToBeDestroyed(); + mCore->ContextDestroyed(); + mGlAbstraction.Initialize(); mCore->ContextCreated(); } +unsigned int TestApplication::Wait( unsigned int durationToWait ) +{ + int time = 0; + + for(unsigned int i = 0; i <= ( durationToWait / RENDER_FRAME_INTERVAL); i++) + { + SendNotification(); + Render(RENDER_FRAME_INTERVAL); + time += RENDER_FRAME_INTERVAL; + } + return time; +} } // Namespace dali