#ifndef skiagm_DEFINED #define skiagm_DEFINED #include "SkCanvas.h" #include "SkPaint.h" #include "SkRefCnt.h" #include "SkSize.h" #include "SkString.h" #include "SkTRegistry.h" namespace skiagm { static inline SkISize make_isize(int w, int h) { SkISize sz; sz.set(w, h); return sz; } class GM { public: GM(); virtual ~GM(); void draw(SkCanvas*); SkISize getISize() { return this->onISize(); } const char* shortName() { if (fShortName.size() == 0) { fShortName = this->onShortName(); } return fShortName.c_str(); } protected: virtual void onDraw(SkCanvas*) = 0; virtual SkISize onISize() = 0; virtual SkString onShortName() = 0; private: SkString fShortName; }; typedef SkTRegistry GMRegistry; } #endif