summaryrefslogtreecommitdiff
path: root/libs/hwui/pipeline/skia/StretchMask.cpp
diff options
context:
space:
mode:
authorChris Gross <chrisgross@google.com>2021-05-19 11:39:13 -0700
committerScott Lobdell <slobdell@google.com>2021-05-21 00:34:23 +0000
commit219787565ff982848d596fa8743cd132af113e6b (patch)
tree93bd3c94771fb966fdf611d38865e712fb83e969 /libs/hwui/pipeline/skia/StretchMask.cpp
parent7b4a006d559a571313e36799d93af7e3c6b69c82 (diff)
parent75eb1dd292d1800d660c5146464264b25854d318 (diff)
Merge SP1A.210513.004
Change-Id: Ic23aece12c3bbd2b4dcf3205fdbcdd1601deabec
Diffstat (limited to 'libs/hwui/pipeline/skia/StretchMask.cpp')
-rw-r--r--libs/hwui/pipeline/skia/StretchMask.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/hwui/pipeline/skia/StretchMask.cpp b/libs/hwui/pipeline/skia/StretchMask.cpp
index 2bbd8a4fa028..1c58c6a5d440 100644
--- a/libs/hwui/pipeline/skia/StretchMask.cpp
+++ b/libs/hwui/pipeline/skia/StretchMask.cpp
@@ -46,9 +46,16 @@ void StretchMask::draw(GrRecordingContext* context,
if (mIsDirty) {
SkCanvas* maskCanvas = mMaskSurface->getCanvas();
+ // Make sure to apply target transformation to the mask canvas
+ // to ensure the replayed drawing commands generate the same result
+ auto previousMatrix = displayList->mParentMatrix;
+ displayList->mParentMatrix = maskCanvas->getTotalMatrix();
+ maskCanvas->save();
maskCanvas->drawColor(0, SkBlendMode::kClear);
TransformCanvas transformCanvas(maskCanvas, SkBlendMode::kSrcOver);
displayList->draw(&transformCanvas);
+ maskCanvas->restore();
+ displayList->mParentMatrix = previousMatrix;
}
sk_sp<SkImage> maskImage = mMaskSurface->makeImageSnapshot();