summaryrefslogtreecommitdiff
path: root/libs/hwui/ClipArea.cpp
diff options
context:
space:
mode:
author Chris Craik <ccraik@google.com> 2016-02-08 17:27:04 -0800
committer Chris Craik <ccraik@google.com> 2016-02-09 01:27:56 +0000
commitb4f4f3e16d8fbb2905dfc168383213161e988f83 (patch)
tree0b520c5b57f9e096a41ad0ad6017807bc13f83c6 /libs/hwui/ClipArea.cpp
parentc5c898640fd79562a3f278dbe825b39b0b65c7f7 (diff)
Calculate clip bounds correctly when serializing
bug:26585671 Change-Id: Ic70769bce6fa2a7b65cb893ba4a45c65fdc0b7e3
Diffstat (limited to 'libs/hwui/ClipArea.cpp')
-rw-r--r--libs/hwui/ClipArea.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/libs/hwui/ClipArea.cpp b/libs/hwui/ClipArea.cpp
index 9c08b4dd22ae..0ae3e895a4af 100644
--- a/libs/hwui/ClipArea.cpp
+++ b/libs/hwui/ClipArea.cpp
@@ -361,17 +361,21 @@ const ClipBase* ClipArea::serializeClip(LinearAllocator& allocator) {
"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;
}