add init() method, so we don't draw in our constructor (makes debugging harder)
git-svn-id: http://skia.googlecode.com/svn/trunk@3368 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SamplePageFlip.cpp b/samplecode/SamplePageFlip.cpp
index b2d96f0..99670bd 100644
--- a/samplecode/SamplePageFlip.cpp
+++ b/samplecode/SamplePageFlip.cpp
@@ -90,6 +90,7 @@
};
class PageFlipView : public SampleView {
+ bool fOnce;
public:
enum { N = SK_ARRAY_COUNT(gConfigs) };
@@ -99,25 +100,37 @@
PageFlipView() {
gDone = false;
+ fOnce = false;
+ this->setBGColor(0xFFDDDDDD);
+ }
+
+ void init() {
+ if (fOnce) {
+ return;
+ }
+ fOnce = true;
+
for (int i = 0; i < N; i++) {
int status;
pthread_attr_t attr;
status = pthread_attr_init(&attr);
SkASSERT(0 == status);
-
+
fBitmaps[i].setConfig(gConfigs[i], WIDTH, HEIGHT);
SkFlipPixelRef* pr = new SkFlipPixelRef(gConfigs[i], WIDTH, HEIGHT);
fBitmaps[i].setPixelRef(pr)->unref();
fBitmaps[i].eraseColor(0);
-
+
status = pthread_create(&fThreads[i], &attr, draw_proc, &fBitmaps[i]);
SkASSERT(0 == status);
}
- this->setBGColor(0xFFDDDDDD);
}
virtual ~PageFlipView() {
+ if (!fOnce) {
+ return;
+ }
gDone = true;
for (int i = 0; i < N; i++) {
void* ret;
@@ -137,6 +150,7 @@
}
virtual void onDrawContent(SkCanvas* canvas) {
+ this->init();
SkScalar x = SkIntToScalar(10);
SkScalar y = SkIntToScalar(10);
for (int i = 0; i < N; i++) {