Provide proper transform to mask canvas
Updated mask canvas to have the same transformation applied to the initial target canvas and device Bug: 184297961 Test: manual Change-Id: Ibdeefba8ec9f95f4acd7e3176f43a5e603e76676
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user