| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index 2555b41c515637b5c1f62bba4029ca2d74399e86..f45572bb9641a03b444e2453a262c6ebe5c64622 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -1194,8 +1194,10 @@ void SkGpuDevice::drawBitmapCommon(const SkDraw& draw,
|
| tileFilterPad = 1;
|
| textureFilterMode = GrTextureParams::kMipMap_FilterMode;
|
| break;
|
| - case SkPaint::kHigh_FilterLevel:
|
| - if (flags & SkCanvas::kBleed_DrawBitmapRectFlag) {
|
| + case SkPaint::kHigh_FilterLevel: {
|
| + // Minification can look bad with the bicubic effect.
|
| + if (fContext->getMatrix().getMinStretch() >= SK_Scalar1 &&
|
| + (flags & SkCanvas::kBleed_DrawBitmapRectFlag)) {
|
| // We will install an effect that does the filtering in the shader.
|
| textureFilterMode = GrTextureParams::kNone_FilterMode;
|
| tileFilterPad = GrBicubicEffect::kFilterTexelPad;
|
| @@ -1207,6 +1209,7 @@ void SkGpuDevice::drawBitmapCommon(const SkDraw& draw,
|
| tileFilterPad = 1;
|
| }
|
| break;
|
| + }
|
| default:
|
| SkErrorInternals::SetError( kInvalidPaint_SkError,
|
| "Sorry, I don't understand the filtering "
|
|
|