Simplify benchmark internal API.
I'm not quite sure why I wrote such a convoluted API with setLoops()/getLoops().
This replaces it with a loops argument passed to onDraw().
This CL is largely mechanical translation from the old API to the new one.
MathBench used this->getLoops() outside onDraw(), which seems incorrect. I
fixed it.
BUG=
R=djsollen@google.com
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/99893003
git-svn-id: http://skia.googlecode.com/svn/trunk@12466 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench/SkBenchmark.h b/bench/SkBenchmark.h
index 77e2357..bf44d2c 100644
--- a/bench/SkBenchmark.h
+++ b/bench/SkBenchmark.h
@@ -67,7 +67,8 @@
// before the initial draw.
void preDraw();
- void draw(SkCanvas*);
+ // Bench framework can tune loops to be large enough for stable timing.
+ void draw(const int loops, SkCanvas*);
// Call after draw, allows the benchmark to do cleanup work outside of the
// timer. When a benchmark is repeatedly drawn, this is only called once
@@ -104,15 +105,6 @@
fClearMask = clearMask;
}
- // The bench framework calls this to control the runtime of a bench.
- void setLoops(int loops) {
- fLoops = loops;
- }
-
- // Each bench should do its main work in a loop like this:
- // for (int i = 0; i < this->getLoops(); i++) { <work here> }
- int getLoops() const { return fLoops; }
-
static void SetResourcePath(const char* resPath) { gResourcePath.set(resPath); }
static SkString& GetResourcePath() { return gResourcePath; }
@@ -122,7 +114,9 @@
virtual const char* onGetName() = 0;
virtual void onPreDraw() {}
- virtual void onDraw(SkCanvas*) = 0;
+ // Each bench should do its main work in a loop like this:
+ // for (int i = 0; i < loops; i++) { <work here> }
+ virtual void onDraw(const int loops, SkCanvas*) = 0;
virtual void onPostDraw() {}
virtual SkIPoint onGetSize();
@@ -133,7 +127,6 @@
bool fForceFilter;
SkTriState::State fDither;
uint32_t fOrMask, fClearMask;
- int fLoops;
static SkString gResourcePath;
typedef SkRefCnt INHERITED;