Revert "[Tizen] Revert "Support screen rotation""
[platform/core/uifw/dali-adaptor.git] / adaptors / common / adaptor-impl.cpp
index 748012e..600a2a3 100644 (file)
@@ -393,10 +393,17 @@ void Adaptor::FeedKeyEvent( KeyEvent& keyEvent )
 
 void Adaptor::ReplaceSurface( Any nativeWindow, RenderSurface& surface )
 {
+  PositionSize positionSize = surface.GetPositionSize();
+
+  // let the core know the surface size has changed
+  mCore->SurfaceResized( positionSize.width, positionSize.height );
+
+  mResizedSignal.Emit( mAdaptor );
+
   mNativeWindow = nativeWindow;
   mSurface = &surface;
 
-  // flush the event queue to give update and render threads chance
+  // flush the event queue to give the update-render thread chance
   // to start processing messages for new camera setup etc as soon as possible
   ProcessCoreEvents();
 
@@ -695,7 +702,7 @@ void Adaptor::OnDamaged( const DamageArea& area )
   RequestUpdate();
 }
 
-void Adaptor::SurfaceSizeChanged( Dali::Adaptor::SurfaceSize surfaceSize )
+void Adaptor::SurfaceResizePrepare( Dali::Adaptor::SurfaceSize surfaceSize )
 {
   // let the core know the surface size has changed
   mCore->SurfaceResized( surfaceSize.GetWidth(), surfaceSize.GetHeight() );
@@ -703,6 +710,16 @@ void Adaptor::SurfaceSizeChanged( Dali::Adaptor::SurfaceSize surfaceSize )
   mResizedSignal.Emit( mAdaptor );
 }
 
+void Adaptor::SurfaceResizeComplete( Dali::Adaptor::SurfaceSize surfaceSize )
+{
+  // flush the event queue to give the update-render thread chance
+  // to start processing messages for new camera setup etc as soon as possible
+  ProcessCoreEvents();
+
+  // this method blocks until the render thread has completed the resizing.
+  mThreadController->ResizeSurface();
+}
+
 void Adaptor::NotifySceneCreated()
 {
   GetCore().SceneCreated();