Chromium Code Reviews| Index: Source/core/platform/graphics/skia/NativeImageSkia.cpp |
| diff --git a/Source/core/platform/graphics/skia/NativeImageSkia.cpp b/Source/core/platform/graphics/skia/NativeImageSkia.cpp |
| index f43c4833b9eaef96689084b5619bda1d67bd30f7..9f774f1ec916ac34131d01dd9217fcea9c0313e5 100644 |
| --- a/Source/core/platform/graphics/skia/NativeImageSkia.cpp |
| +++ b/Source/core/platform/graphics/skia/NativeImageSkia.cpp |
| @@ -45,6 +45,7 @@ |
| #include "third_party/skia/include/core/SkPaint.h" |
| #include "third_party/skia/include/core/SkScalar.h" |
| #include "third_party/skia/include/core/SkShader.h" |
| +#include "third_party/skia/include/effects/SkLumaXfermode.h" |
| #include <limits> |
| #include <math.h> |
| @@ -324,7 +325,11 @@ void NativeImageSkia::draw(GraphicsContext* context, const SkRect& srcRect, cons |
| { |
| TRACE_EVENT0("skia", "NativeImageSkia::draw"); |
| SkPaint paint; |
| - paint.setXfermode(compOp.get()); |
| + if (context->drawLuminanceMask()) { |
|
eseidel
2013/09/19 15:10:37
I believe blink style says {} are avoided when the
|
| + paint.setXfermode(SkLumaMaskXfermode::Create(SkXfermode::kSrcOver_Mode)); |
| + } else { |
| + paint.setXfermode(compOp.get()); |
| + } |
| paint.setAlpha(context->getNormalizedAlpha()); |
| paint.setLooper(context->drawLooper()); |
| // only antialias if we're rotated or skewed |
| @@ -461,7 +466,11 @@ void NativeImageSkia::drawPattern( |
| SkPaint paint; |
| paint.setShader(shader.get()); |
| - paint.setXfermode(WebCoreCompositeToSkiaComposite(compositeOp, blendMode).get()); |
| + if (context->drawLuminanceMask()) { |
| + paint.setXfermode(SkLumaMaskXfermode::Create(SkXfermode::kSrcOver_Mode)); |
| + } else { |
| + paint.setXfermode(WebCoreCompositeToSkiaComposite(compositeOp, blendMode).get()); |
| + } |
| paint.setFilterBitmap(resampling == LinearResampling); |
| if (useBicubicFilter) |