X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fadaptor%2Fcommon%2Fcombined-update-render-controller.cpp;h=60ce74ce9b98c87a537ebd15fa7fee4d30d4c70d;hb=783e17c94e8adc4bd624031af599922c9eb1e0c6;hp=eb5939951b67180620edc4fd16e250bc8c7b148b;hpb=be4cd1a0785c30e2daeb783dc4af62598d2cfe45;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 eb59399..60ce74c 100644 --- a/dali/internal/adaptor/common/combined-update-render-controller.cpp +++ b/dali/internal/adaptor/common/combined-update-render-controller.cpp @@ -28,6 +28,7 @@ #include #include #include +#include namespace Dali { @@ -95,6 +96,7 @@ CombinedUpdateRenderController::CombinedUpdateRenderController( AdaptorInternalS mEnvironmentOptions( environmentOptions ), mNotificationTrigger( adaptorInterfaces.GetProcessCoreEventsTrigger() ), mSleepTrigger( NULL ), + mPreRenderCallback( NULL ), mUpdateRenderThread( NULL ), mDefaultFrameDelta( 0.0f ), mDefaultFrameDurationMilliseconds( 0u ), @@ -136,6 +138,7 @@ CombinedUpdateRenderController::~CombinedUpdateRenderController() Stop(); + delete mPreRenderCallback; delete mSleepTrigger; } @@ -313,6 +316,19 @@ void CombinedUpdateRenderController::SetRenderRefreshRate( unsigned int numberOf LOG_EVENT( "mDefaultFrameDelta(%.6f), mDefaultFrameDurationMilliseconds(%lld), mDefaultFrameDurationNanoseconds(%lld)", mDefaultFrameDelta, mDefaultFrameDurationMilliseconds, mDefaultFrameDurationNanoseconds ); } +void CombinedUpdateRenderController::SetPreRenderCallback( CallbackBase* callback ) +{ + LOG_EVENT_TRACE; + LOG_EVENT( "Set PreRender Callback" ); + + ConditionalWait::ScopedLock updateLock( mUpdateRenderThreadWaitCondition ); + if( mPreRenderCallback ) + { + delete mPreRenderCallback; + } + mPreRenderCallback = callback; +} + /////////////////////////////////////////////////////////////////////////////////////////////////// // EVENT THREAD /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -374,6 +390,8 @@ void CombinedUpdateRenderController::ProcessSleepRequest() void CombinedUpdateRenderController::UpdateRenderThread() { + SetThreadName("RenderThread\0"); + // Install a function for logging mEnvironmentOptions.InstallLogFunction(); @@ -499,6 +517,15 @@ void CombinedUpdateRenderController::UpdateRenderThread() ////////////////////////////// mRenderHelper.ConsumeEvents(); + if( mPreRenderCallback != NULL ) + { + bool keepCallback = CallbackBase::ExecuteReturn(*mPreRenderCallback); + if( ! keepCallback ) + { + delete mPreRenderCallback; + mPreRenderCallback = NULL; + } + } mRenderHelper.PreRender(); Integration::RenderStatus renderStatus;