[Tizen] Support Client Rotation and Screen Rotation
[platform/core/uifw/dali-core.git] / dali / internal / render / common / render-algorithms.h
index 5d4e44f..4dfab2c 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 // INTERNAL INCLUDES
+#include <dali/integration-api/core-enumerations.h>
 #include <dali/internal/common/buffer-index.h>
 #include <dali/internal/render/common/render-list.h>
 
@@ -52,11 +53,18 @@ class RenderAlgorithms
 
     /**
      * Process a render-instruction.
-     * @param[in] instruction The render-instruction to process.
-     * @param[in] context     The GL context.
-     * @param[in] bufferIndex The current render buffer index (previous update buffer)
+     * @param[in] instruction            The render-instruction to process.
+     * @param[in] context                The GL context.
+     * @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
      */
-    void ProcessRenderInstruction( const SceneGraph::RenderInstruction& instruction, Context& context, BufferIndex bufferIndex );
+    void ProcessRenderInstruction( const SceneGraph::RenderInstruction& instruction,
+                                   Context& context,
+                                   BufferIndex bufferIndex,
+                                   Integration::DepthBufferAvailable depthBufferAvailable,
+                                   Integration::StencilBufferAvailable stencilBufferAvailable,
+                                   int orientation);
 
   private:
 
@@ -79,7 +87,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.
@@ -88,18 +96,34 @@ class RenderAlgorithms
      * @param[in/out] usedStencilBuffer        True if the stencil buffer has been used so far within this RenderList. Used by StencilMode::ON.
      * @param[in/out] lastClippingDepth        The stencil depth of the last renderer drawn. Used by the clipping feature.
      * @param[in/out] lastClippingId           The clipping ID of the last renderer drawn.   Used by the clipping feature.
+     * @param[in]     stencilBufferAvailable   Whether the stencil buffer is available
      */
-    inline void SetupClipping( const Dali::Internal::SceneGraph::RenderItem& item, Context& context, bool& usedStencilBuffer, uint32_t& lastClippingDepth, uint32_t& lastClippingId );
+    inline void SetupClipping( const Dali::Internal::SceneGraph::RenderItem& item,
+                               Context& context,
+                               bool& usedStencilBuffer,
+                               uint32_t& lastClippingDepth,
+                               uint32_t& lastClippingId,
+                               Integration::StencilBufferAvailable stencilBufferAvailable,
+                               int orientation );
 
     /**
      * @brief Process a render-list.
-     * @param[in] renderList       The render-list to process.
-     * @param[in] context          The GL context.
-     * @param[in] buffer           The current render buffer index (previous update buffer)
-     * @param[in] viewMatrix       The view matrix from the appropriate camera.
-     * @param[in] projectionMatrix The projection matrix from the appropriate camera.
+     * @param[in] renderList             The render-list to process.
+     * @param[in] context                The GL context.
+     * @param[in] buffer                 The current render buffer index (previous update buffer)
+     * @param[in] viewMatrix             The view matrix from the appropriate camera.
+     * @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
      */
-    inline void ProcessRenderList( const Dali::Internal::SceneGraph::RenderList& renderList, Context& context, BufferIndex bufferIndex, const Matrix& viewMatrix, const Matrix& projectionMatrix );
+    inline void ProcessRenderList( const Dali::Internal::SceneGraph::RenderList& renderList,
+                                   Context& context,
+                                   BufferIndex bufferIndex,
+                                   const Matrix& viewMatrix,
+                                   const Matrix& projectionMatrix,
+                                   Integration::DepthBufferAvailable depthBufferAvailable,
+                                   Integration::StencilBufferAvailable stencilBufferAvailable,
+                                   int orientation );
 
     // Prevent copying:
     RenderAlgorithms( RenderAlgorithms& rhs );