[Tizen] Implement partial update
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / ubuntu-x11 / pixmap-render-surface-ecore-x.h
old mode 100644 (file)
new mode 100755 (executable)
index 2cb3927..8cb4087
@@ -1,8 +1,8 @@
-#ifndef __DALI_ECORE_X_PIXMAP_RENDER_SURFACE_H__
-#define __DALI_ECORE_X_PIXMAP_RENDER_SURFACE_H__
+#ifndef DALI_ECORE_X_PIXMAP_RENDER_SURFACE_H
+#define DALI_ECORE_X_PIXMAP_RENDER_SURFACE_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.
 
 // INTERNAL INCLUDES
 #include <dali/integration-api/egl-interface.h>
-#include <dali/internal/graphics/gles20/egl-implementation.h>
+#include <dali/internal/graphics/gles/egl-implementation.h>
 #include <dali/internal/window-system/common/pixmap-render-surface.h>
 #include <dali/internal/window-system/ubuntu-x11/ecore-x-types.h>
 #include <dali/public-api/dali-adaptor-common.h>
+#include <dali/internal/graphics/common/graphics-interface.h>
 
 // EXTERNAL INCLUDES
 #include <dali/devel-api/threading/conditional-wait.h>
-#include <Ecore_X.h>
+#include <dali/internal/system/linux/dali-ecore-x.h>
+
 
 namespace Dali
 {
@@ -68,82 +70,88 @@ public: // from WindowRenderSurface
    */
   virtual void SetRenderNotification( TriggerEventInterface* renderNotification ) override;
 
-public: // from Dali::RenderSurface
+public: // from Dali::Integration::RenderSurface
 
   /**
-   * @copydoc Dali::RenderSurface::GetPositionSize()
+   * @copydoc Dali::Integration::RenderSurface::GetPositionSize()
    */
   virtual PositionSize GetPositionSize() const override;
 
   /**
-   * @copydoc Dali::RenderSurface::GetDpi()
+   * @copydoc Dali::Integration::RenderSurface::GetDpi()
    */
   virtual void GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) override;
 
   /**
-   * @copydoc Dali::RenderSurface::InitializeEgl()
+   * @brief Return the orientation of the surface.
+   * @return The orientation
    */
-  virtual void InitializeEgl( EglInterface& egl ) override;
+  virtual int GetOrientation() const override;
 
   /**
-   * @copydoc Dali::RenderSurface::CreateEglSurface()
+   * @copydoc Dali::Integration::RenderSurface::InitializeGraphics()
    */
-  virtual void CreateEglSurface( EglInterface& egl ) override;
+  virtual void InitializeGraphics() override;
 
   /**
-   * @copydoc Dali::RenderSurface::DestroyEglSurface()
+   * @copydoc Dali::Integration::RenderSurface::CreateSurface()
    */
-  virtual void DestroyEglSurface( EglInterface& egl ) override;
+  virtual void CreateSurface() override;
 
   /**
-   * @copydoc Dali::RenderSurface::ReplaceEGLSurface()
+   * @copydoc Dali::Integration::RenderSurface::DestroySurface()
    */
-  virtual bool ReplaceEGLSurface( EglInterface& egl ) override;
+  virtual void DestroySurface() override;
 
   /**
-   * @copydoc Dali::RenderSurface::MoveResize()
+   * @copydoc Dali::Integration::RenderSurface::ReplaceGraphicsSurface()
    */
-  virtual void MoveResize( Dali::PositionSize positionSize) override {}
+  virtual bool ReplaceGraphicsSurface() override;
 
   /**
-   * @copydoc Dali::RenderSurface::SetViewMode()
+   * @copydoc Dali::Integration::RenderSurface::MoveResize()
    */
-  void SetViewMode( ViewMode viewMode ) override {}
+  virtual void MoveResize( Dali::PositionSize positionSize) override {}
 
   /**
-   * @copydoc Dali::RenderSurface::StartRender()
+   * @copydoc Dali::Integration::RenderSurface::StartRender()
    */
   virtual void StartRender() override;
 
   /**
-   * @copydoc Dali::RenderSurface::PreRender()
+   * @copydoc Dali::Integration::RenderSurface::PreRender()
    */
-  virtual bool PreRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, bool resizingSurface ) override;
+  virtual bool PreRender( bool resizingSurface ) override;
 
   /**
-   * @copydoc Dali::RenderSurface::PostRender()
+   * @copydoc Dali::Integration::RenderSurface::PostRender()
    */
-  virtual void PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, DisplayConnection* displayConnection, bool replacingSurface, bool resizingSurface );
+  virtual void PostRender( bool renderToFbo, bool replacingSurface, bool resizingSurface ) override;
 
   /**
-   * @copydoc Dali::RenderSurface::StopRender()
+   * @copydoc Dali::Integration::RenderSurface::StopRender()
    */
   virtual void StopRender() override;
 
   /**
-   * @copydoc Dali::RenderSurface::SetThreadSynchronization
+   * @copydoc Dali::Integration::RenderSurface::SetThreadSynchronization
    */
   virtual void SetThreadSynchronization( ThreadSynchronizationInterface& threadSynchronization ) override;
 
   /**
-   * @copydoc Dali::RenderSurface::GetSurfaceType()
+   * @copydoc Dali::Integration::RenderSurface::GetSurfaceType()
    */
-  virtual RenderSurface::Type GetSurfaceType() override;
+  virtual Integration::RenderSurface::Type GetSurfaceType() override;
+
+  /**
+   * @copydoc Dali::Integration::RenderSurface::MakeContextCurrent()
+   */
+  virtual void MakeContextCurrent() override;
 
 private: // from PixmapRenderSurface
 
   /**
-   * @copydoc Dali::RenderSurface::ReleaseLock()
+   * @copydoc Dali::Integration::RenderSurface::ReleaseLock()
    */
   virtual void ReleaseLock() override;
 
@@ -162,6 +170,16 @@ private: // from PixmapRenderSurface
    */
   virtual void UseExistingRenderable( unsigned int surfaceId ) override;
 
+  /**
+   * @copydoc Dali::Integration::RenderSurface::SetDamagedRect()
+   */
+  virtual Rect<int32_t> SetDamagedRect( Rect<int32_t> damagedRect ) override;
+
+  /**
+   * @copydoc Dali::Integration::RenderSurface::GetBufferAge()
+   */
+  virtual int GetBufferAge() override;
+
 private:
 
   /**
@@ -174,7 +192,8 @@ private:
 private: // Data
 
   static const int BUFFER_COUNT = 2;
-
+  GraphicsInterface*              mGraphics;               ///< Graphics interface
+  Dali::DisplayConnection*        mDisplayConnection;      ///< Display connection
   PositionSize                    mPosition;               ///< Position
   TriggerEventInterface*          mRenderNotification;     ///< Render notification trigger
   ColorDepth                      mColorDepth;             ///< Color depth of surface (32 bit or 24 bit)
@@ -194,4 +213,4 @@ private: // Data
 
 } // namespace Dali
 
-#endif // __DALI_ECORE_X_PIXMAP_RENDER_SURFACE_H__
+#endif // DALI_ECORE_X_PIXMAP_RENDER_SURFACE_H