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/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
index 626ff9f..ff17af1 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/SkDisplacementMapEffect.cpp
@@ -164,17 +164,15 @@
#if SK_SUPPORT_GPU
class GrDisplacementMapEffect : public GrFragmentProcessor {
public:
- static sk_sp<GrFragmentProcessor> Make(
- SkDisplacementMapEffect::ChannelSelectorType xChannelSelector,
- SkDisplacementMapEffect::ChannelSelectorType yChannelSelector, SkVector scale,
- sk_sp<GrTextureProxy> displacement, const SkMatrix& offsetMatrix,
- sk_sp<GrTextureProxy> color,
- sk_sp<GrColorSpaceXform> colorSpaceXform, const SkISize& colorDimensions) {
- return sk_sp<GrFragmentProcessor>(
- new GrDisplacementMapEffect(xChannelSelector, yChannelSelector, scale,
- std::move(displacement),
- offsetMatrix, std::move(color), std::move(colorSpaceXform),
- colorDimensions));
+ static std::unique_ptr<GrFragmentProcessor> Make(
+ SkDisplacementMapEffect::ChannelSelectorType xChannelSelector,
+ SkDisplacementMapEffect::ChannelSelectorType yChannelSelector, SkVector scale,
+ sk_sp<GrTextureProxy> displacement, const SkMatrix& offsetMatrix,
+ sk_sp<GrTextureProxy> color, sk_sp<GrColorSpaceXform> colorSpaceXform,
+ const SkISize& colorDimensions) {
+ return std::unique_ptr<GrFragmentProcessor>(new GrDisplacementMapEffect(
+ xChannelSelector, yChannelSelector, scale, std::move(displacement), offsetMatrix,
+ std::move(color), std::move(colorSpaceXform), colorDimensions));
}
~GrDisplacementMapEffect() override;
@@ -191,7 +189,7 @@
const GrTextureDomain& domain() const { return fDomain; }
GrColorSpaceXform* colorSpaceXform() const { return fColorSpaceXform.get(); }
- sk_sp<GrFragmentProcessor> clone() const override;
+ std::unique_ptr<GrFragmentProcessor> clone() const override;
private:
static OptimizationFlags OptimizationFlags(GrPixelConfig colorConfig);
@@ -504,8 +502,8 @@
GrDisplacementMapEffect::~GrDisplacementMapEffect() {}
-sk_sp<GrFragmentProcessor> GrDisplacementMapEffect::clone() const {
- return sk_sp<GrFragmentProcessor>(new GrDisplacementMapEffect(*this));
+std::unique_ptr<GrFragmentProcessor> GrDisplacementMapEffect::clone() const {
+ return std::unique_ptr<GrFragmentProcessor>(new GrDisplacementMapEffect(*this));
}
bool GrDisplacementMapEffect::onIsEqual(const GrFragmentProcessor& sBase) const {
@@ -520,7 +518,7 @@
GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrDisplacementMapEffect);
#if GR_TEST_UTILS
-sk_sp<GrFragmentProcessor> GrDisplacementMapEffect::TestCreate(GrProcessorTestData* d) {
+std::unique_ptr<GrFragmentProcessor> GrDisplacementMapEffect::TestCreate(GrProcessorTestData* d) {
int texIdxDispl = d->fRandom->nextBool() ? GrProcessorUnitTest::kSkiaPMTextureIdx :
GrProcessorUnitTest::kAlphaTextureIdx;
int texIdxColor = d->fRandom->nextBool() ? GrProcessorUnitTest::kSkiaPMTextureIdx :