aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/GradientBench.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-06-15 21:17:37 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-06-15 21:17:37 +0000
commit72415161dde26f6aa2b206a8eaa0abaff2f782de (patch)
treed81e62f46fcc00c7b5520f6c2185e1fad75152d0 /bench/GradientBench.cpp
parent30e4bb6667b030543918ff0417e1d948d9de0a3f (diff)
add tilemode options
git-svn-id: http://skia.googlecode.com/svn/trunk@1607 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'bench/GradientBench.cpp')
-rw-r--r--bench/GradientBench.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/bench/GradientBench.cpp b/bench/GradientBench.cpp
index 5ecca6ba1e..428ad57e6b 100644
--- a/bench/GradientBench.cpp
+++ b/bench/GradientBench.cpp
@@ -89,6 +89,20 @@ enum GradType { // these must match the order in gGrads
kRadial2_GradType
};
+static const char* tilemodename(SkShader::TileMode tm) {
+ switch (tm) {
+ case SkShader::kClamp_TileMode:
+ return "clamp";
+ case SkShader::kRepeat_TileMode:
+ return "repeat";
+ case SkShader::kMirror_TileMode:
+ return "mirror";
+ default:
+ SkASSERT(!"unknown tilemode");
+ return "error";
+ }
+}
+
///////////////////////////////////////////////////////////////////////////////
class GradientBench : public SkBenchmark {
@@ -101,8 +115,9 @@ class GradientBench : public SkBenchmark {
N = 1
};
public:
- GradientBench(void* param, GradType gt) : INHERITED(param) {
- fName.printf("gradient_%s", gGrads[gt].fName);
+ GradientBench(void* param, GradType gt,
+ SkShader::TileMode tm = SkShader::kClamp_TileMode) : INHERITED(param) {
+ fName.printf("gradient_%s_%s", gGrads[gt].fName, tilemodename(tm));
const SkPoint pts[2] = {
{ 0, 0 },
@@ -110,8 +125,7 @@ public:
};
fCount = N * gGrads[gt].fRepeat;
- fShader = gGrads[gt].fMaker(pts, gGradData[0],
- SkShader::kClamp_TileMode, NULL);
+ fShader = gGrads[gt].fMaker(pts, gGradData[0], tm, NULL);
}
virtual ~GradientBench() {
@@ -141,11 +155,13 @@ private:
static SkBenchmark* Fact0(void* p) { return new GradientBench(p, kLinear_GradType); }
static SkBenchmark* Fact1(void* p) { return new GradientBench(p, kRadial_GradType); }
+static SkBenchmark* Fact11(void* p) { return new GradientBench(p, kRadial_GradType, SkShader::kMirror_TileMode); }
static SkBenchmark* Fact2(void* p) { return new GradientBench(p, kSweep_GradType); }
static SkBenchmark* Fact3(void* p) { return new GradientBench(p, kRadial2_GradType); }
static BenchRegistry gReg0(Fact0);
static BenchRegistry gReg1(Fact1);
+static BenchRegistry gReg11(Fact11);
static BenchRegistry gReg2(Fact2);
static BenchRegistry gReg3(Fact3);