delay any drawing until first call to onDraw (eases debugging)

git-svn-id: http://skia.googlecode.com/svn/trunk@3461 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
reed@google.com 2012-03-22 14:09:28 +00:00
parent ec1a7fa304
commit 9afc656df6
2 changed files with 36 additions and 3 deletions

View File

@ -45,10 +45,19 @@ static void make_bitmap(int quarterWidth, int quarterHeight, SkBitmap *bitmap) {
} }
class BitmapScrollGM : public GM { class BitmapScrollGM : public GM {
public: bool fInited;
BitmapScrollGM() { void init() {
if (fInited) {
return;
}
fInited = true;
// Create the original bitmap. // Create the original bitmap.
make_bitmap(quarterWidth, quarterHeight, &origBitmap); make_bitmap(quarterWidth, quarterHeight, &origBitmap);
}
public:
BitmapScrollGM() {
fInited = false;
this->setBGColor(0xFFDDDDDD); this->setBGColor(0xFFDDDDDD);
} }
@ -62,6 +71,7 @@ protected:
} }
virtual void onDraw(SkCanvas* canvas) { virtual void onDraw(SkCanvas* canvas) {
this->init();
SkIRect scrollCenterRegion = SkIRect::MakeXYWH( SkIRect scrollCenterRegion = SkIRect::MakeXYWH(
quarterWidth, quarterHeight, quarterWidth*2+1, quarterHeight*2+1); quarterWidth, quarterHeight, quarterWidth*2+1, quarterHeight*2+1);
int x = quarterWidth; int x = quarterWidth;

View File

@ -11,13 +11,35 @@
#define WIDTH 500 #define WIDTH 500
#define HEIGHT 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 { namespace skiagm {
class ColorMatrixGM : public GM { class ColorMatrixGM : public GM {
SkOnce fOnce;
void init() {
if (fOnce.once()) {
fBitmap = createBitmap(64, 64);
}
}
public: public:
ColorMatrixGM() { ColorMatrixGM() {
this->setBGColor(0xFF808080); this->setBGColor(0xFF808080);
fBitmap = createBitmap(64, 64);
} }
protected: protected:
@ -45,6 +67,7 @@ protected:
return bm; return bm;
} }
virtual void onDraw(SkCanvas* canvas) { virtual void onDraw(SkCanvas* canvas) {
this->init();
SkPaint paint; SkPaint paint;
SkColorMatrix matrix; SkColorMatrix matrix;