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