From: Wonsik Jung Date: Tue, 11 Feb 2020 04:45:11 +0000 (+0000) Subject: Merge "Fix window rotation sync issue for mulit window" into devel/master X-Git-Tag: dali_1.5.0~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cfc43c054be1e63ab6c73b622658cd511f5a3d79;hp=7d065d5468240a4af0e189288d4fda71d6850cc6;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git Merge "Fix window rotation sync issue for mulit window" into devel/master --- diff --git a/dali/internal/adaptor/common/adaptor-impl.cpp b/dali/internal/adaptor/common/adaptor-impl.cpp index ce8863c..d00a607 100755 --- a/dali/internal/adaptor/common/adaptor-impl.cpp +++ b/dali/internal/adaptor/common/adaptor-impl.cpp @@ -626,6 +626,10 @@ bool Adaptor::AddWindow( Dali::Integration::SceneHolder childWindow, const std:: // Add the new Window to the container - the order is not important mWindows.push_back( &windowImpl ); + Dali::RenderSurfaceInterface* surface = windowImpl.GetSurface(); + + mThreadController->AddSurface( surface ); + mWindowCreatedSignal.Emit( childWindow ); return true; diff --git a/dali/internal/adaptor/common/combined-update-render-controller.cpp b/dali/internal/adaptor/common/combined-update-render-controller.cpp index 4b794ce..a41a613 100644 --- a/dali/internal/adaptor/common/combined-update-render-controller.cpp +++ b/dali/internal/adaptor/common/combined-update-render-controller.cpp @@ -399,6 +399,17 @@ void CombinedUpdateRenderController::SetPreRenderCallback( CallbackBase* callbac mPreRenderCallback = callback; } +void CombinedUpdateRenderController::AddSurface( Dali::RenderSurfaceInterface* surface ) +{ + LOG_EVENT_TRACE; + LOG_EVENT( "Surface is added" ); + if( mUpdateRenderThread ) + { + // Set the ThreadSyncronizationInterface on the added surface + surface->SetThreadSynchronization( *this ); + } +} + /////////////////////////////////////////////////////////////////////////////////////////////////// // EVENT THREAD /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/dali/internal/adaptor/common/combined-update-render-controller.h b/dali/internal/adaptor/common/combined-update-render-controller.h index 03e511e..edaf83c 100644 --- a/dali/internal/adaptor/common/combined-update-render-controller.h +++ b/dali/internal/adaptor/common/combined-update-render-controller.h @@ -151,6 +151,11 @@ public: */ void SetPreRenderCallback( CallbackBase* callback ) override; + /** + * @copydoc ThreadControllerInterface::AddSurface() + */ + virtual void AddSurface( Dali::RenderSurfaceInterface* surface ); + private: // Undefined copy constructor. diff --git a/dali/internal/adaptor/common/thread-controller-interface.h b/dali/internal/adaptor/common/thread-controller-interface.h index 99317d6..6b9055b 100644 --- a/dali/internal/adaptor/common/thread-controller-interface.h +++ b/dali/internal/adaptor/common/thread-controller-interface.h @@ -118,6 +118,12 @@ public: */ virtual void SetPreRenderCallback( CallbackBase* callback ) = 0; + /** + * @brief Adds the new surface. + * @param surface new surface + */ + virtual void AddSurface( Dali::RenderSurfaceInterface* surface ) = 0; + protected: /** diff --git a/dali/internal/system/common/thread-controller.cpp b/dali/internal/system/common/thread-controller.cpp index fbe90dc..a9054ec 100644 --- a/dali/internal/system/common/thread-controller.cpp +++ b/dali/internal/system/common/thread-controller.cpp @@ -115,6 +115,11 @@ void ThreadController::SetPreRenderCallback( CallbackBase* callback ) mThreadControllerInterface->SetPreRenderCallback( callback ); } +void ThreadController::AddSurface( Dali::RenderSurfaceInterface* newSurface ) +{ + mThreadControllerInterface->AddSurface( newSurface ); +} + } // namespace Adaptor } // namespace Internal diff --git a/dali/internal/system/common/thread-controller.h b/dali/internal/system/common/thread-controller.h index e1f1c84..c4f3961 100644 --- a/dali/internal/system/common/thread-controller.h +++ b/dali/internal/system/common/thread-controller.h @@ -137,6 +137,13 @@ public: */ void SetPreRenderCallback( CallbackBase* callback ); + /** + * @brief Adds the new surface. + * + * @param surface new surface + */ + void AddSurface( Dali::RenderSurfaceInterface* surface ); + private: // Undefined copy constructor.