aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode/SampleSpiral.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'samplecode/SampleSpiral.cpp')
-rw-r--r--samplecode/SampleSpiral.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/samplecode/SampleSpiral.cpp b/samplecode/SampleSpiral.cpp
new file mode 100644
index 0000000000..1a41440c6a
--- /dev/null
+++ b/samplecode/SampleSpiral.cpp
@@ -0,0 +1,56 @@
+#include "SampleCode.h"
+#include "SkView.h"
+#include "SkCanvas.h"
+
+class SpiralView : public SampleView {
+public:
+ SpiralView() {
+ this->setBGColor(0xFFDDDDDD);
+ }
+
+protected:
+ // overrides from SkEventSink
+ virtual bool onQuery(SkEvent* evt) {
+ if (SampleCode::TitleQ(*evt)) {
+ SampleCode::TitleR(evt, "Spiral");
+ return true;
+ }
+ return this->INHERITED::onQuery(evt);
+ }
+
+ virtual void onDrawContent(SkCanvas* canvas) {
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ paint.setStrokeWidth(SkScalarHalf(SkIntToScalar(3)));
+ paint.setStyle(SkPaint::kFill_Style);
+
+ SkRect r;
+ SkScalar l,t,x,y;
+ l = SampleCode::GetAnimScalar(SkIntToScalar(10),
+ SkIntToScalar(400));
+ t = SampleCode::GetAnimScalar(SkIntToScalar(5),
+ SkIntToScalar(200));
+
+ canvas->translate(320,240);
+ for (int i = 0; i < 35; i++) {
+ paint.setColor(0xFFF00FF0 - i * 0x04000000);
+ SkScalar step = SK_ScalarPI / (55 - i);
+ SkScalar angle = t * step;
+ x = (20 + SkIntToScalar(i) * 5) * SkScalarSinCos(angle, &y);
+ y *= (20 + SkIntToScalar(i) * 5);
+ r.set(x, y, x + SkIntToScalar(10), y + SkIntToScalar(10));
+ canvas->drawRect(r, paint);
+ }
+
+ this->inval(NULL);
+ }
+
+private:
+ typedef SampleView INHERITED;
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+static SkView* MyFactory() { return new SpiralView; }
+static SkViewRegister reg(MyFactory); \ No newline at end of file