Index: third_party/WebKit/Source/platform/graphics/StaticBitmapImage.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/StaticBitmapImage.cpp b/third_party/WebKit/Source/platform/graphics/StaticBitmapImage.cpp |
index 3d85460343ee69b82b0ae05d01995c03eb727b2f..1e6cd0d353f2492283ad0e586b9cf92707f78ca0 100644 |
--- a/third_party/WebKit/Source/platform/graphics/StaticBitmapImage.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/StaticBitmapImage.cpp |
@@ -61,7 +61,7 @@ bool StaticBitmapImage::currentFrameKnownToBeOpaque(MetadataMode) |
} |
void StaticBitmapImage::draw(SkCanvas* canvas, const SkPaint& paint, const FloatRect& dstRect, |
- const FloatRect& srcRect, RespectImageOrientationEnum, ImageClampingMode clampMode) |
+ const FloatRect& srcRect, bool imageSmoothingEnabled, RespectImageOrientationEnum, ImageClampingMode clampMode) |
{ |
FloatRect adjustedSrcRect = srcRect; |
adjustedSrcRect.intersect(SkRect::Make(m_image->bounds())); |
@@ -69,7 +69,11 @@ void StaticBitmapImage::draw(SkCanvas* canvas, const SkPaint& paint, const Float |
if (dstRect.isEmpty() || adjustedSrcRect.isEmpty()) |
return; // Nothing to draw. |
- canvas->drawImageRect(m_image.get(), adjustedSrcRect, dstRect, &paint, |
+ SkPaint adjustedPaint = paint; |
+ if (!imageSmoothingEnabled && Image::isDrawScalingDown(adjustedSrcRect, dstRect)) |
+ adjustedPaint.setFilterQuality(kLow_SkFilterQuality); |
+ |
+ canvas->drawImageRect(m_image.get(), adjustedSrcRect, dstRect, &adjustedPaint, |
WebCoreClampingModeToSkiaRectConstraint(clampMode)); |
if (ImageObserver* observer = getImageObserver()) |