aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-02-05 07:15:39 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-02-05 07:15:39 -0800
commitd3b32bf8322877cf263229735aef4f04df5415c4 (patch)
tree3293ea0e89e00ded9ddbf8fefef7e34fd7a5e455 /experimental
parentf49c75a8f1eacf8e6cb19ce0dcc1cc9bcbf1f96e (diff)
Last bit of GrGLSLFragmentProcessor-derived class cleanup
I believe these are the last two that used the dispreferred constructor pattern. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1667953005 Review URL: https://codereview.chromium.org/1667953005
Diffstat (limited to 'experimental')
-rw-r--r--experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp37
1 files changed, 13 insertions, 24 deletions
diff --git a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
index 8afbee0827..233638253c 100644
--- a/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
+++ b/experimental/SkPerlinNoiseShader2/SkPerlinNoiseShader2.cpp
@@ -609,8 +609,6 @@ void SkPerlinNoiseShader2::PerlinNoiseShaderContext::shadeSpan(
class GrGLPerlinNoise2 : public GrGLSLFragmentProcessor {
public:
- GrGLPerlinNoise2(const GrProcessor&);
-
void emitCode(EmitArgs&) override;
static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessorKeyBuilder* b);
@@ -619,14 +617,9 @@ protected:
void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override;
private:
-
GrGLSLProgramDataManager::UniformHandle fStitchDataUni;
- SkPerlinNoiseShader2::Type fType;
- bool fStitchTiles;
- int fNumOctaves;
GrGLSLProgramDataManager::UniformHandle fBaseFrequencyUni;
-private:
typedef GrGLSLFragmentProcessor INHERITED;
};
@@ -657,7 +650,7 @@ public:
private:
GrGLSLFragmentProcessor* onCreateGLSLInstance() const override {
- return new GrGLPerlinNoise2(*this);
+ return new GrGLPerlinNoise2;
}
virtual void onGetGLSLProcessorKey(const GrGLSLCaps& caps,
@@ -736,13 +729,9 @@ const GrFragmentProcessor* GrPerlinNoise2Effect::TestCreate(GrProcessorTestData*
kNone_SkFilterQuality);
}
-GrGLPerlinNoise2::GrGLPerlinNoise2(const GrProcessor& processor)
- : fType(processor.cast<GrPerlinNoise2Effect>().type())
- , fStitchTiles(processor.cast<GrPerlinNoise2Effect>().stitchTiles())
- , fNumOctaves(processor.cast<GrPerlinNoise2Effect>().numOctaves()) {
-}
-
void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
+ const GrPerlinNoise2Effect& pne = args.fFp.cast<GrPerlinNoise2Effect>();
+
GrGLSLFragmentBuilder* fsBuilder = args.fFragBuilder;
GrGLSLUniformHandler* uniformHandler = args.fUniformHandler;
SkString vCoords = fsBuilder->ensureFSCoords2D(args.fCoords, 0);
@@ -753,7 +742,7 @@ void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
const char* baseFrequencyUni = uniformHandler->getUniformCStr(fBaseFrequencyUni);
const char* stitchDataUni = nullptr;
- if (fStitchTiles) {
+ if (pne.stitchTiles()) {
fStitchDataUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility,
kVec2f_GrSLType, kDefault_GrSLPrecision,
"stitchData");
@@ -806,7 +795,7 @@ void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
noiseSmooth, fractVal, fractVal, fractVal);
// Adjust frequencies if we're stitching tiles
- if (fStitchTiles) {
+ if (pne.stitchTiles()) {
noiseCode.appendf("\n\tif(%s.x >= %s.x) { %s.x -= %s.x; }",
floorVal, stitchData, floorVal, stitchData);
noiseCode.appendf("\n\tif(%s.y >= %s.y) { %s.y -= %s.y; }",
@@ -915,7 +904,7 @@ void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
noiseCode.appendf("\n\treturn mix(%s.x, %s.y, %s.y);\n", ab, ab, noiseSmooth);
SkString noiseFuncName;
- if (fStitchTiles) {
+ if (pne.stitchTiles()) {
fsBuilder->emitFunction(kFloat_GrSLType,
"perlinnoise", SK_ARRAY_COUNT(gPerlinNoiseStitchArgs),
gPerlinNoiseStitchArgs, noiseCode.c_str(), &noiseFuncName);
@@ -932,7 +921,7 @@ void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
// Clear the color accumulator
fsBuilder->codeAppendf("\n\t\t%s = vec4(0.0);", args.fOutputColor);
- if (fStitchTiles) {
+ if (pne.stitchTiles()) {
// Set up TurbulenceInitial stitch values.
fsBuilder->codeAppendf("\n\t\tvec2 %s = %s;", stitchData, stitchDataUni);
}
@@ -940,13 +929,13 @@ void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
fsBuilder->codeAppendf("\n\t\tfloat %s = 1.0;", ratio);
// Loop over all octaves
- fsBuilder->codeAppendf("\n\t\tfor (int octave = 0; octave < %d; ++octave) {", fNumOctaves);
+ fsBuilder->codeAppendf("for (int octave = 0; octave < %d; ++octave) {", pne.numOctaves());
fsBuilder->codeAppendf("\n\t\t\t%s += ", args.fOutputColor);
- if (fType != SkPerlinNoiseShader2::kFractalNoise_Type) {
+ if (pne.type() != SkPerlinNoiseShader2::kFractalNoise_Type) {
fsBuilder->codeAppend("abs(");
}
- if (fStitchTiles) {
+ if (pne.stitchTiles()) {
fsBuilder->codeAppendf(
"vec4(\n\t\t\t\t%s(%s, %s, %s),\n\t\t\t\t%s(%s, %s, %s),"
"\n\t\t\t\t%s(%s, %s, %s),\n\t\t\t\t%s(%s, %s, %s))",
@@ -963,7 +952,7 @@ void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
noiseFuncName.c_str(), chanCoordB, noiseVec,
noiseFuncName.c_str(), chanCoordA, noiseVec);
}
- if (fType != SkPerlinNoiseShader2::kFractalNoise_Type) {
+ if (pne.type() != SkPerlinNoiseShader2::kFractalNoise_Type) {
fsBuilder->codeAppendf(")"); // end of "abs("
}
fsBuilder->codeAppendf(" * %s;", ratio);
@@ -971,12 +960,12 @@ void GrGLPerlinNoise2::emitCode(EmitArgs& args) {
fsBuilder->codeAppendf("\n\t\t\t%s *= vec2(2.0);", noiseVec);
fsBuilder->codeAppendf("\n\t\t\t%s *= 0.5;", ratio);
- if (fStitchTiles) {
+ if (pne.stitchTiles()) {
fsBuilder->codeAppendf("\n\t\t\t%s *= vec2(2.0);", stitchData);
}
fsBuilder->codeAppend("\n\t\t}"); // end of the for loop on octaves
- if (fType == SkPerlinNoiseShader2::kFractalNoise_Type) {
+ if (pne.type() == SkPerlinNoiseShader2::kFractalNoise_Type) {
// The value of turbulenceFunctionResult comes from ((turbulenceFunctionResult) + 1) / 2
// by fractalNoise and (turbulenceFunctionResult) by turbulence.
fsBuilder->codeAppendf("\n\t\t%s = %s * vec4(0.5) + vec4(0.5);",