Calculate clip bounds correctly when serializing
bug:26585671
Change-Id: Ic70769bce6fa2a7b65cb893ba4a45c65fdc0b7e3
diff --git a/libs/hwui/ClipArea.cpp b/libs/hwui/ClipArea.cpp
index 9c08b4d..0ae3e89 100644
--- a/libs/hwui/ClipArea.cpp
+++ b/libs/hwui/ClipArea.cpp
@@ -361,17 +361,21 @@
"expect RectangleList to be trivially destructible");
if (mLastSerialization == nullptr) {
+ ClipBase* serialization;
switch (mMode) {
case ClipMode::Rectangle:
- mLastSerialization = allocator.create<ClipRect>(mClipRect);
+ serialization = allocator.create<ClipRect>(mClipRect);
break;
case ClipMode::RectangleList:
- mLastSerialization = allocator.create<ClipRectList>(mRectangleList);
+ serialization = allocator.create<ClipRectList>(mRectangleList);
+ serialization->rect = mRectangleList.calculateBounds();
break;
case ClipMode::Region:
- mLastSerialization = allocator.create<ClipRegion>(mClipRegion);
+ serialization = allocator.create<ClipRegion>(mClipRegion);
+ serialization->rect.set(mClipRegion.getBounds());
break;
}
+ mLastSerialization = serialization;
}
return mLastSerialization;
}