[Tizen] Implement partial update
[platform/core/uifw/dali-core.git] / dali / internal / render / common / render-algorithms.cpp
old mode 100644 (file)
new mode 100755 (executable)
index a8d2162..610496d
@@ -415,7 +415,8 @@ inline void RenderAlgorithms::ProcessRenderList( const RenderList& renderList,
                                                  Integration::DepthBufferAvailable depthBufferAvailable,
                                                  Integration::StencilBufferAvailable stencilBufferAvailable,
                                                  Vector<GLuint>& boundTextures,
-                                                 int orientation )
+                                                 int orientation,
+                                                 Dali::ClippingBox& scissorBox )
 {
   DALI_PRINT_RENDER_LIST( renderList );
 
@@ -474,6 +475,12 @@ inline void RenderAlgorithms::ProcessRenderList( const RenderList& renderList,
     mScissorStack.push_back( layerScissorBox );
     mHasLayerScissor = true;
   }
+  else if ( !scissorBox.IsEmpty() )
+  {
+    context.SetScissorTest( true );
+    context.Scissor( scissorBox.x, scissorBox.y, scissorBox.width, scissorBox.height );
+    mScissorStack.push_back( scissorBox );
+  }
   else
   {
     // We are not performing a layer clip. Add the viewport as the root scissor rectangle.
@@ -522,7 +529,8 @@ void RenderAlgorithms::ProcessRenderInstruction( const RenderInstruction& instru
                                                  Integration::DepthBufferAvailable depthBufferAvailable,
                                                  Integration::StencilBufferAvailable stencilBufferAvailable,
                                                  Vector<GLuint>& boundTextures,
-                                                 int orientation )
+                                                 int orientation,
+                                                 Dali::ClippingBox& scissorBox )
 {
   DALI_PRINT_RENDER_INSTRUCTION( instruction, bufferIndex );
 
@@ -552,7 +560,8 @@ void RenderAlgorithms::ProcessRenderInstruction( const RenderInstruction& instru
                             depthBufferAvailable,
                             stencilBufferAvailable,
                             boundTextures,
-                            orientation );
+                            orientation,
+                            scissorBox );
       }
     }
   }