BufferIndex updateBufferIndex,
RenderQueue& renderQueue,
Layer& currentLayer,
- uint32_t inheritedDrawMode)
+ uint32_t inheritedDrawMode,
+ bool updated)
{
// Apply constraints to the node
ConstrainPropertyOwner(node, updateBufferIndex);
layer->SetReuseRenderers(updateBufferIndex, false);
}
+ // For partial update, mark all children of an animating node as updated.
+ if(updated) // Only set to updated if parent was updated.
+ {
+ node.SetUpdated(true);
+ }
+ else if(node.Updated()) // Only propagate updated==true downwards.
+ {
+ updated = true;
+ }
+
// recurse children
NodeContainer& children = node.GetChildren();
const NodeIter endIter = children.End();
updateBufferIndex,
renderQueue,
*layer,
- inheritedDrawMode);
+ inheritedDrawMode,
+ updated);
}
return cumulativeDirtyFlags;
DrawMode::Type drawMode(rootNode.GetDrawMode());
+ bool updated = rootNode.Updated();
+
// recurse children
NodeContainer& children = rootNode.GetChildren();
const NodeIter endIter = children.End();
updateBufferIndex,
renderQueue,
rootNode,
- drawMode);
+ drawMode,
+ updated);
}
return cumulativeDirtyFlags;