aboutsummaryrefslogtreecommitdiffstats
path: root/bench/SkBenchmark.h
diff options
context:
space:
mode:
Diffstat (limited to 'bench/SkBenchmark.h')
-rw-r--r--bench/SkBenchmark.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/bench/SkBenchmark.h b/bench/SkBenchmark.h
new file mode 100644
index 0000000..2058251
--- /dev/null
+++ b/bench/SkBenchmark.h
@@ -0,0 +1,54 @@
+#ifndef SkBenchmark_DEFINED
+#define SkBenchmark_DEFINED
+
+#include "SkRefCnt.h"
+#include "SkPoint.h"
+#include "SkTRegistry.h"
+
+class SkCanvas;
+class SkPaint;
+
+class SkBenchmark : public SkRefCnt {
+public:
+ SkBenchmark();
+
+ const char* getName();
+ SkIPoint getSize();
+ void draw(SkCanvas*);
+
+ void setForceAlpha(int alpha) {
+ fForceAlpha = alpha;
+ }
+
+ void setForceAA(bool aa) {
+ fForceAA = aa;
+ }
+
+ void setForceFilter(bool filter) {
+ fForceFilter = filter;
+ }
+
+protected:
+ void setupPaint(SkPaint* paint);
+
+ virtual const char* onGetName() = 0;
+ virtual void onDraw(SkCanvas*) = 0;
+
+ virtual SkIPoint onGetSize();
+
+private:
+ int fForceAlpha;
+ bool fForceAA;
+ bool fForceFilter;
+};
+
+static inline SkIPoint SkMakeIPoint(int x, int y) {
+ SkIPoint p;
+ p.set(x, y);
+ return p;
+}
+
+typedef SkTRegistry<SkBenchmark*, void*> BenchRegistry;
+
+#endif
+