Revert "[Tizen] Revert "Support multiple window rendering""
[platform/core/uifw/dali-adaptor.git] / dali / internal / adaptor / common / adaptor-impl.h
index 26c3bb7..428680c 100755 (executable)
 namespace Dali
 {
 
-class RenderSurface;
+class RenderSurfaceInterface;
 class Window;
 
 namespace Integration
 {
 class Core;
 class GlAbstraction;
+class Processor;
 }
 
 namespace Internal
@@ -105,7 +106,7 @@ public:
    * @param[in]  environmentOptions  A pointer to the environment options. If NULL then one is created.
    */
   static Dali::Adaptor* New( Any nativeWindow,
-                             RenderSurface* surface,
+                             Dali::RenderSurfaceInterface* surface,
                              Dali::Configuration::ContextLoss configuration,
                              EnvironmentOptions* environmentOptions );
 
@@ -131,7 +132,7 @@ public:
    */
   static Dali::Adaptor* New( GraphicsFactory& graphicsFactory,
                              Any nativeWindow,
-                             RenderSurface* surface,
+                             Dali::RenderSurfaceInterface* surface,
                              Dali::Configuration::ContextLoss configuration,
                              EnvironmentOptions* environmentOptions );
 
@@ -223,12 +224,12 @@ public: // AdaptorInternalServices implementation
   /**
    * @copydoc AdaptorInterface::ReplaceSurface()
    */
-  virtual void ReplaceSurface( Any nativeWindow, RenderSurface& surface );
+  virtual void ReplaceSurface( Any nativeWindow, Dali::RenderSurfaceInterface& surface );
 
   /**
    * @copydoc Dali::Adaptor::GetSurface()
    */
-  virtual RenderSurface& GetSurface() const;
+  virtual Dali::RenderSurfaceInterface& GetSurface() const;
 
   /**
    * @copydoc Dali::Adaptor::ReleaseSurfaceLock()
@@ -282,6 +283,12 @@ public: // AdaptorInternalServices implementation
    */
   void SetPreRenderCallback( CallbackBase* callback );
 
+  /**
+   * Removes an existing Window instance from the Adaptor
+   * @param[in]  childWindow The Window instance
+   */
+  bool RemoveWindow( Dali::Internal::Adaptor::Window* childWindow );
+
 public:
 
   /**
@@ -379,11 +386,6 @@ public:
   void RequestUpdateOnce();
 
   /**
-   * Request adaptor to update indicator's height
-   */
-  void IndicatorSizeChanged(int height);
-
-  /**
    * @copydoc Dali::Adaptor::NotifySceneCreated()
    */
   void NotifySceneCreated();
@@ -401,12 +403,12 @@ public:
   /**
    * Informs core the surface size has changed
    */
-  void SurfaceResizePrepare( SurfaceSize surfaceSize );
+  void SurfaceResizePrepare( Dali::RenderSurfaceInterface* surface, SurfaceSize surfaceSize );
 
   /**
    * Informs ThreadController the surface size has changed
    */
-  void SurfaceResizeComplete( SurfaceSize surfaceSize );
+  void SurfaceResizeComplete( Dali::RenderSurfaceInterface* surface, SurfaceSize surfaceSize );
 
   /**
    * Sets layout direction of root by system language
@@ -424,6 +426,16 @@ public:
    */
   const LogFactoryInterface& GetLogFactory();
 
+  /**
+   * @copydoc Dali::Adaptor::RegisterProcessor
+   */
+  void RegisterProcessor( Integration::Processor& processor );
+
+  /**
+   * @coydoc Dali::Adaptor::UnregisterProcessor
+   */
+  void UnregisterProcessor( Integration::Processor& processor );
+
 public:  //AdaptorInternalServices
 
   /**
@@ -459,7 +471,7 @@ public:  //AdaptorInternalServices
   /**
    * @copydoc Dali::Internal::Adaptor::AdaptorInternalServices::GetRenderSurfaceInterface()
    */
-  virtual RenderSurface* GetRenderSurfaceInterface();
+  virtual Dali::RenderSurfaceInterface* GetRenderSurfaceInterface();
 
   /**
    * @copydoc Dali::Internal::Adaptor::AdaptorInternalServices::GetVSyncMonitorInterface()
@@ -481,28 +493,6 @@ public:  //AdaptorInternalServices
    */
   virtual TraceInterface& GetSystemTraceInterface();
 
-public: // Stereoscopy
-
-  /**
-   * @copydoc Dali::Integration::Core::SetViewMode()
-   */
-  void SetViewMode( ViewMode viewMode );
-
-  /**
-   * @copydoc Dali::Integration::Core::GetViewMode()
-   */
-  ViewMode GetViewMode() const;
-
-  /**
-   * @copydoc Dali::Integration::Core::SetStereoBase()
-   */
-  void SetStereoBase( float stereoBase );
-
-  /**
-   * @copydoc Dali::Integration::Core::GetStereoBase()
-   */
-  float GetStereoBase() const;
-
 public: // Signals
 
   /**
@@ -576,7 +566,7 @@ private:
    * Assigns the render surface to the adaptor
    *
    */
-  void SetSurface(RenderSurface *surface);
+  void SetSurface(Dali::RenderSurfaceInterface *surface);
 
   /**
    * called after surface is created
@@ -626,7 +616,7 @@ private:
    *                          - Window, adaptor will use existing Window to draw on to
    * @param[in]  environmentOptions  A pointer to the environment options. If NULL then one is created.
    */
-  Adaptor( Any nativeWindow, Dali::Adaptor& adaptor, RenderSurface* surface, EnvironmentOptions* environmentOptions );
+  Adaptor( Any nativeWindow, Dali::Adaptor& adaptor, Dali::RenderSurfaceInterface* surface, EnvironmentOptions* environmentOptions );
 
 private: // Types
 
@@ -647,7 +637,8 @@ private: // Types
     std::string    class_name;   ///< Class name that the window belongs to
     bool           window_mode;  ///< Display mode of the window
     Any            nativeWindow; ///< window identifier
-    RenderSurface* surface;      ///< The surface the Window is bound to
+    uint32_t       id;           ///< unique Window ID
+    Dali::RenderSurfaceInterface* surface;      ///< The surface the Window is bound to
   } WindowPane;
 
   typedef std::vector<WindowPane> WindowFrames;