mUpdateStatusLogger( environmentOptions ),
mEventThreadSemaphore(),
mGraphicsInitializeSemaphore(),
+ mSurfaceSemaphore(),
mUpdateRenderThreadWaitCondition(),
mAdaptorInterfaces( adaptorInterfaces ),
mPerformanceInterface( adaptorInterfaces.GetPerformanceInterface() ),
// Initialize to 0 so that it just waits if sem_post has not been called
sem_init( &mEventThreadSemaphore, 0, 0 );
sem_init( &mGraphicsInitializeSemaphore, 0, 0 );
+ sem_init( &mSurfaceSemaphore, 0, 0 );
}
CombinedUpdateRenderController::~CombinedUpdateRenderController()
}
// Wait until the surface has been replaced
- sem_wait( &mEventThreadSemaphore );
+ sem_wait( &mSurfaceSemaphore );
LOG_EVENT( "Surface replaced, event-thread continuing" );
}
}
// Wait until the surface has been deleted
- sem_wait( &mEventThreadSemaphore );
+ sem_wait( &mSurfaceSemaphore );
LOG_EVENT( "Surface deleted, event-thread continuing" );
}
// clear previous frame damaged render items rects, buffer history is tracked on surface level
mDamagedRects.clear();
- // If user damaged areas are not set
- if (!eglImpl.DamageAreasSet())
- {
- // Collect damage rects
- mCore.PreRender( scene, mDamagedRects );
- }
+ // Collect damage rects
+ mCore.PreRender( scene, mDamagedRects );
// Render off-screen frame buffers first if any
mCore.RenderScene( windowRenderStatus, scene, true );
void CombinedUpdateRenderController::SurfaceReplaced()
{
// Just increment the semaphore
- sem_post( &mEventThreadSemaphore );
+ sem_post( &mSurfaceSemaphore );
}
Dali::RenderSurfaceInterface* CombinedUpdateRenderController::ShouldSurfaceBeDeleted()
void CombinedUpdateRenderController::SurfaceDeleted()
{
// Just increment the semaphore
- sem_post( &mEventThreadSemaphore );
+ sem_post( &mSurfaceSemaphore );
}
bool CombinedUpdateRenderController::ShouldSurfaceBeResized()