| Index: experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
|
| diff --git a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
|
| index b0c60f71610e5e48b2dd9a07ad892bd475e5533d..ac344924a36e3d347138d62e953c2691eded0073 100644
|
| --- a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
|
| +++ b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
|
| @@ -728,9 +728,10 @@ sk_sp<GrFragmentProcessor> GrPerlinNoise2Effect::TestCreate(GrProcessorTestData*
|
| stitchTiles ? &tileSize : nullptr));
|
|
|
| GrPaint grPaint;
|
| - return shader->asFragmentProcessor(d->fContext,
|
| - GrTest::TestMatrix(d->fRandom), nullptr,
|
| - kNone_SkFilterQuality, SkSourceGammaTreatment::kRespect);
|
| + SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom);
|
| + return shader->asFragmentProcessor(SkShader::AsFPArgs(d->fContext, &viewMatrix, nullptr,
|
| + kNone_SkFilterQuality,
|
| + SkSourceGammaTreatment::kRespect));
|
| }
|
|
|
| void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
|
| @@ -1135,9 +1136,10 @@ sk_sp<GrFragmentProcessor> GrImprovedPerlinNoiseEffect::TestCreate(GrProcessorTe
|
| z));
|
|
|
| GrPaint grPaint;
|
| - return shader->asFragmentProcessor(d->fContext,
|
| - GrTest::TestMatrix(d->fRandom), nullptr,
|
| - kNone_SkFilterQuality, SkSourceGammaTreatment::kRespect);
|
| + SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom);
|
| + return shader->asFragmentProcessor(SkShader::AsFPArgs(d->fContext, &viewMatrix, nullptr,
|
| + kNone_SkFilterQuality,
|
| + SkSourceGammaTreatment::kRespect));
|
| }
|
|
|
| void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) {
|
| @@ -1301,20 +1303,15 @@ void GrGLImprovedPerlinNoise::onSetData(const GrGLSLProgramDataManager& pdman,
|
| }
|
|
|
| /////////////////////////////////////////////////////////////////////
|
| -sk_sp<GrFragmentProcessor> SkPerlinNoiseShader2::asFragmentProcessor(
|
| - GrContext* context,
|
| - const SkMatrix& viewM,
|
| - const SkMatrix* externalLocalMatrix,
|
| - SkFilterQuality,
|
| - SkSourceGammaTreatment gammaTreatment) const {
|
| - SkASSERT(context);
|
| +sk_sp<GrFragmentProcessor> SkPerlinNoiseShader2::asFragmentProcessor(const AsFPArgs& args) const {
|
| + SkASSERT(args.fContext);
|
|
|
| SkMatrix localMatrix = this->getLocalMatrix();
|
| - if (externalLocalMatrix) {
|
| - localMatrix.preConcat(*externalLocalMatrix);
|
| + if (args.fLocalMatrix) {
|
| + localMatrix.preConcat(*args.fLocalMatrix);
|
| }
|
|
|
| - SkMatrix matrix = viewM;
|
| + SkMatrix matrix = *args.fViewMatrix;
|
| matrix.preConcat(localMatrix);
|
|
|
| // Either we don't stitch tiles, either we have a valid tile size
|
| @@ -1323,7 +1320,7 @@ sk_sp<GrFragmentProcessor> SkPerlinNoiseShader2::asFragmentProcessor(
|
| SkPerlinNoiseShader2::PaintingData* paintingData =
|
| new PaintingData(fTileSize, fSeed, fBaseFrequencyX, fBaseFrequencyY, matrix);
|
|
|
| - SkMatrix m = viewM;
|
| + SkMatrix m = *args.fViewMatrix;
|
| m.setTranslateX(-localMatrix.getTranslateX() + SK_Scalar1);
|
| m.setTranslateY(-localMatrix.getTranslateY() + SK_Scalar1);
|
|
|
| @@ -1331,11 +1328,11 @@ sk_sp<GrFragmentProcessor> SkPerlinNoiseShader2::asFragmentProcessor(
|
| GrTextureParams textureParams(SkShader::TileMode::kRepeat_TileMode,
|
| GrTextureParams::FilterMode::kNone_FilterMode);
|
| SkAutoTUnref<GrTexture> permutationsTexture(
|
| - GrRefCachedBitmapTexture(context, paintingData->getImprovedPermutationsBitmap(),
|
| - textureParams, gammaTreatment));
|
| + GrRefCachedBitmapTexture(args.fContext, paintingData->getImprovedPermutationsBitmap(),
|
| + textureParams, args.fGammaTreatment));
|
| SkAutoTUnref<GrTexture> gradientTexture(
|
| - GrRefCachedBitmapTexture(context, paintingData->getGradientBitmap(),
|
| - textureParams, gammaTreatment));
|
| + GrRefCachedBitmapTexture(args.fContext, paintingData->getGradientBitmap(),
|
| + textureParams, args.fGammaTreatment));
|
| return GrImprovedPerlinNoiseEffect::Make(fNumOctaves, fSeed, paintingData,
|
| permutationsTexture, gradientTexture, m);
|
| }
|
| @@ -1353,11 +1350,11 @@ sk_sp<GrFragmentProcessor> SkPerlinNoiseShader2::asFragmentProcessor(
|
| }
|
|
|
| SkAutoTUnref<GrTexture> permutationsTexture(
|
| - GrRefCachedBitmapTexture(context, paintingData->getPermutationsBitmap(),
|
| - GrTextureParams::ClampNoFilter(), gammaTreatment));
|
| + GrRefCachedBitmapTexture(args.fContext, paintingData->getPermutationsBitmap(),
|
| + GrTextureParams::ClampNoFilter(), args.fGammaTreatment));
|
| SkAutoTUnref<GrTexture> noiseTexture(
|
| - GrRefCachedBitmapTexture(context, paintingData->getNoiseBitmap(),
|
| - GrTextureParams::ClampNoFilter(), gammaTreatment));
|
| + GrRefCachedBitmapTexture(args.fContext, paintingData->getNoiseBitmap(),
|
| + GrTextureParams::ClampNoFilter(), args.fGammaTreatment));
|
|
|
| if ((permutationsTexture) && (noiseTexture)) {
|
| sk_sp<GrFragmentProcessor> inner(
|
|
|