mSurfaceHeight( surfaceHeight ),
mFrame( 0u ),
mDpi( horizontalDpi, verticalDpi ),
+ mLastVSyncTime(0u),
mDataRetentionPolicy( policy )
{
if ( initialize )
void TestApplication::Initialize()
{
+ // We always need the first update!
+ mStatus.keepUpdating = Integration::KeepUpdating::STAGE_KEEP_RENDERING;
+
mCore = Dali::Integration::Core::New(
mRenderController,
mPlatformAbstraction,
Dali::Integration::Log::LogFunction logFunction(&TestApplication::LogMessage);
Dali::Integration::Log::InstallLogFunction(logFunction);
+
+ mCore->SceneCreated();
}
TestApplication::~TestApplication()
void TestApplication::DoUpdate( unsigned int intervalMilliseconds )
{
- unsigned int seconds(0u), microseconds(0u);
- mPlatformAbstraction.GetTimeMicroseconds( seconds, microseconds );
- mLastVSyncTime = ( seconds * 1e3 ) + ( microseconds / 1e3 );
- unsigned int nextVSyncTime = mLastVSyncTime + 16;
-
- // Update Time values
- mPlatformAbstraction.IncrementGetTimeResult( intervalMilliseconds );
+ if( GetUpdateStatus() == 0 &&
+ mRenderStatus.NeedsUpdate() == false &&
+ ! GetRenderController().WasCalled(TestRenderController::RequestUpdateFunc) )
+ {
+ fprintf(stderr, "WARNING - Update not required\n");
+ }
+ unsigned int nextVSyncTime = mLastVSyncTime + intervalMilliseconds;
float elapsedSeconds = intervalMilliseconds / 1e3f;
+
mCore->Update( elapsedSeconds, mLastVSyncTime, nextVSyncTime, mStatus );
+
+ GetRenderController().Initialize();
+
+ mLastVSyncTime = nextVSyncTime;
}
bool TestApplication::Render( unsigned int intervalMilliseconds )
return mStatus.KeepUpdating();
}
+bool TestApplication::GetRenderNeedsUpdate()
+{
+ return mRenderStatus.NeedsUpdate();
+}
+bool TestApplication::GetRenderHasRendered()
+{
+ return mRenderStatus.HasRendered();
+}
+
bool TestApplication::RenderOnly( )
{
// Update Time values