| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index 39f9ef3d7c9533f11f721b3054db1832c7041705..36e76e99409e2975d9581e44a2ce038dc68c0787 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -922,6 +922,10 @@ void SkGpuDevice::drawPath(const SkDraw& draw, const SkPath& origSrcPath,
|
| draw.fClip->getBounds(),
|
| fContext->getMatrix(),
|
| &maskRect)) {
|
| + // The context's matrix may change while creating the mask, so save the CTM here to
|
| + // pass to filterMaskGPU.
|
| + const SkMatrix ctm = fContext->getMatrix();
|
| +
|
| SkIRect finalIRect;
|
| maskRect.roundOut(&finalIRect);
|
| if (draw.fClip->quickReject(finalIRect)) {
|
| @@ -940,8 +944,7 @@ void SkGpuDevice::drawPath(const SkDraw& draw, const SkPath& origSrcPath,
|
| GrTexture* filtered;
|
|
|
| if (paint.getMaskFilter()->filterMaskGPU(mask.texture(),
|
| - fContext->getMatrix(), maskRect,
|
| - &filtered, true)) {
|
| + ctm, maskRect, &filtered, true)) {
|
| // filterMaskGPU gives us ownership of a ref to the result
|
| SkAutoTUnref<GrTexture> atu(filtered);
|
|
|
|
|