diff options
Diffstat (limited to 'gm/colormatrix.cpp')
-rw-r--r-- | gm/colormatrix.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp index 0a4acfd84f..3cc9c028dc 100644 --- a/gm/colormatrix.cpp +++ b/gm/colormatrix.cpp @@ -11,13 +11,35 @@ #define WIDTH 500 #define HEIGHT 500 +class SkOnce { +public: + SkOnce() : fOnce(false) {}; + + bool once() const { + if (fOnce) { + return false; + } + fOnce = true; + return true; + } + +private: + mutable bool fOnce; +}; + namespace skiagm { class ColorMatrixGM : public GM { + SkOnce fOnce; + void init() { + if (fOnce.once()) { + fBitmap = createBitmap(64, 64); + } + } + public: ColorMatrixGM() { this->setBGColor(0xFF808080); - fBitmap = createBitmap(64, 64); } protected: @@ -45,6 +67,7 @@ protected: return bm; } virtual void onDraw(SkCanvas* canvas) { + this->init(); SkPaint paint; SkColorMatrix matrix; |