| Index: experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
|
| diff --git a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
|
| index ab0c46c3501772eec4e9c0f40da31d6796affd8c..b0c60f71610e5e48b2dd9a07ad892bd475e5533d 100644
|
| --- a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
|
| +++ b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
|
| @@ -630,13 +630,14 @@ private:
|
|
|
| class GrPerlinNoise2Effect : public GrFragmentProcessor {
|
| public:
|
| - static GrFragmentProcessor* Create(SkPerlinNoiseShader2::Type type,
|
| - int numOctaves, bool stitchTiles,
|
| - SkPerlinNoiseShader2::PaintingData* paintingData,
|
| - GrTexture* permutationsTexture, GrTexture* noiseTexture,
|
| - const SkMatrix& matrix) {
|
| - return new GrPerlinNoise2Effect(type, numOctaves, stitchTiles, paintingData,
|
| - permutationsTexture, noiseTexture, matrix);
|
| + static sk_sp<GrFragmentProcessor> Make(SkPerlinNoiseShader2::Type type,
|
| + int numOctaves, bool stitchTiles,
|
| + SkPerlinNoiseShader2::PaintingData* paintingData,
|
| + GrTexture* permutationsTexture, GrTexture* noiseTexture,
|
| + const SkMatrix& matrix) {
|
| + return sk_sp<GrFragmentProcessor>(
|
| + new GrPerlinNoise2Effect(type, numOctaves, stitchTiles, paintingData,
|
| + permutationsTexture, noiseTexture, matrix));
|
| }
|
|
|
| virtual ~GrPerlinNoise2Effect() { delete fPaintingData; }
|
| @@ -709,7 +710,7 @@ private:
|
| /////////////////////////////////////////////////////////////////////
|
| GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrPerlinNoise2Effect);
|
|
|
| -const GrFragmentProcessor* GrPerlinNoise2Effect::TestCreate(GrProcessorTestData* d) {
|
| +sk_sp<GrFragmentProcessor> GrPerlinNoise2Effect::TestCreate(GrProcessorTestData* d) {
|
| int numOctaves = d->fRandom->nextRangeU(2, 10);
|
| bool stitchTiles = d->fRandom->nextBool();
|
| SkScalar seed = SkIntToScalar(d->fRandom->nextU());
|
| @@ -1050,12 +1051,14 @@ private:
|
|
|
| class GrImprovedPerlinNoiseEffect : public GrFragmentProcessor {
|
| public:
|
| - static GrFragmentProcessor* Create(int octaves, SkScalar z,
|
| - SkPerlinNoiseShader2::PaintingData* paintingData,
|
| - GrTexture* permutationsTexture, GrTexture* gradientTexture,
|
| - const SkMatrix& matrix) {
|
| - return new GrImprovedPerlinNoiseEffect(octaves, z, paintingData, permutationsTexture,
|
| - gradientTexture, matrix);
|
| + static sk_sp<GrFragmentProcessor> Make(int octaves, SkScalar z,
|
| + SkPerlinNoiseShader2::PaintingData* paintingData,
|
| + GrTexture* permutationsTexture,
|
| + GrTexture* gradientTexture,
|
| + const SkMatrix& matrix) {
|
| + return sk_sp<GrFragmentProcessor>(
|
| + new GrImprovedPerlinNoiseEffect(octaves, z, paintingData, permutationsTexture,
|
| + gradientTexture, matrix));
|
| }
|
|
|
| virtual ~GrImprovedPerlinNoiseEffect() { delete fPaintingData; }
|
| @@ -1118,7 +1121,7 @@ private:
|
| /////////////////////////////////////////////////////////////////////
|
| GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrImprovedPerlinNoiseEffect);
|
|
|
| -const GrFragmentProcessor* GrImprovedPerlinNoiseEffect::TestCreate(GrProcessorTestData* d) {
|
| +sk_sp<GrFragmentProcessor> GrImprovedPerlinNoiseEffect::TestCreate(GrProcessorTestData* d) {
|
| SkScalar baseFrequencyX = d->fRandom->nextRangeScalar(0.01f,
|
| 0.99f);
|
| SkScalar baseFrequencyY = d->fRandom->nextRangeScalar(0.01f,
|
| @@ -1298,7 +1301,7 @@ void GrGLImprovedPerlinNoise::onSetData(const GrGLSLProgramDataManager& pdman,
|
| }
|
|
|
| /////////////////////////////////////////////////////////////////////
|
| -const GrFragmentProcessor* SkPerlinNoiseShader2::asFragmentProcessor(
|
| +sk_sp<GrFragmentProcessor> SkPerlinNoiseShader2::asFragmentProcessor(
|
| GrContext* context,
|
| const SkMatrix& viewM,
|
| const SkMatrix* externalLocalMatrix,
|
| @@ -1333,20 +1336,20 @@ const GrFragmentProcessor* SkPerlinNoiseShader2::asFragmentProcessor(
|
| SkAutoTUnref<GrTexture> gradientTexture(
|
| GrRefCachedBitmapTexture(context, paintingData->getGradientBitmap(),
|
| textureParams, gammaTreatment));
|
| - return GrImprovedPerlinNoiseEffect::Create(fNumOctaves, fSeed, paintingData,
|
| + return GrImprovedPerlinNoiseEffect::Make(fNumOctaves, fSeed, paintingData,
|
| permutationsTexture, gradientTexture, m);
|
| }
|
|
|
| if (0 == fNumOctaves) {
|
| if (kFractalNoise_Type == fType) {
|
| // Extract the incoming alpha and emit rgba = (a/4, a/4, a/4, a/2)
|
| - SkAutoTUnref<const GrFragmentProcessor> inner(
|
| - GrConstColorProcessor::Create(0x80404040,
|
| - GrConstColorProcessor::kModulateRGBA_InputMode));
|
| - return GrFragmentProcessor::MulOutputByInputAlpha(inner);
|
| + sk_sp<GrFragmentProcessor> inner(
|
| + GrConstColorProcessor::Make(0x80404040,
|
| + GrConstColorProcessor::kModulateRGBA_InputMode));
|
| + return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner));
|
| }
|
| // Emit zero.
|
| - return GrConstColorProcessor::Create(0x0, GrConstColorProcessor::kIgnore_InputMode);
|
| + return GrConstColorProcessor::Make(0x0, GrConstColorProcessor::kIgnore_InputMode);
|
| }
|
|
|
| SkAutoTUnref<GrTexture> permutationsTexture(
|
| @@ -1357,14 +1360,14 @@ const GrFragmentProcessor* SkPerlinNoiseShader2::asFragmentProcessor(
|
| GrTextureParams::ClampNoFilter(), gammaTreatment));
|
|
|
| if ((permutationsTexture) && (noiseTexture)) {
|
| - SkAutoTUnref<GrFragmentProcessor> inner(
|
| - GrPerlinNoise2Effect::Create(fType,
|
| - fNumOctaves,
|
| - fStitchTiles,
|
| - paintingData,
|
| - permutationsTexture, noiseTexture,
|
| - m));
|
| - return GrFragmentProcessor::MulOutputByInputAlpha(inner);
|
| + sk_sp<GrFragmentProcessor> inner(
|
| + GrPerlinNoise2Effect::Make(fType,
|
| + fNumOctaves,
|
| + fStitchTiles,
|
| + paintingData,
|
| + permutationsTexture, noiseTexture,
|
| + m));
|
| + return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner));
|
| }
|
| delete paintingData;
|
| return nullptr;
|
|
|