Hide SkPerlinNoiseShader impl details
Move the shader impl to a private class, leave SkPerlinNoiseShader as
a factory class only (similar to e.g. SkLightingShader).
Change-Id: Ic1180db8f5dfd3d8f6fba133c6bf6bbdfa4f97a4
Reviewed-on: https://skia-review.googlesource.com/17318
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/bench/PerlinNoiseBench.cpp b/bench/PerlinNoiseBench.cpp
index 6c98374..802c5be 100644
--- a/bench/PerlinNoiseBench.cpp
+++ b/bench/PerlinNoiseBench.cpp
@@ -7,6 +7,7 @@
#include "Benchmark.h"
#include "SkCanvas.h"
#include "SkPerlinNoiseShader.h"
+#include "SkShader.h"
class PerlinNoiseBench : public Benchmark {
SkISize fSize;
@@ -22,8 +23,7 @@
}
void onDraw(int loops, SkCanvas* canvas) override {
- this->test(loops, canvas, 0, 0, SkPerlinNoiseShader::kFractalNoise_Type,
- 0.1f, 0.1f, 3, 0, false);
+ this->test(loops, canvas, 0, 0, 0.1f, 0.1f, 3, 0, false);
}
private:
@@ -38,17 +38,13 @@
canvas->restore();
}
- void test(int loops, SkCanvas* canvas, int x, int y, SkPerlinNoiseShader::Type type,
+ void test(int loops, SkCanvas* canvas, int x, int y,
float baseFrequencyX, float baseFrequencyY, int numOctaves, float seed,
bool stitchTiles) {
- sk_sp<SkShader> shader = (type == SkPerlinNoiseShader::kFractalNoise_Type) ?
- SkPerlinNoiseShader::MakeFractalNoise(baseFrequencyX, baseFrequencyY, numOctaves,
- seed, stitchTiles ? &fSize : nullptr) :
- SkPerlinNoiseShader::MakeTurbulence(baseFrequencyX, baseFrequencyY, numOctaves,
- seed, stitchTiles ? &fSize : nullptr);
SkPaint paint;
- paint.setShader(shader);
-
+ paint.setShader(SkPerlinNoiseShader::MakeFractalNoise(baseFrequencyX, baseFrequencyY,
+ numOctaves, seed,
+ stitchTiles ? &fSize : nullptr));
for (int i = 0; i < loops; i++) {
this->drawClippedRect(canvas, x, y, paint);
}