| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index 07a946ef94ab1820ad71a2d48e69d97a98b23a4d..c367f47e8d78731075bfe36af2e96d69e178756e 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -1180,8 +1180,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;
|
| @@ -1193,6 +1195,7 @@ void SkGpuDevice::drawBitmapCommon(const SkDraw& draw,
|
| tileFilterPad = 1;
|
| }
|
| break;
|
| + }
|
| default:
|
| SkErrorInternals::SetError( kInvalidPaint_SkError,
|
| "Sorry, I don't understand the filtering "
|
|
|