aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/convexpaths.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-03-30 20:04:21 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-03-30 20:04:21 +0000
commitd42e3f60cd571afb6c0f1837f9e0996bfe149001 (patch)
tree33ac82a3cd588b20875d92c1d0b47e8b1a0cd531 /gm/convexpaths.cpp
parentbbbe9ed59ee1d3077fa4e6368a4a7294240a5ec6 (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.cpp23
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);