X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fadaptor%2Fcommon%2Fcombined-update-render-controller.cpp;h=eb2897560fc38d20b61a19d954843631ad554551;hb=d9fbc408f645a0ed6404a23c680bdd74d4d8e490;hp=b514cb6c9a763b919a31856848eaca961336e52a;hpb=788d84d02fec3b0cbc76c1d881b6c2d1be97ce03;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/adaptor/common/combined-update-render-controller.cpp b/dali/internal/adaptor/common/combined-update-render-controller.cpp index b514cb6..eb28975 100644 --- a/dali/internal/adaptor/common/combined-update-render-controller.cpp +++ b/dali/internal/adaptor/common/combined-update-render-controller.cpp @@ -94,6 +94,7 @@ CombinedUpdateRenderController::CombinedUpdateRenderController( AdaptorInternalS mUpdateStatusLogger( environmentOptions ), mEventThreadSemaphore(), mGraphicsInitializeSemaphore(), + mSurfaceSemaphore(), mUpdateRenderThreadWaitCondition(), mAdaptorInterfaces( adaptorInterfaces ), mPerformanceInterface( adaptorInterfaces.GetPerformanceInterface() ), @@ -140,6 +141,7 @@ CombinedUpdateRenderController::CombinedUpdateRenderController( AdaptorInternalS // 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() @@ -319,7 +321,7 @@ void CombinedUpdateRenderController::ReplaceSurface( Dali::RenderSurfaceInterfac } // Wait until the surface has been replaced - sem_wait( &mEventThreadSemaphore ); + sem_wait( &mSurfaceSemaphore ); LOG_EVENT( "Surface replaced, event-thread continuing" ); } @@ -342,7 +344,7 @@ void CombinedUpdateRenderController::DeleteSurface( Dali::RenderSurfaceInterface } // Wait until the surface has been deleted - sem_wait( &mEventThreadSemaphore ); + sem_wait( &mSurfaceSemaphore ); LOG_EVENT( "Surface deleted, event-thread continuing" ); } @@ -748,12 +750,8 @@ void CombinedUpdateRenderController::UpdateRenderThread() // 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 ); @@ -944,7 +942,7 @@ Dali::RenderSurfaceInterface* CombinedUpdateRenderController::ShouldSurfaceBeRep void CombinedUpdateRenderController::SurfaceReplaced() { // Just increment the semaphore - sem_post( &mEventThreadSemaphore ); + sem_post( &mSurfaceSemaphore ); } Dali::RenderSurfaceInterface* CombinedUpdateRenderController::ShouldSurfaceBeDeleted() @@ -960,7 +958,7 @@ Dali::RenderSurfaceInterface* CombinedUpdateRenderController::ShouldSurfaceBeDel void CombinedUpdateRenderController::SurfaceDeleted() { // Just increment the semaphore - sem_post( &mEventThreadSemaphore ); + sem_post( &mSurfaceSemaphore ); } bool CombinedUpdateRenderController::ShouldSurfaceBeResized()