// Clean collected dirty/damaged rects on exit if 3d layer or 3d node or other conditions.
DamagedRectsCleaner damagedRectCleaner(damagedRects, surfaceRect);
- bool cleanDamagedRect = false;
// Mark previous dirty rects in the sorted array. The array is already sorted by node and renderer, frame number.
// so you don't need to sort: std::stable_sort(itemsDirtyRects.begin(), itemsDirtyRects.end());
// If the item does 3D transformation, do early exit and clean the damaged rect array
if(item.mUpdateArea == Vector4::ZERO)
{
- cleanDamagedRect = true;
- continue;
+ return;
}
Rect<int> rect;
{
dirtyRectPos->visited = true;
}
- else
- {
- // The item is not in the list for some reason. Add it!
- dirtyRectPos->visited = true;
- itemsDirtyRects.insert(dirtyRectPos, dirtyRect);
- }
}
}
}
}
itemsDirtyRects.resize(j - itemsDirtyRects.begin());
-
- if(!cleanDamagedRect)
- {
- damagedRectCleaner.SetCleanOnReturn(false);
- }
+ damagedRectCleaner.SetCleanOnReturn(false);
// Reset updated flag from the root
Layer* root = sceneObject->GetRoot();