Index: src/effects/SkGpuBlurUtils.cpp |
diff --git a/src/effects/SkGpuBlurUtils.cpp b/src/effects/SkGpuBlurUtils.cpp |
index 2e6a7d6bde96f9b43d9b8032ec813c5c90b8af7d..8ab05dd8621669caee837cb3d10875a1a0574eac 100644 |
--- a/src/effects/SkGpuBlurUtils.cpp |
+++ b/src/effects/SkGpuBlurUtils.cpp |
@@ -59,6 +59,7 @@ static void convolve_gaussian_1d(GrDrawContext* drawContext, |
SkAutoTUnref<GrFragmentProcessor> conv(GrConvolutionEffect::CreateGaussian( |
texture, direction, radius, sigma, useBounds, bounds)); |
paint.addColorFragmentProcessor(conv); |
+ paint.setPorterDuffXPFactory(SkXfermode::kSrc_Mode); |
SkMatrix localMatrix = SkMatrix::MakeTrans(srcOffset.x(), srcOffset.y()); |
drawContext->fillRectWithLocalMatrix(clip, paint, SkMatrix::I(), dstRect, localMatrix); |
} |
@@ -89,6 +90,7 @@ static void convolve_gaussian_2d(GrDrawContext* drawContext, |
srcBounds ? GrTextureDomain::kDecal_Mode : GrTextureDomain::kIgnore_Mode, |
true, sigmaX, sigmaY)); |
paint.addColorFragmentProcessor(conv); |
+ paint.setPorterDuffXPFactory(SkXfermode::kSrc_Mode); |
drawContext->fillRectWithLocalMatrix(clip, paint, SkMatrix::I(), dstRect, localMatrix); |
} |
@@ -247,6 +249,7 @@ GrTexture* GaussianBlur(GrContext* context, |
GrTextureParams params(SkShader::kClamp_TileMode, GrTextureParams::kBilerp_FilterMode); |
paint.addColorTextureProcessor(srcTexture, matrix, params); |
} |
+ paint.setPorterDuffXPFactory(SkXfermode::kSrc_Mode); |
scale_rect(&dstRect, i < scaleFactorX ? 0.5f : 1.0f, |
i < scaleFactorY ? 0.5f : 1.0f); |
@@ -374,6 +377,7 @@ GrTexture* GaussianBlur(GrContext* context, |
// FIXME: this should be mitchell, not bilinear. |
GrTextureParams params(SkShader::kClamp_TileMode, GrTextureParams::kBilerp_FilterMode); |
paint.addColorTextureProcessor(srcTexture, matrix, params); |
+ paint.setPorterDuffXPFactory(SkXfermode::kSrc_Mode); |
SkRect dstRect(srcRect); |
scale_rect(&dstRect, (float) scaleFactorX, (float) scaleFactorY); |