aboutsummaryrefslogtreecommitdiffstats
path: root/bench
diff options
context:
space:
mode:
authorMike Reed <reed@google.com>2010-04-14 10:16:53 -0400
committerMike Reed <reed@google.com>2010-04-14 12:09:33 -0400
commit4c1037238c8ebcef8c75b5d43730ed308a11102c (patch)
treead54f6a51e559b4bec0f2a67cb4f5c46621fd97d /bench
parent97c126db9982665ba3792f30ce7f74b854462c69 (diff)
downloadexternal_skia-4c1037238c8ebcef8c75b5d43730ed308a11102c.zip
external_skia-4c1037238c8ebcef8c75b5d43730ed308a11102c.tar.gz
external_skia-4c1037238c8ebcef8c75b5d43730ed308a11102c.tar.bz2
refresh from trunk
Change-Id: I0175ec7482f8cf85d25165da360a5352979fd7a0
Diffstat (limited to 'bench')
-rw-r--r--bench/RectBench.cpp13
-rw-r--r--bench/SkBenchmark.cpp1
-rw-r--r--bench/SkBenchmark.h16
-rw-r--r--bench/benchmain.cpp18
4 files changed, 43 insertions, 5 deletions
diff --git a/bench/RectBench.cpp b/bench/RectBench.cpp
index 6f34eb5..3874bb3 100644
--- a/bench/RectBench.cpp
+++ b/bench/RectBench.cpp
@@ -89,14 +89,20 @@ public:
protected:
virtual void onDraw(SkCanvas* canvas) {
- static const SkScalar gSizes[] = {
+ SkScalar gSizes[] = {
SkIntToScalar(7), 0
};
+ size_t sizes = SK_ARRAY_COUNT(gSizes);
+
+ if (this->hasStrokeWidth()) {
+ gSizes[0] = this->getStrokeWidth();
+ sizes = 1;
+ }
SkPaint paint;
paint.setStrokeCap(SkPaint::kRound_Cap);
-
- for (size_t i = 0; i < SK_ARRAY_COUNT(gSizes); i++) {
+
+ for (size_t i = 0; i < sizes; i++) {
paint.setStrokeWidth(gSizes[i]);
this->setupPaint(&paint);
canvas->drawPoints(fMode, N * 2,
@@ -132,4 +138,3 @@ static BenchRegistry gRRectReg2(RRectFactory2);
static BenchRegistry gPointsReg(PointsFactory);
static BenchRegistry gLinesReg(LinesFactory);
static BenchRegistry gPolygonReg(PolygonFactory);
-
diff --git a/bench/SkBenchmark.cpp b/bench/SkBenchmark.cpp
index e8bea6e..230a7af 100644
--- a/bench/SkBenchmark.cpp
+++ b/bench/SkBenchmark.cpp
@@ -9,6 +9,7 @@ SkBenchmark::SkBenchmark(void* defineDict) {
fForceAlpha = 0xFF;
fForceAA = true;
fDither = SkTriState::kDefault;
+ fHasStrokeWidth = false;
}
const char* SkBenchmark::getName() {
diff --git a/bench/SkBenchmark.h b/bench/SkBenchmark.h
index bc9794a..945db80 100644
--- a/bench/SkBenchmark.h
+++ b/bench/SkBenchmark.h
@@ -42,6 +42,19 @@ public:
fDither = state;
}
+ void setStrokeWidth(SkScalar width) {
+ strokeWidth = width;
+ fHasStrokeWidth = true;
+ }
+
+ SkScalar getStrokeWidth() {
+ return strokeWidth;
+ }
+
+ bool hasStrokeWidth() {
+ return fHasStrokeWidth;
+ }
+
const char* findDefine(const char* key) const;
bool findDefine32(const char* key, int32_t* value) const;
bool findDefineScalar(const char* key, SkScalar* value) const;
@@ -60,9 +73,10 @@ private:
bool fForceAA;
bool fForceFilter;
SkTriState::State fDither;
+ bool fHasStrokeWidth;
+ SkScalar strokeWidth;
};
typedef SkTRegistry<SkBenchmark*, void*> BenchRegistry;
#endif
-
diff --git a/bench/benchmain.cpp b/bench/benchmain.cpp
index 7443604..2f8b006 100644
--- a/bench/benchmain.cpp
+++ b/bench/benchmain.cpp
@@ -201,6 +201,8 @@ int main (int argc, char * const argv[]) {
bool doClip = false;
bool doPict = false;
const char* matchStr = NULL;
+ bool hasStrokeWidth = false;
+ float strokeWidth;
SkString outDir;
SkBitmap::Config outConfig = SkBitmap::kNo_Config;
@@ -260,6 +262,19 @@ int main (int argc, char * const argv[]) {
return -1;
}
forceAlpha = wantAlpha ? 0x80 : 0xFF;
+ } else if (strcmp(*argv, "-strokeWidth") == 0) {
+ argv++;
+ if (argv < stop) {
+ const char *strokeWidthStr = *argv;
+ if (sscanf(strokeWidthStr, "%f", &strokeWidth) != 1) {
+ log_error("bad arg for -strokeWidth\n");
+ return -1;
+ }
+ hasStrokeWidth = true;
+ } else {
+ log_error("missing arg for -strokeWidth\n");
+ return -1;
+ }
} else if (strcmp(*argv, "-match") == 0) {
argv++;
if (argv < stop) {
@@ -314,6 +329,9 @@ int main (int argc, char * const argv[]) {
bench->setForceAA(forceAA);
bench->setForceFilter(forceFilter);
bench->setDither(forceDither);
+ if (hasStrokeWidth) {
+ bench->setStrokeWidth(strokeWidth);
+ }
// only run benchmarks if their name contains matchStr
if (matchStr && strstr(bench->getName(), matchStr) == NULL) {