| Index: src/effects/SkXfermodeImageFilter.cpp
|
| diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp
|
| index 28d9a00c845a405f614cec5fab34e0b4e2287e6b..8f8eff56b51d211352397f616cd9f5d0d3e63a4b 100644
|
| --- a/src/effects/SkXfermodeImageFilter.cpp
|
| +++ b/src/effects/SkXfermodeImageFilter.cpp
|
| @@ -120,14 +120,13 @@ void SkXfermodeImageFilter::toString(SkString* str) const {
|
| #if SK_SUPPORT_GPU
|
|
|
| bool SkXfermodeImageFilter::canFilterImageGPU() const {
|
| - return fMode && fMode->asFragmentProcessor(nullptr, nullptr) && !cropRectIsSet();
|
| + return fMode && fMode->asFragmentProcessor(nullptr, nullptr, NULL) && !cropRectIsSet();
|
| }
|
|
|
| bool SkXfermodeImageFilter::filterImageGPU(Proxy* proxy,
|
| const SkBitmap& src,
|
| const Context& ctx,
|
| - SkBitmap* result,
|
| - SkIPoint* offset) const {
|
| + SkBitmap* result, SkIPoint* offset) const {
|
| SkBitmap background = src;
|
| SkIPoint backgroundOffset = SkIPoint::Make(0, 0);
|
| if (!this->filterInputGPU(0, proxy, src, ctx, &background, &backgroundOffset)) {
|
| @@ -165,8 +164,9 @@ bool SkXfermodeImageFilter::filterImageGPU(Proxy* proxy,
|
| SkMatrix bgMatrix;
|
| bgMatrix.setIDiv(backgroundTex->width(), backgroundTex->height());
|
| SkAutoTUnref<const GrFragmentProcessor> bgFP(
|
| - GrSimpleTextureEffect::Create(backgroundTex, bgMatrix));
|
| - if (!fMode || !fMode->asFragmentProcessor(&xferFP, bgFP)) {
|
| + GrSimpleTextureEffect::Create(backgroundTex, bgMatrix,
|
| + kLocal_GrCoordSet, dst->asRenderTarget()));
|
| + if (!fMode || !fMode->asFragmentProcessor(&xferFP, bgFP, dst->asRenderTarget())) {
|
| // canFilterImageGPU() should've taken care of this
|
| SkASSERT(false);
|
| return false;
|
| @@ -184,8 +184,9 @@ bool SkXfermodeImageFilter::filterImageGPU(Proxy* proxy,
|
| foregroundTex, foregroundMatrix,
|
| GrTextureDomain::MakeTexelDomain(foregroundTex, foreground.bounds()),
|
| GrTextureDomain::kDecal_Mode,
|
| - GrTextureParams::kNone_FilterMode)
|
| - );
|
| + GrTextureParams::kNone_FilterMode,
|
| + kLocal_GrCoordSet,
|
| + dst->asRenderTarget()));
|
|
|
| paint.addColorFragmentProcessor(foregroundDomain.get());
|
| if (xferFP) {
|
|
|