diff options
Diffstat (limited to 'samplecode/SampleSpiral.cpp')
-rw-r--r-- | samplecode/SampleSpiral.cpp | 56 |
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 |