aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/bitmapfilters.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-03-08 22:13:04 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-03-08 22:13:04 +0000
commit26b73d31282aa13f476fa140cb82bd624b31d4bb (patch)
tree36738bad40b1dcbc9dbd7fa836fbbce50c8ac993 /gm/bitmapfilters.cpp
parenta1bfa214c55fc1332a43c0343c909549f4178d05 (diff)
defer any drawing until our first time, so we don't do it in our
constructor (which may get called multiple times) git-svn-id: http://skia.googlecode.com/svn/trunk@3352 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/bitmapfilters.cpp')
-rw-r--r--gm/bitmapfilters.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/gm/bitmapfilters.cpp b/gm/bitmapfilters.cpp
index cf98dcdd79..92c7b43dbb 100644
--- a/gm/bitmapfilters.cpp
+++ b/gm/bitmapfilters.cpp
@@ -78,14 +78,21 @@ static SkScalar draw_row(SkCanvas* canvas, const SkBitmap& bm) {
}
class FilterGM : public GM {
-public:
- SkBitmap fBM8, fBM4444, fBM16, fBM32;
-
- FilterGM() {
+ bool fOnce;
+ void init() {
+ if (fOnce) {
+ return;
+ }
+ fOnce = true;
make_bm(&fBM8);
fBM8.copyTo(&fBM4444, SkBitmap::kARGB_4444_Config);
fBM8.copyTo(&fBM16, SkBitmap::kRGB_565_Config);
fBM8.copyTo(&fBM32, SkBitmap::kARGB_8888_Config);
+ }
+public:
+ SkBitmap fBM8, fBM4444, fBM16, fBM32;
+
+ FilterGM() : fOnce(false) {
this->setBGColor(0xFFDDDDDD);
}
@@ -99,6 +106,7 @@ protected:
}
virtual void onDraw(SkCanvas* canvas) {
+ this->init();
SkScalar x = SkIntToScalar(10);
SkScalar y = SkIntToScalar(10);