diff options
author | Chris Craik <ccraik@google.com> | 2014-09-15 15:59:55 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-09-15 15:59:57 +0000 |
commit | 025207b3cfbb0bbbaa8c1b8f7e14941fc38160aa (patch) | |
tree | bc51822a819b68208369f4f11347d8f06a83aab6 /libs | |
parent | bd9d66474353f411dd2167d4216a46a547b7221d (diff) | |
parent | 4ace7305608442ab35ea9aa65a4220df152c187f (diff) | |
download | frameworks_base-025207b3cfbb0bbbaa8c1b8f7e14941fc38160aa.zip frameworks_base-025207b3cfbb0bbbaa8c1b8f7e14941fc38160aa.tar.gz frameworks_base-025207b3cfbb0bbbaa8c1b8f7e14941fc38160aa.tar.bz2 |
Merge "Force isolation of clip and matrix within layer" into lmp-dev
Diffstat (limited to 'libs')
-rw-r--r-- | libs/hwui/DisplayListRenderer.cpp | 3 | ||||
-rwxr-xr-x | libs/hwui/OpenGLRenderer.cpp | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp index 5892978..7ee83e6 100644 --- a/libs/hwui/DisplayListRenderer.cpp +++ b/libs/hwui/DisplayListRenderer.cpp @@ -117,6 +117,9 @@ void DisplayListRenderer::restoreToCount(int saveCount) { int DisplayListRenderer::saveLayer(float left, float top, float right, float bottom, const SkPaint* paint, int flags) { + // force matrix/clip isolation for layer + flags |= SkCanvas::kClip_SaveFlag | SkCanvas::kMatrix_SaveFlag; + paint = refPaint(paint); addStateOp(new (alloc()) SaveLayerOp(left, top, right, bottom, paint, flags)); return StatefulBaseRenderer::save(flags); diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 0415efa..25ea729 100755 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -638,6 +638,9 @@ void OpenGLRenderer::onSnapshotRestored(const Snapshot& removed, const Snapshot& int OpenGLRenderer::saveLayer(float left, float top, float right, float bottom, const SkPaint* paint, int flags, const SkPath* convexMask) { + // force matrix/clip isolation for layer + flags |= SkCanvas::kClip_SaveFlag | SkCanvas::kMatrix_SaveFlag; + const int count = saveSnapshot(flags); if (!currentSnapshot()->isIgnored()) { |