diff options
Diffstat (limited to 'gm')
-rw-r--r-- | gm/bitmapscroll.cpp | 14 | ||||
-rw-r--r-- | gm/colormatrix.cpp | 25 |
2 files changed, 36 insertions, 3 deletions
diff --git a/gm/bitmapscroll.cpp b/gm/bitmapscroll.cpp index 70d105255c..eee966812e 100644 --- a/gm/bitmapscroll.cpp +++ b/gm/bitmapscroll.cpp @@ -45,10 +45,19 @@ static void make_bitmap(int quarterWidth, int quarterHeight, SkBitmap *bitmap) { } class BitmapScrollGM : public GM { -public: - BitmapScrollGM() { + bool fInited; + void init() { + if (fInited) { + return; + } + fInited = true; // Create the original bitmap. make_bitmap(quarterWidth, quarterHeight, &origBitmap); + } + +public: + BitmapScrollGM() { + fInited = false; this->setBGColor(0xFFDDDDDD); } @@ -62,6 +71,7 @@ protected: } virtual void onDraw(SkCanvas* canvas) { + this->init(); SkIRect scrollCenterRegion = SkIRect::MakeXYWH( quarterWidth, quarterHeight, quarterWidth*2+1, quarterHeight*2+1); int x = quarterWidth; 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; |