diff options
| author | 2016-02-08 17:27:04 -0800 | |
|---|---|---|
| committer | 2016-02-09 01:27:56 +0000 | |
| commit | b4f4f3e16d8fbb2905dfc168383213161e988f83 (patch) | |
| tree | 0b520c5b57f9e096a41ad0ad6017807bc13f83c6 /libs/hwui/ClipArea.cpp | |
| parent | c5c898640fd79562a3f278dbe825b39b0b65c7f7 (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.cpp | 10 |
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; } |