Make GrFragmentProcessor be non-refcounted and use std::unique_ptr.
Change-Id: I985e54a071338e99292a5aa2f42c92bc115b4008
Reviewed-on: https://skia-review.googlesource.com/32760
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/GrYUVProvider.cpp b/src/gpu/GrYUVProvider.cpp
index 12390aa..6b58d42 100644
--- a/src/gpu/GrYUVProvider.cpp
+++ b/src/gpu/GrYUVProvider.cpp
@@ -134,11 +134,11 @@
}
GrPaint paint;
- sk_sp<GrFragmentProcessor> yuvToRgbProcessor(
- GrYUVEffect::MakeYUVToRGB(yuvTextureContexts[0]->asTextureProxyRef(),
- yuvTextureContexts[1]->asTextureProxyRef(),
- yuvTextureContexts[2]->asTextureProxyRef(),
- yuvInfo.fSizeInfo.fSizes, yuvInfo.fColorSpace, false));
+ auto yuvToRgbProcessor =
+ GrYUVEffect::MakeYUVToRGB(yuvTextureContexts[0]->asTextureProxyRef(),
+ yuvTextureContexts[1]->asTextureProxyRef(),
+ yuvTextureContexts[2]->asTextureProxyRef(),
+ yuvInfo.fSizeInfo.fSizes, yuvInfo.fColorSpace, false);
paint.addColorFragmentProcessor(std::move(yuvToRgbProcessor));
// If we're decoding an sRGB image, the result of our linear math on the YUV planes is already
@@ -158,10 +158,10 @@
// If the caller expects the pixels in a different color space than the one from the image,
// apply a color conversion to do this.
- sk_sp<GrFragmentProcessor> colorConversionProcessor =
+ std::unique_ptr<GrFragmentProcessor> colorConversionProcessor =
GrNonlinearColorSpaceXformEffect::Make(srcColorSpace, dstColorSpace);
if (colorConversionProcessor) {
- paint.addColorFragmentProcessor(colorConversionProcessor);
+ paint.addColorFragmentProcessor(std::move(colorConversionProcessor));
}
paint.setPorterDuffXPFactory(SkBlendMode::kSrc);