From 8814a02ff69d5f5dba9a021dae254113d9c723a0 Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Wed, 31 Jan 2018 18:40:14 +0900 Subject: [PATCH] Force to clear on the framebuffer after resume Change-Id: I8e1f48f71456bfbbfa934093bf2da23ee5e8bf51 --- .../src/dali-adaptor/dali-test-suite-utils/test-application.cpp | 4 ++-- .../internal/adaptor/common/combined-update-render-controller.cpp | 8 ++++++-- dali/internal/adaptor/common/combined-update-render-controller.h | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-application.cpp b/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-application.cpp index a247f7d..0e640e7 100644 --- a/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-application.cpp +++ b/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-application.cpp @@ -183,7 +183,7 @@ void TestApplication::DoUpdate( unsigned int intervalMilliseconds, const char* l bool TestApplication::Render( unsigned int intervalMilliseconds, const char* location ) { DoUpdate( intervalMilliseconds, location ); - mCore->Render( mRenderStatus ); + mCore->Render( mRenderStatus, false ); mFrame++; @@ -209,7 +209,7 @@ bool TestApplication::GetRenderNeedsUpdate() bool TestApplication::RenderOnly( ) { // Update Time values - mCore->Render( mRenderStatus ); + mCore->Render( mRenderStatus, false ); mFrame++; diff --git a/dali/internal/adaptor/common/combined-update-render-controller.cpp b/dali/internal/adaptor/common/combined-update-render-controller.cpp index a0ca5f5..31cf0fd 100644 --- a/dali/internal/adaptor/common/combined-update-render-controller.cpp +++ b/dali/internal/adaptor/common/combined-update-render-controller.cpp @@ -108,7 +108,8 @@ CombinedUpdateRenderController::CombinedUpdateRenderController( AdaptorInternalS mUseElapsedTimeAfterWait( FALSE ), mNewSurface( NULL ), mPostRendering( FALSE ), - mSurfaceResized( FALSE ) + mSurfaceResized( FALSE ), + mForceClear( FALSE ) { LOG_EVENT_TRACE; @@ -198,6 +199,7 @@ void CombinedUpdateRenderController::Resume() AddPerformanceMarker( PerformanceInterface::RESUME ); mRunning = TRUE; + mForceClear = TRUE; } } @@ -504,9 +506,11 @@ void CombinedUpdateRenderController::UpdateRenderThread() Integration::RenderStatus renderStatus; AddPerformanceMarker( PerformanceInterface::RENDER_START ); - mCore.Render( renderStatus ); + mCore.Render( renderStatus, mForceClear ); AddPerformanceMarker( PerformanceInterface::RENDER_END ); + mForceClear = false; + if( renderStatus.NeedsPostRender() ) { mRenderHelper.PostRender( isRenderingToFbo ); diff --git a/dali/internal/adaptor/common/combined-update-render-controller.h b/dali/internal/adaptor/common/combined-update-render-controller.h index d318ea9..2e2dcad 100644 --- a/dali/internal/adaptor/common/combined-update-render-controller.h +++ b/dali/internal/adaptor/common/combined-update-render-controller.h @@ -333,6 +333,7 @@ private: volatile unsigned int mPostRendering; ///< Whether post-rendering is taking place (set by the event & render threads, read by the render-thread). volatile unsigned int mSurfaceResized; ///< Will be set to resize the surface (set by the event-thread, read & cleared by the update-render thread). + volatile unsigned int mForceClear; ///< Will be set to clear forcely }; } // namespace Adaptor -- 2.7.4