[Tizen] Implement partial update
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / common / window-render-surface.h
old mode 100644 (file)
new mode 100755 (executable)
index 55bc955..49f96d7
@@ -130,6 +130,12 @@ public: // from Dali::Integration::RenderSurface
   virtual void GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) override;
 
   /**
+   * @brief Return the orientation of the surface.
+   * @return The orientation
+   */
+  virtual int GetOrientation() const override;
+
+  /**
    * @copydoc Dali::Integration::RenderSurface::InitializeGraphics()
    */
   virtual void InitializeGraphics() override;
@@ -204,6 +210,16 @@ public: // from Dali::Integration::RenderSurface
    */
   virtual Integration::StencilBufferAvailable GetStencilBufferRequired() override;
 
+  /**
+   * @copydoc Dali::Integration::RenderSurface::SetDamagedRect()
+   */
+  virtual Rect<int32_t> SetDamagedRect( Rect<int32_t> damagedRectArray ) override;
+
+  /**
+   * @copydoc Dali::Integration::RenderSurface::GetBufferAge()
+   */
+  virtual int32_t GetBufferAge() override;
+
 private:
 
   /**
@@ -221,6 +237,11 @@ private:
    */
   void ProcessRotationRequest();
 
+  /*
+   *  @brief MergeRect
+   */
+  std::vector<int32_t> MergeRect( Rect<int32_t> damagedRectArray, int bufferAge );
+
 protected:
 
   // Undefined
@@ -245,12 +266,18 @@ private: // Data
   OutputSignalType                mOutputTransformedSignal;
   int                             mRotationAngle;
   int                             mScreenRotationAngle;
+  int                             mBufferAge;
+  int                             mPreBufferAge;
   bool                            mOwnSurface;         ///< Whether we own the surface (responsible for deleting it)
   bool                            mRotationSupported;
   bool                            mRotationFinished;
   bool                            mScreenRotationFinished;
   bool                            mResizeFinished;
 
+  uint32_t                        mDpiHorizontal;
+  uint32_t                        mDpiVertical;
+
+  Rect<int32_t>                   mPreDamagedRect[5];  ///< The GPU driver can has up to four buffers. And one is for area calculation.
 }; // class WindowRenderSurface
 
 } // namespace Adaptor