From: Brian Osman Date: Tue, 20 Dec 2016 15:36:35 +0000 (-0500) Subject: Do color space conversion in XfermodeImageFilter X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~55^2~1108 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7dc5452c9010d1b3c5677971ab0de1b36fbc0cbd;p=platform%2Fupstream%2FlibSkiaSharp.git Do color space conversion in XfermodeImageFilter BUG=skia: Change-Id: I69c92506fca62e8711cece005f169ac05d26c872 Reviewed-on: https://skia-review.googlesource.com/6324 Reviewed-by: Brian Salomon Commit-Queue: Brian Osman --- diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp index 8ecb8be..d90cb91 100644 --- a/src/effects/SkXfermodeImageFilter.cpp +++ b/src/effects/SkXfermodeImageFilter.cpp @@ -253,8 +253,10 @@ sk_sp SkXfermodeImageFilter_Base::filterImageGPU( backgroundMatrix.setIDiv(backgroundTex->width(), backgroundTex->height()); backgroundMatrix.preTranslate(-SkIntToScalar(backgroundOffset.fX), -SkIntToScalar(backgroundOffset.fY)); + sk_sp bgXform = GrColorSpaceXform::Make(background->getColorSpace(), + outputProperties.colorSpace()); bgFP = GrTextureDomainEffect::Make( - backgroundTex.get(), nullptr, backgroundMatrix, + backgroundTex.get(), std::move(bgXform), backgroundMatrix, GrTextureDomain::MakeTexelDomain(backgroundTex.get(), background->subset()), GrTextureDomain::kDecal_Mode, @@ -269,12 +271,13 @@ sk_sp SkXfermodeImageFilter_Base::filterImageGPU( foregroundMatrix.setIDiv(foregroundTex->width(), foregroundTex->height()); foregroundMatrix.preTranslate(-SkIntToScalar(foregroundOffset.fX), -SkIntToScalar(foregroundOffset.fY)); - + sk_sp fgXform = GrColorSpaceXform::Make(foreground->getColorSpace(), + outputProperties.colorSpace()); sk_sp foregroundFP; foregroundFP = GrTextureDomainEffect::Make( - foregroundTex.get(), nullptr, foregroundMatrix, - GrTextureDomain::MakeTexelDomain(foregroundTex.get(), + foregroundTex.get(), std::move(fgXform), foregroundMatrix, + GrTextureDomain::MakeTexelDomain(foregroundTex.get(), foreground->subset()), GrTextureDomain::kDecal_Mode, GrSamplerParams::kNone_FilterMode);