blob: 5ecff3b84c7b1a8b72256a8dab3a550ec333a462 [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.come9d00602009-09-02 21:12:42 +00006#include "SkTDict.h"
reed@android.comf523e252009-01-26 23:15:37 +00007#include "SkTRegistry.h"
reed@android.combd700c32009-01-05 03:34:50 +00008
9class SkCanvas;
reed@android.com4bc19832009-01-19 20:08:35 +000010class SkPaint;
reed@android.combd700c32009-01-05 03:34:50 +000011
12class SkBenchmark : public SkRefCnt {
13public:
reed@android.come9d00602009-09-02 21:12:42 +000014 SkBenchmark(void* defineDict);
reed@android.com4bc19832009-01-19 20:08:35 +000015
reed@android.combd700c32009-01-05 03:34:50 +000016 const char* getName();
17 SkIPoint getSize();
18 void draw(SkCanvas*);
reed@android.com4bc19832009-01-19 20:08:35 +000019
20 void setForceAlpha(int alpha) {
21 fForceAlpha = alpha;
22 }
23
24 void setForceAA(bool aa) {
25 fForceAA = aa;
26 }
reed@android.com29348cb2009-08-04 18:17:15 +000027
28 void setForceFilter(bool filter) {
29 fForceFilter = filter;
30 }
reed@android.come9d00602009-09-02 21:12:42 +000031
32 const char* findDefine(const char* key) const;
33
reed@android.combd700c32009-01-05 03:34:50 +000034protected:
reed@android.com4bc19832009-01-19 20:08:35 +000035 void setupPaint(SkPaint* paint);
36
reed@android.combd700c32009-01-05 03:34:50 +000037 virtual const char* onGetName() = 0;
reed@android.combd700c32009-01-05 03:34:50 +000038 virtual void onDraw(SkCanvas*) = 0;
reed@android.comf523e252009-01-26 23:15:37 +000039
40 virtual SkIPoint onGetSize();
41
reed@android.com4bc19832009-01-19 20:08:35 +000042private:
reed@android.come9d00602009-09-02 21:12:42 +000043 const SkTDict<const char*>* fDict;
reed@android.com4bc19832009-01-19 20:08:35 +000044 int fForceAlpha;
45 bool fForceAA;
reed@android.com29348cb2009-08-04 18:17:15 +000046 bool fForceFilter;
reed@android.combd700c32009-01-05 03:34:50 +000047};
48
49static inline SkIPoint SkMakeIPoint(int x, int y) {
50 SkIPoint p;
51 p.set(x, y);
52 return p;
53}
54
reed@android.comf523e252009-01-26 23:15:37 +000055typedef SkTRegistry<SkBenchmark*, void*> BenchRegistry;
56
reed@android.combd700c32009-01-05 03:34:50 +000057#endif
58