[Tizen] Implement partial update
[platform/core/uifw/dali-core.git] / dali / internal / render / common / render-algorithms.h
old mode 100644 (file)
new mode 100755 (executable)
index 523cc14..bb5e066
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_RENDER_ALGORITHMS_H
 
 /*
- * Copyright (c) 2017 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.
@@ -58,12 +58,17 @@ class RenderAlgorithms
      * @param[in] bufferIndex            The current render buffer index (previous update buffer)
      * @param[in] depthBufferAvailable   Whether the depth buffer is available
      * @param[in] stencilBufferAvailable Whether the stencil buffer is available
+     * @param[in] boundTextures          The textures bound for rendering
+     * @param[in] scissorBox             The damaged rect for partial update
      */
     void ProcessRenderInstruction( const SceneGraph::RenderInstruction& instruction,
                                    Context& context,
                                    BufferIndex bufferIndex,
                                    Integration::DepthBufferAvailable depthBufferAvailable,
-                                   Integration::StencilBufferAvailable stencilBufferAvailable );
+                                   Integration::StencilBufferAvailable stencilBufferAvailable,
+                                   Vector<GLuint>& boundTextures,
+                                   int orientation,
+                                   Dali::ClippingBox& scissorBox );
 
   private:
 
@@ -86,7 +91,7 @@ class RenderAlgorithms
      * @param[in] item     The current RenderItem (about to be rendered)
      * @param[in] context  The current Context
      */
-    inline void SetupScissorClipping( const Dali::Internal::SceneGraph::RenderItem& item, Context& context );
+    inline void SetupScissorClipping( const Dali::Internal::SceneGraph::RenderItem& item, Context& context, int orientation );
 
     /**
      * @brief Set up the clipping based on the specified clipping settings.
@@ -102,7 +107,8 @@ class RenderAlgorithms
                                bool& usedStencilBuffer,
                                uint32_t& lastClippingDepth,
                                uint32_t& lastClippingId,
-                               Integration::StencilBufferAvailable stencilBufferAvailable );
+                               Integration::StencilBufferAvailable stencilBufferAvailable,
+                               int orientation );
 
     /**
      * @brief Process a render-list.
@@ -113,6 +119,8 @@ class RenderAlgorithms
      * @param[in] projectionMatrix       The projection matrix from the appropriate camera.
      * @param[in] depthBufferAvailable   Whether the depth buffer is available
      * @param[in] stencilBufferAvailable Whether the stencil buffer is available
+     * @param[in] boundTextures          The textures bound for rendering
+     * @param[in] scissorBox             The damaged rect for partial update
      */
     inline void ProcessRenderList( const Dali::Internal::SceneGraph::RenderList& renderList,
                                    Context& context,
@@ -120,7 +128,10 @@ class RenderAlgorithms
                                    const Matrix& viewMatrix,
                                    const Matrix& projectionMatrix,
                                    Integration::DepthBufferAvailable depthBufferAvailable,
-                                   Integration::StencilBufferAvailable stencilBufferAvailable );
+                                   Integration::StencilBufferAvailable stencilBufferAvailable,
+                                   Vector<GLuint>& boundTextures,
+                                   int orientation,
+                                   Dali::ClippingBox& scissorBox );
 
     // Prevent copying:
     RenderAlgorithms( RenderAlgorithms& rhs );