diff options
Diffstat (limited to 'libs/hwui/Snapshot.cpp')
-rw-r--r-- | libs/hwui/Snapshot.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/hwui/Snapshot.cpp b/libs/hwui/Snapshot.cpp index ecc47d29a647..cf8229fdffb9 100644 --- a/libs/hwui/Snapshot.cpp +++ b/libs/hwui/Snapshot.cpp @@ -216,14 +216,22 @@ void Snapshot::resetTransform(float x, float y, float z) { // Clipping round rect /////////////////////////////////////////////////////////////////////////////// -void Snapshot::setClippingRoundRect(LinearAllocator& allocator, const Rect& bounds, float radius) { +void Snapshot::setClippingRoundRect(LinearAllocator& allocator, const Rect& bounds, + float radius, bool highPriority) { if (bounds.isEmpty()) { clipRect->setEmpty(); return; } + if (roundRectClipState && roundRectClipState->highPriority) { + // ignore, don't replace, already have a high priority clip + return; + } + RoundRectClipState* state = new (allocator) RoundRectClipState; + state->highPriority = highPriority; + // store the inverse drawing matrix Matrix4 roundRectDrawingMatrix; roundRectDrawingMatrix.load(getOrthoMatrix()); |