diff options
Diffstat (limited to 'chromium/third_party/skia/samplecode/SampleSpiral.cpp')
-rw-r--r-- | chromium/third_party/skia/samplecode/SampleSpiral.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/chromium/third_party/skia/samplecode/SampleSpiral.cpp b/chromium/third_party/skia/samplecode/SampleSpiral.cpp new file mode 100644 index 00000000000..5eda3c61ec0 --- /dev/null +++ b/chromium/third_party/skia/samplecode/SampleSpiral.cpp @@ -0,0 +1,63 @@ + +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#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); |