[Tizen] Add screen and client rotation itself function
[platform/core/uifw/dali-adaptor.git] / dali / integration-api / adaptor-framework / render-surface-interface.h
index e148662..05b4c13 100644 (file)
@@ -24,6 +24,9 @@
 #include <dali/public-api/math/vector4.h>
 #include <dali/public-api/math/rect.h>
 #include <dali/public-api/object/any.h>
+#include <dali/public-api/object/weak-handle.h>
+#include <dali/integration-api/scene.h>
+#include <dali/public-api/math/uint-16-pair.h>
 
 namespace Dali
 {
@@ -43,7 +46,8 @@ class GraphicsInterface;
 /**
  * @brief The position and size of the render surface.
  */
-typedef Dali::Rect<int> PositionSize;
+using PositionSize =  Dali::Rect<int>;
+using SurfaceSize = Uint16Pair;
 
 /**
  * @brief Interface for a render surface onto which Dali draws.
@@ -77,6 +81,7 @@ public:
   : mAdaptor( nullptr ),
     mGraphics( nullptr ),
     mDisplayConnection( nullptr ),
+    mScene(),
     mDepthBufferRequired( Integration::DepthBufferAvailable::FALSE ),
     mStencilBufferRequired( Integration::StencilBufferAvailable::FALSE )
   {}
@@ -101,6 +106,12 @@ public:
   virtual void GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) = 0;
 
   /**
+   * @brief Return the orientation of the surface.
+   * @return The orientation
+   */
+  virtual int GetOrientation() const = 0;
+
+  /**
    * @brief InitializeGraphics the platform specific graphics surface interfaces
    */
   virtual void InitializeGraphics() = 0;
@@ -206,6 +217,15 @@ public:
     mDisplayConnection = &displayConnection;
   }
 
+  /**
+   * @brief Sets a Scene that is rendered on this surface.
+   * @param scene The Scene object
+   */
+  void SetScene( Dali::Integration::Scene& scene )
+  {
+    mScene = scene;
+  }
+
 private:
 
   /**
@@ -223,6 +243,7 @@ protected:
   Dali::Internal::Adaptor::AdaptorInternalServices* mAdaptor;
   Dali::Internal::Adaptor::GraphicsInterface* mGraphics;
   Dali::DisplayConnection* mDisplayConnection;
+  WeakHandle< Dali::Integration::Scene > mScene;
 
 private: