| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index ea24c8d6d74fb8b1b720bf1c92523684fce1a273..bba352569abe80026824e8c0d4435ba2b0c16e1b 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -544,7 +544,7 @@ void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rect,
|
| if (rect.transform(*draw.fMatrix, &devRRect)) {
|
| if (devRRect.allCornersCircular()) {
|
| SkRect maskRect;
|
| - if (paint.getMaskFilter()->canFilterMaskGPU(devRRect.rect(),
|
| + if (paint.getMaskFilter()->canFilterMaskGPU(devRRect,
|
| draw.fClip->getBounds(),
|
| *draw.fMatrix,
|
| &maskRect)) {
|
| @@ -637,7 +637,9 @@ void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval,
|
| bool usePath = false;
|
| // some basic reasons we might need to call drawPath...
|
| if (paint.getMaskFilter()) {
|
| - usePath = true;
|
| + // The RRect path can handle special case blurring
|
| + SkRRect rr = SkRRect::MakeOval(oval);
|
| + return this->drawRRect(draw, rr, paint);
|
| } else {
|
| const SkPathEffect* pe = paint.getPathEffect();
|
| if (pe && !strokeInfo.isDashed()) {
|
|
|