Sample2PtRadial.cpp revision 4de4d60a1bb295c2bbac5dc82f69c22c109adc60
1#include "SampleCode.h"
2#include "SkView.h"
3#include "SkCanvas.h"
4#include "SkGradientShader.h"
5
6
7class TwoPtRadialView : public SampleView {
8public:
9    TwoPtRadialView() {}
10
11protected:
12    // overrides from SkEventSink
13    virtual bool onQuery(SkEvent* evt) {
14        if (SampleCode::TitleQ(*evt)) {
15            SampleCode::TitleR(evt, "2PtRadial");
16            return true;
17        }
18        return this->INHERITED::onQuery(evt);
19    }
20
21    virtual void onDrawContent(SkCanvas* canvas) {
22        canvas->translate(SkIntToScalar(10), SkIntToScalar(20));
23
24        SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
25        SkPoint c0 = { 0, 0 };
26        SkScalar r0 = 100;
27        SkPoint c1 = { 100, 100 };
28        SkScalar r1 = 100;
29        SkShader* s = SkGradientShader::CreateTwoPointRadial(c0, r0, c1, r1, colors,
30                                                             NULL, 2,
31                                                             SkShader::kClamp_TileMode);
32
33        SkPaint paint;
34        paint.setShader(s)->unref();
35        canvas->drawPaint(paint);
36    }
37
38private:
39    typedef SampleView INHERITED;
40};
41
42//////////////////////////////////////////////////////////////////////////////
43
44static SkView* MyFactory() { return new TwoPtRadialView; }
45static SkViewRegister reg(MyFactory);
46