[Tizen] Implement partial update
[platform/core/uifw/dali-core.git] / dali / internal / update / manager / render-instruction-processor.cpp
index a76632e..2a45987 100755 (executable)
@@ -162,8 +162,8 @@ inline void AddRendererToRenderList( BufferIndex updateBufferIndex,
 {
   bool inside( true );
   Node* node = renderable.mNode;
-  bool isModifiesGeometryHint = false;
-  if( cull && renderable.mRenderer && !( isModifiesGeometryHint = renderable.mRenderer->GetShader().HintEnabled( Dali::Shader::Hint::MODIFIES_GEOMETRY ) ) )
+  bool geomertryModified = false;
+  if( cull && renderable.mRenderer && !( geomertryModified = renderable.mRenderer->GetShader().HintEnabled( Dali::Shader::Hint::MODIFIES_GEOMETRY ) ) )
   {
     const Vector4& boundingSphere = node->GetBoundingSphere();
     inside = ( boundingSphere.w > Math::MACHINE_EPSILON_1000 ) &&
@@ -187,7 +187,7 @@ inline void AddRendererToRenderList( BufferIndex updateBufferIndex,
       {
         item.mDepthIndex = renderable.mNode->GetDepthIndex();
       }
-      if( isLayer3d || isModifiesGeometryHint )
+      if( isLayer3d || geomertryModified )
       {
         renderList.SetPartialUpdateEnabled( false );
       }
@@ -213,14 +213,15 @@ inline void AddRendererToRenderList( BufferIndex updateBufferIndex,
 
       Matrix::Multiply( item.mModelViewMatrix, item.mModelMatrix, viewMatrix );
 
-      if( DALI_LIKELY( item.mRenderer ) && renderList.IsPartialUpdateEnabled() )
+      if( node->IsPartialUpdateAvailable() && DALI_LIKELY( item.mRenderer ) && renderList.IsPartialUpdateEnabled() )
       {
-        if( node->IsPropertyDirty() || node->IsComponentChanged() )
+        if( node->IsComponentChanged() || node->IsPropertyDirty() )
         {
           item.mPartialUpdateEnabled = true;
 
           item.mUpdateSizeHint = item.mSize;
-          Vector3 updateSizeHint = node->GetUpdateSizeHint( updateBufferIndex );
+          Vector3 updateSizeHint = Vector3::ZERO;
+          node->GetUpdateSizeHint( updateBufferIndex, updateSizeHint );
           if( updateSizeHint != Vector3::ZERO )
           {
             item.mUpdateSizeHint = updateSizeHint;