Benchmark.h revision 29348cb0612e19030d979156860946241e2ff4bd
1#ifndef SkBenchmark_DEFINED
2#define SkBenchmark_DEFINED
3
4#include "SkRefCnt.h"
5#include "SkPoint.h"
6#include "SkTRegistry.h"
7
8class SkCanvas;
9class SkPaint;
10
11class SkBenchmark : public SkRefCnt {
12public:
13    SkBenchmark();
14
15    const char* getName();
16    SkIPoint getSize();
17    void draw(SkCanvas*);
18
19    void setForceAlpha(int alpha) {
20        fForceAlpha = alpha;
21    }
22
23    void setForceAA(bool aa) {
24        fForceAA = aa;
25    }
26
27    void setForceFilter(bool filter) {
28        fForceFilter = filter;
29    }
30
31protected:
32    void setupPaint(SkPaint* paint);
33
34    virtual const char* onGetName() = 0;
35    virtual void onDraw(SkCanvas*) = 0;
36
37    virtual SkIPoint onGetSize();
38
39private:
40    int     fForceAlpha;
41    bool    fForceAA;
42    bool    fForceFilter;
43};
44
45static inline SkIPoint SkMakeIPoint(int x, int y) {
46    SkIPoint p;
47    p.set(x, y);
48    return p;
49}
50
51typedef SkTRegistry<SkBenchmark*, void*> BenchRegistry;
52
53#endif
54
55