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

Side by Side Diff: experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp

Issue 1661143003: Next round of GrGLSLFragmentProcessor-derived class cleanup (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix overlength line Created 4 years, 10 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 | « no previous file | src/effects/SkAlphaThresholdFilter.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 "SkPerlinNoiseShader2.h" 9 #include "SkPerlinNoiseShader2.h"
10 #include "SkColorFilter.h" 10 #include "SkColorFilter.h"
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 } 603 }
604 } 604 }
605 605
606 ///////////////////////////////////////////////////////////////////// 606 /////////////////////////////////////////////////////////////////////
607 607
608 #if SK_SUPPORT_GPU 608 #if SK_SUPPORT_GPU
609 609
610 class GrGLPerlinNoise2 : public GrGLSLFragmentProcessor { 610 class GrGLPerlinNoise2 : public GrGLSLFragmentProcessor {
611 public: 611 public:
612 GrGLPerlinNoise2(const GrProcessor&); 612 GrGLPerlinNoise2(const GrProcessor&);
613 virtual ~GrGLPerlinNoise2() {}
614 613
615 virtual void emitCode(EmitArgs&) override; 614 void emitCode(EmitArgs&) override;
616 615
617 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessor KeyBuilder* b); 616 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessor KeyBuilder* b);
618 617
619 protected: 618 protected:
620 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override ; 619 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override ;
621 620
622 private: 621 private:
623 622
624 GrGLSLProgramDataManager::UniformHandle fStitchDataUni; 623 GrGLSLProgramDataManager::UniformHandle fStitchDataUni;
625 SkPerlinNoiseShader2::Type fType; 624 SkPerlinNoiseShader2::Type fType;
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
1033 const SkPerlinNoiseShader2::StitchData& stitchData = turbulence.stitchDa ta(); 1032 const SkPerlinNoiseShader2::StitchData& stitchData = turbulence.stitchDa ta();
1034 pdman.set2f(fStitchDataUni, SkIntToScalar(stitchData.fWidth), 1033 pdman.set2f(fStitchDataUni, SkIntToScalar(stitchData.fWidth),
1035 SkIntToScalar(stitchData.fHeight)); 1034 SkIntToScalar(stitchData.fHeight));
1036 } 1035 }
1037 } 1036 }
1038 1037
1039 ///////////////////////////////////////////////////////////////////// 1038 /////////////////////////////////////////////////////////////////////
1040 1039
1041 class GrGLImprovedPerlinNoise : public GrGLSLFragmentProcessor { 1040 class GrGLImprovedPerlinNoise : public GrGLSLFragmentProcessor {
1042 public: 1041 public:
1043 GrGLImprovedPerlinNoise(const GrProcessor&); 1042 void emitCode(EmitArgs&) override;
1044 virtual ~GrGLImprovedPerlinNoise() {}
1045 1043
1046 virtual void emitCode(EmitArgs&) override; 1044 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessor KeyBuilder*);
1047
1048 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessor KeyBuilder* b);
1049 1045
1050 protected: 1046 protected:
1051 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override ; 1047 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override ;
1052 1048
1053 private: 1049 private:
1054
1055 SkScalar fZ;
1056 GrGLSLProgramDataManager::UniformHandle fZUni; 1050 GrGLSLProgramDataManager::UniformHandle fZUni;
1057 GrGLSLProgramDataManager::UniformHandle fOctavesUni; 1051 GrGLSLProgramDataManager::UniformHandle fOctavesUni;
1058 GrGLSLProgramDataManager::UniformHandle fBaseFrequencyUni; 1052 GrGLSLProgramDataManager::UniformHandle fBaseFrequencyUni;
1059 1053
1060 private:
1061 typedef GrGLSLFragmentProcessor INHERITED; 1054 typedef GrGLSLFragmentProcessor INHERITED;
1062 }; 1055 };
1063 1056
1064 ///////////////////////////////////////////////////////////////////// 1057 /////////////////////////////////////////////////////////////////////
1065 1058
1066 class GrImprovedPerlinNoiseEffect : public GrFragmentProcessor { 1059 class GrImprovedPerlinNoiseEffect : public GrFragmentProcessor {
1067 public: 1060 public:
1068 static GrFragmentProcessor* Create(int octaves, SkScalar z, 1061 static GrFragmentProcessor* Create(int octaves, SkScalar z,
1069 SkPerlinNoiseShader2::PaintingData* paint ingData, 1062 SkPerlinNoiseShader2::PaintingData* paint ingData,
1070 GrTexture* permutationsTexture, GrTexture * gradientTexture, 1063 GrTexture* permutationsTexture, GrTexture * gradientTexture,
1071 const SkMatrix& matrix) { 1064 const SkMatrix& matrix) {
1072 return new GrImprovedPerlinNoiseEffect(octaves, z, paintingData, permuta tionsTexture, 1065 return new GrImprovedPerlinNoiseEffect(octaves, z, paintingData, permuta tionsTexture,
1073 gradientTexture, matrix); 1066 gradientTexture, matrix);
1074 } 1067 }
1075 1068
1076 virtual ~GrImprovedPerlinNoiseEffect() { delete fPaintingData; } 1069 virtual ~GrImprovedPerlinNoiseEffect() { delete fPaintingData; }
1077 1070
1078 const char* name() const override { return "ImprovedPerlinNoise"; } 1071 const char* name() const override { return "ImprovedPerlinNoise"; }
1079 1072
1080 const SkVector& baseFrequency() const { return fPaintingData->fBaseFrequency ; } 1073 const SkVector& baseFrequency() const { return fPaintingData->fBaseFrequency ; }
1081 SkScalar z() const { return fZ; } 1074 SkScalar z() const { return fZ; }
1082 int octaves() const { return fOctaves; } 1075 int octaves() const { return fOctaves; }
1083 const SkMatrix& matrix() const { return fCoordTransform.getMatrix(); } 1076 const SkMatrix& matrix() const { return fCoordTransform.getMatrix(); }
1084 1077
1085 private: 1078 private:
1086 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override { 1079 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override {
1087 return new GrGLImprovedPerlinNoise(*this); 1080 return new GrGLImprovedPerlinNoise;
1088 } 1081 }
1089 1082
1090 virtual void onGetGLSLProcessorKey(const GrGLSLCaps& caps, 1083 void onGetGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override {
1091 GrProcessorKeyBuilder* b) const override {
1092 GrGLImprovedPerlinNoise::GenKey(*this, caps, b); 1084 GrGLImprovedPerlinNoise::GenKey(*this, caps, b);
1093 } 1085 }
1094 1086
1095 bool onIsEqual(const GrFragmentProcessor& sBase) const override { 1087 bool onIsEqual(const GrFragmentProcessor& sBase) const override {
1096 const GrImprovedPerlinNoiseEffect& s = sBase.cast<GrImprovedPerlinNoiseE ffect>(); 1088 const GrImprovedPerlinNoiseEffect& s = sBase.cast<GrImprovedPerlinNoiseE ffect>();
1097 return fZ == fZ && 1089 return fZ == fZ &&
1098 fPaintingData->fBaseFrequency == s.fPaintingData->fBaseFrequency; 1090 fPaintingData->fBaseFrequency == s.fPaintingData->fBaseFrequency;
1099 } 1091 }
1100 1092
1101 void onComputeInvariantOutput(GrInvariantOutput* inout) const override { 1093 void onComputeInvariantOutput(GrInvariantOutput* inout) const override {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 baseF requencyY, 1138 baseF requencyY,
1147 numOc taves, 1139 numOc taves,
1148 z)); 1140 z));
1149 1141
1150 GrPaint grPaint; 1142 GrPaint grPaint;
1151 return shader->asFragmentProcessor(d->fContext, 1143 return shader->asFragmentProcessor(d->fContext,
1152 GrTest::TestMatrix(d->fRandom), nullptr, 1144 GrTest::TestMatrix(d->fRandom), nullptr,
1153 kNone_SkFilterQuality); 1145 kNone_SkFilterQuality);
1154 } 1146 }
1155 1147
1156 GrGLImprovedPerlinNoise::GrGLImprovedPerlinNoise(const GrProcessor& processor)
1157 : fZ(processor.cast<GrImprovedPerlinNoiseEffect>().z()) {
1158 }
1159
1160 void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) { 1148 void GrGLImprovedPerlinNoise::emitCode(EmitArgs& args) {
1161 GrGLSLFragmentBuilder* fsBuilder = args.fFragBuilder; 1149 GrGLSLFragmentBuilder* fsBuilder = args.fFragBuilder;
1162 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; 1150 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler;
1163 SkString vCoords = fsBuilder->ensureFSCoords2D(args.fCoords, 0); 1151 SkString vCoords = fsBuilder->ensureFSCoords2D(args.fCoords, 0);
1164 1152
1165 fBaseFrequencyUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragme nt_Visibility, 1153 fBaseFrequencyUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragme nt_Visibility,
1166 kVec2f_GrSLType, kDefault_GrS LPrecision, 1154 kVec2f_GrSLType, kDefault_GrS LPrecision,
1167 "baseFrequency"); 1155 "baseFrequency");
1168 const char* baseFrequencyUni = uniformHandler->getUniformCStr(fBaseFrequency Uni); 1156 const char* baseFrequencyUni = uniformHandler->getUniformCStr(fBaseFrequency Uni);
1169 1157
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1416 str->append(" seed: "); 1404 str->append(" seed: ");
1417 str->appendScalar(fSeed); 1405 str->appendScalar(fSeed);
1418 str->append(" stitch tiles: "); 1406 str->append(" stitch tiles: ");
1419 str->append(fStitchTiles ? "true " : "false "); 1407 str->append(fStitchTiles ? "true " : "false ");
1420 1408
1421 this->INHERITED::toString(str); 1409 this->INHERITED::toString(str);
1422 1410
1423 str->append(")"); 1411 str->append(")");
1424 } 1412 }
1425 #endif 1413 #endif
OLDNEW
« no previous file with comments | « no previous file | src/effects/SkAlphaThresholdFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698