diff options
author | Brian Salomon <bsalomon@google.com> | 2017-08-11 09:40:37 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-11 14:13:26 +0000 |
commit | aff329b8e9b239bca1d93b13a914fbef45ccf7fe (patch) | |
tree | 06ba42a557c6695f145bcf4956c981fc87af55ff /src/shaders/SkPerlinNoiseShader.cpp | |
parent | e2cbd0451832ec71d1b498e0f64d02b7d096b2b7 (diff) |
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>
Diffstat (limited to 'src/shaders/SkPerlinNoiseShader.cpp')
-rw-r--r-- | src/shaders/SkPerlinNoiseShader.cpp | 74 |
1 files changed, 36 insertions, 38 deletions
diff --git a/src/shaders/SkPerlinNoiseShader.cpp b/src/shaders/SkPerlinNoiseShader.cpp index 0ce007a55a..cc9a56959d 100644 --- a/src/shaders/SkPerlinNoiseShader.cpp +++ b/src/shaders/SkPerlinNoiseShader.cpp @@ -350,7 +350,7 @@ public: }; #if SK_SUPPORT_GPU - sk_sp<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; + std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(const AsFPArgs&) const override; #endif SK_TO_STRING_OVERRIDE() @@ -693,22 +693,20 @@ private: class GrPerlinNoise2Effect : public GrFragmentProcessor { public: - static sk_sp<GrFragmentProcessor> Make(SkPerlinNoiseShaderImpl::Type type, - int numOctaves, bool stitchTiles, - std::unique_ptr<SkPerlinNoiseShaderImpl::PaintingData> paintingData, - sk_sp<GrTextureProxy> permutationsProxy, - sk_sp<GrTextureProxy> noiseProxy, - const SkMatrix& matrix) { - return sk_sp<GrFragmentProcessor>( - new GrPerlinNoise2Effect(type, numOctaves, stitchTiles, - std::move(paintingData), - std::move(permutationsProxy), std::move(noiseProxy), matrix)); + static std::unique_ptr<GrFragmentProcessor> Make( + SkPerlinNoiseShaderImpl::Type type, int numOctaves, bool stitchTiles, + std::unique_ptr<SkPerlinNoiseShaderImpl::PaintingData> paintingData, + sk_sp<GrTextureProxy> permutationsProxy, sk_sp<GrTextureProxy> noiseProxy, + const SkMatrix& matrix) { + return std::unique_ptr<GrFragmentProcessor>(new GrPerlinNoise2Effect( + type, numOctaves, stitchTiles, std::move(paintingData), + std::move(permutationsProxy), std::move(noiseProxy), matrix)); } const char* name() const override { return "PerlinNoise"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new GrPerlinNoise2Effect(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new GrPerlinNoise2Effect(*this)); } const SkPerlinNoiseShaderImpl::StitchData& stitchData() const { return fPaintingData->fStitchDataInit; } @@ -789,7 +787,7 @@ private: GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrPerlinNoise2Effect); #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> GrPerlinNoise2Effect::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> GrPerlinNoise2Effect::TestCreate(GrProcessorTestData* d) { int numOctaves = d->fRandom->nextRangeU(2, 10); bool stitchTiles = d->fRandom->nextBool(); SkScalar seed = SkIntToScalar(d->fRandom->nextU()); @@ -1128,21 +1126,20 @@ private: class GrImprovedPerlinNoiseEffect : public GrFragmentProcessor { public: - static sk_sp<GrFragmentProcessor> Make(int octaves, SkScalar z, - std::unique_ptr<SkPerlinNoiseShaderImpl::PaintingData> paintingData, - sk_sp<GrTextureProxy> permutationsProxy, - sk_sp<GrTextureProxy> gradientProxy, - const SkMatrix& matrix) { - return sk_sp<GrFragmentProcessor>( - new GrImprovedPerlinNoiseEffect(octaves, z, std::move(paintingData), - std::move(permutationsProxy), - std::move(gradientProxy), matrix)); + static std::unique_ptr<GrFragmentProcessor> Make( + int octaves, SkScalar z, + std::unique_ptr<SkPerlinNoiseShaderImpl::PaintingData> paintingData, + sk_sp<GrTextureProxy> permutationsProxy, sk_sp<GrTextureProxy> gradientProxy, + const SkMatrix& matrix) { + return std::unique_ptr<GrFragmentProcessor>(new GrImprovedPerlinNoiseEffect( + octaves, z, std::move(paintingData), std::move(permutationsProxy), + std::move(gradientProxy), matrix)); } const char* name() const override { return "ImprovedPerlinNoise"; } - sk_sp<GrFragmentProcessor> clone() const override { - return sk_sp<GrFragmentProcessor>(new GrImprovedPerlinNoiseEffect(*this)); + std::unique_ptr<GrFragmentProcessor> clone() const override { + return std::unique_ptr<GrFragmentProcessor>(new GrImprovedPerlinNoiseEffect(*this)); } const SkVector& baseFrequency() const { return fPaintingData->fBaseFrequency; } @@ -1213,7 +1210,8 @@ private: GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrImprovedPerlinNoiseEffect); #if GR_TEST_UTILS -sk_sp<GrFragmentProcessor> GrImprovedPerlinNoiseEffect::TestCreate(GrProcessorTestData* d) { +std::unique_ptr<GrFragmentProcessor> GrImprovedPerlinNoiseEffect::TestCreate( + GrProcessorTestData* d) { SkScalar baseFrequencyX = d->fRandom->nextRangeScalar(0.01f, 0.99f); SkScalar baseFrequencyY = d->fRandom->nextRangeScalar(0.01f, @@ -1387,7 +1385,8 @@ void GrGLImprovedPerlinNoise::onSetData(const GrGLSLProgramDataManager& pdman, } ///////////////////////////////////////////////////////////////////// -sk_sp<GrFragmentProcessor> SkPerlinNoiseShaderImpl::asFragmentProcessor(const AsFPArgs& args) const { +std::unique_ptr<GrFragmentProcessor> SkPerlinNoiseShaderImpl::asFragmentProcessor( + const AsFPArgs& args) const { SkASSERT(args.fContext); SkMatrix localMatrix = this->getLocalMatrix(); @@ -1434,9 +1433,9 @@ sk_sp<GrFragmentProcessor> SkPerlinNoiseShaderImpl::asFragmentProcessor(const As // TODO: Either treat the output of this shader as sRGB or allow client to specify a // color space of the noise. Either way, this case (and the GLSL) need to convert to // the destination. - sk_sp<GrFragmentProcessor> inner( - GrConstColorProcessor::Make(GrColor4f::FromGrColor(0x80404040), - GrConstColorProcessor::kModulateRGBA_InputMode)); + auto inner = + GrConstColorProcessor::Make(GrColor4f::FromGrColor(0x80404040), + GrConstColorProcessor::kModulateRGBA_InputMode); return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner)); } // Emit zero. @@ -1451,14 +1450,13 @@ sk_sp<GrFragmentProcessor> SkPerlinNoiseShaderImpl::asFragmentProcessor(const As paintingData->getNoiseBitmap()); if (permutationsProxy && noiseProxy) { - sk_sp<GrFragmentProcessor> inner( - GrPerlinNoise2Effect::Make(fType, - fNumOctaves, - fStitchTiles, - std::move(paintingData), - std::move(permutationsProxy), - std::move(noiseProxy), - m)); + auto inner = GrPerlinNoise2Effect::Make(fType, + fNumOctaves, + fStitchTiles, + std::move(paintingData), + std::move(permutationsProxy), + std::move(noiseProxy), + m); return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner)); } return nullptr; |