diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-03-30 20:04:21 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-03-30 20:04:21 +0000 |
commit | d42e3f60cd571afb6c0f1837f9e0996bfe149001 (patch) | |
tree | 33ac82a3cd588b20875d92c1d0b47e8b1a0cd531 /gm/convexpaths.cpp | |
parent | bbbe9ed59ee1d3077fa4e6368a4a7294240a5ec6 (diff) |
defer drawing/work until first draw, to make debugging easier and speedup
instantiating the obj just to get its name.
git-svn-id: http://skia.googlecode.com/svn/trunk@3568 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/convexpaths.cpp')
-rw-r--r-- | gm/convexpaths.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/gm/convexpaths.cpp b/gm/convexpaths.cpp index 2c719e826d..ebe715d866 100644 --- a/gm/convexpaths.cpp +++ b/gm/convexpaths.cpp @@ -9,13 +9,28 @@ #include "SkRandom.h" #include "SkTArray.h" +class SkOnce : SkNoncopyable { +public: + SkOnce() { fDidOnce = false; } + + bool needToDo() const { return !fDidOnce; } + bool alreadyDone() const { return fDidOnce; } + void accomplished() { + SkASSERT(!fDidOnce); + fDidOnce = true; + } + +private: + bool fDidOnce; +}; + namespace skiagm { class ConvexPathsGM : public GM { + SkOnce fOnce; public: ConvexPathsGM() { this->setBGColor(0xFF000000); - this->makePaths(); } protected: @@ -29,6 +44,11 @@ protected: } void makePaths() { + if (fOnce.alreadyDone()) { + return; + } + fOnce.accomplished(); + // CW fPaths.push_back().moveTo(0, 0); fPaths.back().quadTo(50 * SK_Scalar1, 100 * SK_Scalar1, @@ -169,6 +189,7 @@ protected: } virtual void onDraw(SkCanvas* canvas) { + this->makePaths(); SkPaint paint; paint.setAntiAlias(true); |