Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: src/effects/SkPerlinNoiseShader.cpp

Issue 1388113002: Bye bye processor data manager (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: remove files Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/effects/SkMorphologyImageFilter.cpp ('k') | src/effects/SkTableColorFilter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkDither.h" 8 #include "SkDither.h"
9 #include "SkPerlinNoiseShader.h" 9 #include "SkPerlinNoiseShader.h"
10 #include "SkColorFilter.h" 10 #include "SkColorFilter.h"
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 GrGLProgramDataManager::UniformHandle fBaseFrequencyUni; 503 GrGLProgramDataManager::UniformHandle fBaseFrequencyUni;
504 504
505 private: 505 private:
506 typedef GrGLFragmentProcessor INHERITED; 506 typedef GrGLFragmentProcessor INHERITED;
507 }; 507 };
508 508
509 ///////////////////////////////////////////////////////////////////// 509 /////////////////////////////////////////////////////////////////////
510 510
511 class GrPerlinNoiseEffect : public GrFragmentProcessor { 511 class GrPerlinNoiseEffect : public GrFragmentProcessor {
512 public: 512 public:
513 static GrFragmentProcessor* Create(GrProcessorDataManager* procDataManager, 513 static GrFragmentProcessor* Create(SkPerlinNoiseShader::Type type,
514 SkPerlinNoiseShader::Type type,
515 int numOctaves, bool stitchTiles, 514 int numOctaves, bool stitchTiles,
516 SkPerlinNoiseShader::PaintingData* painti ngData, 515 SkPerlinNoiseShader::PaintingData* painti ngData,
517 GrTexture* permutationsTexture, GrTexture * noiseTexture, 516 GrTexture* permutationsTexture, GrTexture * noiseTexture,
518 const SkMatrix& matrix) { 517 const SkMatrix& matrix) {
519 return new GrPerlinNoiseEffect(procDataManager, type, numOctaves, stitch Tiles, paintingData, 518 return new GrPerlinNoiseEffect(type, numOctaves, stitchTiles, paintingDa ta,
520 permutationsTexture, noiseTexture, matrix ); 519 permutationsTexture, noiseTexture, matrix );
521 } 520 }
522 521
523 virtual ~GrPerlinNoiseEffect() { delete fPaintingData; } 522 virtual ~GrPerlinNoiseEffect() { delete fPaintingData; }
524 523
525 const char* name() const override { return "PerlinNoise"; } 524 const char* name() const override { return "PerlinNoise"; }
526 525
527 const SkPerlinNoiseShader::StitchData& stitchData() const { return fPainting Data->fStitchDataInit; } 526 const SkPerlinNoiseShader::StitchData& stitchData() const { return fPainting Data->fStitchDataInit; }
528 527
529 SkPerlinNoiseShader::Type type() const { return fType; } 528 SkPerlinNoiseShader::Type type() const { return fType; }
(...skipping 18 matching lines...) Expand all
548 fPaintingData->fBaseFrequency == s.fPaintingData->fBaseFrequency && 547 fPaintingData->fBaseFrequency == s.fPaintingData->fBaseFrequency &&
549 fNumOctaves == s.fNumOctaves && 548 fNumOctaves == s.fNumOctaves &&
550 fStitchTiles == s.fStitchTiles && 549 fStitchTiles == s.fStitchTiles &&
551 fPaintingData->fStitchDataInit == s.fPaintingData->fStitchDataIni t; 550 fPaintingData->fStitchDataInit == s.fPaintingData->fStitchDataIni t;
552 } 551 }
553 552
554 void onComputeInvariantOutput(GrInvariantOutput* inout) const override { 553 void onComputeInvariantOutput(GrInvariantOutput* inout) const override {
555 inout->setToUnknown(GrInvariantOutput::kWillNot_ReadInput); 554 inout->setToUnknown(GrInvariantOutput::kWillNot_ReadInput);
556 } 555 }
557 556
558 GrPerlinNoiseEffect(GrProcessorDataManager*, SkPerlinNoiseShader::Type type, 557 GrPerlinNoiseEffect(SkPerlinNoiseShader::Type type,
559 int numOctaves, bool stitchTiles, 558 int numOctaves, bool stitchTiles,
560 SkPerlinNoiseShader::PaintingData* paintingData, 559 SkPerlinNoiseShader::PaintingData* paintingData,
561 GrTexture* permutationsTexture, GrTexture* noiseTexture, 560 GrTexture* permutationsTexture, GrTexture* noiseTexture,
562 const SkMatrix& matrix) 561 const SkMatrix& matrix)
563 : fType(type) 562 : fType(type)
564 , fNumOctaves(numOctaves) 563 , fNumOctaves(numOctaves)
565 , fStitchTiles(stitchTiles) 564 , fStitchTiles(stitchTiles)
566 , fPermutationsAccess(permutationsTexture) 565 , fPermutationsAccess(permutationsTexture)
567 , fNoiseAccess(noiseTexture) 566 , fNoiseAccess(noiseTexture)
568 , fPaintingData(paintingData) { 567 , fPaintingData(paintingData) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 602
604 SkAutoTUnref<SkShader> shader(d->fRandom->nextBool() ? 603 SkAutoTUnref<SkShader> shader(d->fRandom->nextBool() ?
605 SkPerlinNoiseShader::CreateFractalNoise(baseFrequencyX, baseFrequencyY, numOctaves, seed, 604 SkPerlinNoiseShader::CreateFractalNoise(baseFrequencyX, baseFrequencyY, numOctaves, seed,
606 stitchTiles ? &tileSize : nullpt r) : 605 stitchTiles ? &tileSize : nullpt r) :
607 SkPerlinNoiseShader::CreateTurbulence(baseFrequencyX, baseFrequencyY, nu mOctaves, seed, 606 SkPerlinNoiseShader::CreateTurbulence(baseFrequencyX, baseFrequencyY, nu mOctaves, seed,
608 stitchTiles ? &tileSize : nullptr)) ; 607 stitchTiles ? &tileSize : nullptr)) ;
609 608
610 GrPaint grPaint; 609 GrPaint grPaint;
611 return shader->asFragmentProcessor(d->fContext, 610 return shader->asFragmentProcessor(d->fContext,
612 GrTest::TestMatrix(d->fRandom), nullptr, 611 GrTest::TestMatrix(d->fRandom), nullptr,
613 kNone_SkFilterQuality, 612 kNone_SkFilterQuality);
614 grPaint.getProcessorDataManager());
615 } 613 }
616 614
617 GrGLPerlinNoise::GrGLPerlinNoise(const GrProcessor& processor) 615 GrGLPerlinNoise::GrGLPerlinNoise(const GrProcessor& processor)
618 : fType(processor.cast<GrPerlinNoiseEffect>().type()) 616 : fType(processor.cast<GrPerlinNoiseEffect>().type())
619 , fStitchTiles(processor.cast<GrPerlinNoiseEffect>().stitchTiles()) 617 , fStitchTiles(processor.cast<GrPerlinNoiseEffect>().stitchTiles())
620 , fNumOctaves(processor.cast<GrPerlinNoiseEffect>().numOctaves()) { 618 , fNumOctaves(processor.cast<GrPerlinNoiseEffect>().numOctaves()) {
621 } 619 }
622 620
623 void GrGLPerlinNoise::emitCode(EmitArgs& args) { 621 void GrGLPerlinNoise::emitCode(EmitArgs& args) {
624 GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder(); 622 GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder();
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 pdman.set2f(fStitchDataUni, SkIntToScalar(stitchData.fWidth), 907 pdman.set2f(fStitchDataUni, SkIntToScalar(stitchData.fWidth),
910 SkIntToScalar(stitchData.fHeight)); 908 SkIntToScalar(stitchData.fHeight));
911 } 909 }
912 } 910 }
913 911
914 ///////////////////////////////////////////////////////////////////// 912 /////////////////////////////////////////////////////////////////////
915 const GrFragmentProcessor* SkPerlinNoiseShader::asFragmentProcessor( 913 const GrFragmentProcessor* SkPerlinNoiseShader::asFragmentProcessor(
916 GrContext* context, 914 GrContext* context,
917 const SkMatrix& viewM, 915 const SkMatrix& viewM,
918 const SkMatrix* externalLoca lMatrix, 916 const SkMatrix* externalLoca lMatrix,
919 SkFilterQuality, 917 SkFilterQuality) const {
920 GrProcessorDataManager* proc DataManager) const {
921 SkASSERT(context); 918 SkASSERT(context);
922 919
923 SkMatrix localMatrix = this->getLocalMatrix(); 920 SkMatrix localMatrix = this->getLocalMatrix();
924 if (externalLocalMatrix) { 921 if (externalLocalMatrix) {
925 localMatrix.preConcat(*externalLocalMatrix); 922 localMatrix.preConcat(*externalLocalMatrix);
926 } 923 }
927 924
928 SkMatrix matrix = viewM; 925 SkMatrix matrix = viewM;
929 matrix.preConcat(localMatrix); 926 matrix.preConcat(localMatrix);
930 927
(...skipping 17 matching lines...) Expand all
948 SkAutoTUnref<GrTexture> permutationsTexture( 945 SkAutoTUnref<GrTexture> permutationsTexture(
949 GrRefCachedBitmapTexture(context, paintingData->getPermutationsBitmap(), nullptr)); 946 GrRefCachedBitmapTexture(context, paintingData->getPermutationsBitmap(), nullptr));
950 SkAutoTUnref<GrTexture> noiseTexture( 947 SkAutoTUnref<GrTexture> noiseTexture(
951 GrRefCachedBitmapTexture(context, paintingData->getNoiseBitmap(), nullpt r)); 948 GrRefCachedBitmapTexture(context, paintingData->getNoiseBitmap(), nullpt r));
952 949
953 SkMatrix m = viewM; 950 SkMatrix m = viewM;
954 m.setTranslateX(-localMatrix.getTranslateX() + SK_Scalar1); 951 m.setTranslateX(-localMatrix.getTranslateX() + SK_Scalar1);
955 m.setTranslateY(-localMatrix.getTranslateY() + SK_Scalar1); 952 m.setTranslateY(-localMatrix.getTranslateY() + SK_Scalar1);
956 if ((permutationsTexture) && (noiseTexture)) { 953 if ((permutationsTexture) && (noiseTexture)) {
957 SkAutoTUnref<GrFragmentProcessor> inner( 954 SkAutoTUnref<GrFragmentProcessor> inner(
958 GrPerlinNoiseEffect::Create(procDataManager, 955 GrPerlinNoiseEffect::Create(fType,
959 fType,
960 fNumOctaves, 956 fNumOctaves,
961 fStitchTiles, 957 fStitchTiles,
962 paintingData, 958 paintingData,
963 permutationsTexture, noiseTexture, 959 permutationsTexture, noiseTexture,
964 m)); 960 m));
965 return GrFragmentProcessor::MulOutputByInputAlpha(inner); 961 return GrFragmentProcessor::MulOutputByInputAlpha(inner);
966 } 962 }
967 delete paintingData; 963 delete paintingData;
968 return nullptr; 964 return nullptr;
969 } 965 }
(...skipping 25 matching lines...) Expand all
995 str->append(" seed: "); 991 str->append(" seed: ");
996 str->appendScalar(fSeed); 992 str->appendScalar(fSeed);
997 str->append(" stitch tiles: "); 993 str->append(" stitch tiles: ");
998 str->append(fStitchTiles ? "true " : "false "); 994 str->append(fStitchTiles ? "true " : "false ");
999 995
1000 this->INHERITED::toString(str); 996 this->INHERITED::toString(str);
1001 997
1002 str->append(")"); 998 str->append(")");
1003 } 999 }
1004 #endif 1000 #endif
OLDNEW
« no previous file with comments | « src/effects/SkMorphologyImageFilter.cpp ('k') | src/effects/SkTableColorFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698