Index: Source/platform/graphics/skia/NativeImageSkia.cpp |
diff --git a/Source/platform/graphics/skia/NativeImageSkia.cpp b/Source/platform/graphics/skia/NativeImageSkia.cpp |
index a963e3e14b50cdf6b0063eddd972d4914828345a..539950d32864b58eee3896ffd69c4172ada26107 100644 |
--- a/Source/platform/graphics/skia/NativeImageSkia.cpp |
+++ b/Source/platform/graphics/skia/NativeImageSkia.cpp |
@@ -144,13 +144,14 @@ static ResamplingMode limitResamplingMode(GraphicsContext* context, ResamplingMo |
case InterpolationNone: |
return NoResampling; |
case InterpolationMedium: |
- // For now we treat InterpolationMedium and InterpolationLow the same. |
- case InterpolationLow: |
if (resampling == AwesomeResampling) |
+ return MediumResampling; |
+ break; |
+ case InterpolationLow: |
+ if (resampling == AwesomeResampling || resampling == MediumResampling) |
return LinearResampling; |
break; |
case InterpolationHigh: |
- case InterpolationDefault: |
Stephen Chennney
2014/03/18 12:56:32
I think you'll get build errors due to enum not in
Alpha Left Google
2014/03/18 22:59:13
Actually this is correct since InterpolationDefaul
|
break; |
} |
@@ -353,7 +354,6 @@ void NativeImageSkia::draw(GraphicsContext* context, const SkRect& srcRect, cons |
resampling = LinearResampling; |
} |
resampling = limitResamplingMode(context, resampling); |
- paint.setFilterBitmap(resampling == LinearResampling); |
bool isLazyDecoded = DeferredImageDecoder::isLazyDecoded(bitmap()); |
// FIXME: Bicubic filtering in Skia is only applied to defer-decoded images |
@@ -363,6 +363,12 @@ void NativeImageSkia::draw(GraphicsContext* context, const SkRect& srcRect, cons |
if (useBicubicFilter) |
paint.setFilterLevel(SkPaint::kHigh_FilterLevel); |
+ else if (resampling == MediumResampling) |
Stephen White
2014/03/18 17:26:43
I'd suggest to refactor this out into a helper fun
Alpha Left Google
2014/03/18 22:59:13
Done.
|
+ paint.setFilterLevel(SkPaint::kMedium_FilterLevel); |
+ else if (resampling == LinearResampling) |
+ paint.setFilterLevel(SkPaint::kLow_FilterLevel); |
+ else |
+ paint.setFilterLevel(SkPaint::kNone_FilterLevel); |
if (resampling == AwesomeResampling && !useBicubicFilter) { |
// Resample the image and then draw the result to canvas with bilinear |
@@ -497,9 +503,14 @@ void NativeImageSkia::drawPattern( |
paint.setXfermode(WebCoreCompositeToSkiaComposite(compositeOp, blendMode).get()); |
paint.setColorFilter(context->colorFilter()); |
- paint.setFilterBitmap(resampling == LinearResampling); |
if (useBicubicFilter) |
paint.setFilterLevel(SkPaint::kHigh_FilterLevel); |
+ else if (resampling == MediumResampling) |
+ paint.setFilterLevel(SkPaint::kMedium_FilterLevel); |
+ else if (resampling == LinearResampling) |
+ paint.setFilterLevel(SkPaint::kLow_FilterLevel); |
+ else |
+ paint.setFilterLevel(SkPaint::kNone_FilterLevel); |
if (isLazyDecoded) |
PlatformInstrumentation::didDrawLazyPixelRef(bitmap().getGenerationID()); |