| Index: src/effects/SkXfermodeImageFilter.cpp
|
| diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp
|
| index 1921e00a1afa6b3443f0490bdb95f655600c343c..785b46fcc70d321821aeea7abbeaea505783243c 100644
|
| --- a/src/effects/SkXfermodeImageFilter.cpp
|
| +++ b/src/effects/SkXfermodeImageFilter.cpp
|
| @@ -180,22 +180,22 @@ sk_sp<SkSpecialImage> SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour
|
|
|
| GrPaint paint;
|
| // SRGBTODO: AllowSRGBInputs?
|
| - SkAutoTUnref<const GrFragmentProcessor> bgFP;
|
| + sk_sp<GrFragmentProcessor> bgFP;
|
|
|
| if (backgroundTex) {
|
| SkMatrix backgroundMatrix;
|
| backgroundMatrix.setIDiv(backgroundTex->width(), backgroundTex->height());
|
| backgroundMatrix.preTranslate(SkIntToScalar(-backgroundOffset.fX),
|
| SkIntToScalar(-backgroundOffset.fY));
|
| - bgFP.reset(GrTextureDomainEffect::Create(
|
| + bgFP = GrTextureDomainEffect::Make(
|
| backgroundTex.get(), backgroundMatrix,
|
| GrTextureDomain::MakeTexelDomain(backgroundTex.get(),
|
| background->subset()),
|
| GrTextureDomain::kDecal_Mode,
|
| - GrTextureParams::kNone_FilterMode));
|
| + GrTextureParams::kNone_FilterMode);
|
| } else {
|
| - bgFP.reset(GrConstColorProcessor::Create(GrColor_TRANSPARENT_BLACK,
|
| - GrConstColorProcessor::kIgnore_InputMode));
|
| + bgFP = GrConstColorProcessor::Make(GrColor_TRANSPARENT_BLACK,
|
| + GrConstColorProcessor::kIgnore_InputMode);
|
| }
|
|
|
| if (foregroundTex) {
|
| @@ -204,16 +204,16 @@ sk_sp<SkSpecialImage> SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour
|
| foregroundMatrix.preTranslate(SkIntToScalar(-foregroundOffset.fX),
|
| SkIntToScalar(-foregroundOffset.fY));
|
|
|
| - SkAutoTUnref<const GrFragmentProcessor> foregroundFP;
|
| + sk_sp<GrFragmentProcessor> foregroundFP;
|
|
|
| - foregroundFP.reset(GrTextureDomainEffect::Create(
|
| + foregroundFP = GrTextureDomainEffect::Make(
|
| foregroundTex.get(), foregroundMatrix,
|
| GrTextureDomain::MakeTexelDomain(foregroundTex.get(),
|
| foreground->subset()),
|
| GrTextureDomain::kDecal_Mode,
|
| - GrTextureParams::kNone_FilterMode));
|
| + GrTextureParams::kNone_FilterMode);
|
|
|
| - paint.addColorFragmentProcessor(foregroundFP.get());
|
| + paint.addColorFragmentProcessor(std::move(foregroundFP));
|
|
|
| // A null fMode is interpreted to mean kSrcOver_Mode (to match raster).
|
| SkAutoTUnref<SkXfermode> mode(SkSafeRef(fMode.get()));
|
| @@ -228,14 +228,15 @@ sk_sp<SkSpecialImage> SkXfermodeImageFilter::filterImageGPU(SkSpecialImage* sour
|
| mode.reset(new SkProcCoeffXfermode(rec, SkXfermode::kSrcOver_Mode));
|
| }
|
|
|
| - sk_sp<const GrFragmentProcessor> xferFP(mode->getFragmentProcessorForImageFilter(bgFP));
|
| + sk_sp<GrFragmentProcessor> xferFP(
|
| + mode->makeFragmentProcessorForImageFilter(std::move(bgFP)));
|
|
|
| // A null 'xferFP' here means kSrc_Mode was used in which case we can just proceed
|
| if (xferFP) {
|
| - paint.addColorFragmentProcessor(xferFP.get());
|
| + paint.addColorFragmentProcessor(std::move(xferFP));
|
| }
|
| } else {
|
| - paint.addColorFragmentProcessor(bgFP);
|
| + paint.addColorFragmentProcessor(std::move(bgFP));
|
| }
|
|
|
| paint.setPorterDuffXPFactory(SkXfermode::kSrc_Mode);
|
|
|