Index: third_party/WebKit/Source/platform/graphics/PaintGeneratedImage.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/PaintGeneratedImage.cpp b/third_party/WebKit/Source/platform/graphics/PaintGeneratedImage.cpp |
index 395fe34f519f2d3f62b562e585b6a3c1fd6fb837..9d27d218906d7d38319f37ada7d1ea259f467558 100644 |
--- a/third_party/WebKit/Source/platform/graphics/PaintGeneratedImage.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/PaintGeneratedImage.cpp |
@@ -10,7 +10,7 @@ |
namespace blink { |
-void PaintGeneratedImage::draw(SkCanvas* canvas, const SkPaint& paint, const FloatRect& destRect, const FloatRect& srcRect, RespectImageOrientationEnum, ImageClampingMode) |
+void PaintGeneratedImage::draw(SkCanvas* canvas, const SkPaint& paint, const FloatRect& destRect, const FloatRect& srcRect, bool imageSmoothingEnabled, RespectImageOrientationEnum, ImageClampingMode) |
{ |
SkAutoCanvasRestore ar(canvas, true); |
canvas->clipRect(destRect); |
@@ -18,7 +18,12 @@ void PaintGeneratedImage::draw(SkCanvas* canvas, const SkPaint& paint, const Flo |
if (destRect.size() != srcRect.size()) |
canvas->scale(destRect.width() / srcRect.width(), destRect.height() / srcRect.height()); |
canvas->translate(-srcRect.x(), -srcRect.y()); |
- canvas->drawPicture(m_picture.get(), nullptr, &paint); |
+ |
+ SkPaint adjustedPaint = paint; |
+ if (!imageSmoothingEnabled && Image::isDrawScalingDown(srcRect, destRect)) |
+ adjustedPaint.setFilterQuality(kLow_SkFilterQuality); |
+ |
+ canvas->drawPicture(m_picture.get(), nullptr, &adjustedPaint); |
} |
void PaintGeneratedImage::drawTile(GraphicsContext& context, const FloatRect& srcRect) |