blob: 20582514e088ae986fa72e26206de5cb1d5b142d [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.com29348cb2009-08-04 18:17:15 +000026
27 void setForceFilter(bool filter) {
28 fForceFilter = filter;
29 }
30
reed@android.combd700c32009-01-05 03:34:50 +000031protected:
reed@android.com4bc19832009-01-19 20:08:35 +000032 void setupPaint(SkPaint* paint);
33
reed@android.combd700c32009-01-05 03:34:50 +000034 virtual const char* onGetName() = 0;
reed@android.combd700c32009-01-05 03:34:50 +000035 virtual void onDraw(SkCanvas*) = 0;
reed@android.comf523e252009-01-26 23:15:37 +000036
37 virtual SkIPoint onGetSize();
38
reed@android.com4bc19832009-01-19 20:08:35 +000039private:
40 int fForceAlpha;
41 bool fForceAA;
reed@android.com29348cb2009-08-04 18:17:15 +000042 bool fForceFilter;
reed@android.combd700c32009-01-05 03:34:50 +000043};
44
45static inline SkIPoint SkMakeIPoint(int x, int y) {
46 SkIPoint p;
47 p.set(x, y);
48 return p;
49}
50
reed@android.comf523e252009-01-26 23:15:37 +000051typedef SkTRegistry<SkBenchmark*, void*> BenchRegistry;
52
reed@android.combd700c32009-01-05 03:34:50 +000053#endif
54