Revert "[Tizen] Revert "Support multiple window rendering""
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / common / window-impl.h
index 76fb76f..eb7d873 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_WINDOWSYSTEM_COMMON_WINDOW_IMPL_H
 
 /*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,9 @@
 // EXTERNAL INCLUDES
 #include <dali/public-api/object/ref-object.h>
 #include <dali/public-api/object/base-object.h>
+#include <dali/public-api/actors/layer.h>
+#include <dali/public-api/render-tasks/render-task-list.h>
+#include <dali/integration-api/scene.h>
 
 // INTERNAL INCLUDES
 #include <dali/internal/adaptor/common/lifecycle-observer.h>
@@ -32,6 +35,7 @@
 namespace Dali
 {
 class Adaptor;
+class Actor;
 
 namespace Internal
 {
@@ -114,6 +118,41 @@ public:
   void Activate();
 
   /**
+   * @copydoc Dali::Window::Add()
+   */
+  void Add( Dali::Actor actor );
+
+  /**
+   * @copydoc Dali::Window::Remove()
+   */
+  void Remove( Dali::Actor remove );
+
+  /**
+   * @copydoc Dali::Window::SetBackgroundColor()
+   */
+  void SetBackgroundColor(Vector4 color);
+
+  /**
+   * @copydoc Dali::Window::GetBackgroundColor()
+   */
+  Vector4 GetBackgroundColor() const;
+
+  /**
+   * @copydoc Dali::Window::GetRootLayer()
+   */
+  Dali::Layer GetRootLayer() const;
+
+  /**
+   * @copydoc Dali::Window::GetLayerCount()
+   */
+  uint32_t GetLayerCount() const;
+
+  /**
+   * @copydoc Dali::Window::GetLayer()
+   */
+  Dali::Layer GetLayer( uint32_t depth ) const;
+
+  /**
    * @copydoc Dali::Window::AddAvailableOrientation()
    */
   void AddAvailableOrientation(Dali::Window::WindowOrientation orientation);
@@ -323,6 +362,12 @@ public:
    */
   void RotationDone( int orientation, int width, int height );
 
+  /**
+   * @brief Retrieves the unique ID of the window.
+   * @return The ID
+   */
+  uint32_t GetId() const;
+
 private:
 
   /**
@@ -412,7 +457,10 @@ public: // Signals
 
 private:
 
-  WindowRenderSurface*                  mSurface;
+  static uint32_t                       mWindowCounter;    ///< A counter to track the window creation
+  uint32_t                              mId;               ///< A unique ID to identify the window starting from 0
+  std::unique_ptr< WindowRenderSurface > mSurface;
+  Dali::Integration::Scene              mScene;
   WindowBase*                           mWindowBase;
   bool                                  mStarted:1;
   bool                                  mIsTransparent:1;
@@ -429,6 +477,8 @@ private:
   std::vector<Dali::Window::WindowOrientation> mAvailableOrientations;
   Dali::Window::WindowOrientation              mPreferredOrientation;
 
+  Vector4                               mBackgroundColor;
+
   // Signals
   IndicatorSignalType mIndicatorVisibilityChangedSignal;
   FocusSignalType     mFocusChangedSignal;