blob: 27009d9e7d52d0b25e17bcf0e2c63b674d403de9 [file] [log] [blame]
reed@android.combd700c32009-01-05 03:34:50 +00001#ifndef SkBenchmark_DEFINED
2#define SkBenchmark_DEFINED
3
4#include "SkRefCnt.h"
5#include "SkPoint.h"
reed@android.comf523e252009-01-26 23:15:37 +00006#include "SkTRegistry.h"
reed@android.combd700c32009-01-05 03:34:50 +00007
8class SkCanvas;
reed@android.com4bc19832009-01-19 20:08:35 +00009class SkPaint;
reed@android.combd700c32009-01-05 03:34:50 +000010
11class SkBenchmark : public SkRefCnt {
12public:
reed@android.com4bc19832009-01-19 20:08:35 +000013 SkBenchmark();
14
reed@android.combd700c32009-01-05 03:34:50 +000015 const char* getName();
16 SkIPoint getSize();
17 void draw(SkCanvas*);
reed@android.com4bc19832009-01-19 20:08:35 +000018
19 void setForceAlpha(int alpha) {
20 fForceAlpha = alpha;
21 }
22
23 void setForceAA(bool aa) {
24 fForceAA = aa;
25 }
reed@android.combd700c32009-01-05 03:34:50 +000026
27protected:
reed@android.com4bc19832009-01-19 20:08:35 +000028 void setupPaint(SkPaint* paint);
29
reed@android.combd700c32009-01-05 03:34:50 +000030 virtual const char* onGetName() = 0;
reed@android.combd700c32009-01-05 03:34:50 +000031 virtual void onDraw(SkCanvas*) = 0;
reed@android.comf523e252009-01-26 23:15:37 +000032
33 virtual SkIPoint onGetSize();
34
reed@android.com4bc19832009-01-19 20:08:35 +000035private:
36 int fForceAlpha;
37 bool fForceAA;
reed@android.combd700c32009-01-05 03:34:50 +000038};
39
40static inline SkIPoint SkMakeIPoint(int x, int y) {
41 SkIPoint p;
42 p.set(x, y);
43 return p;
44}
45
reed@android.comf523e252009-01-26 23:15:37 +000046typedef SkTRegistry<SkBenchmark*, void*> BenchRegistry;
47
reed@android.combd700c32009-01-05 03:34:50 +000048#endif
49