1 
2 /*
3  * Copyright 2011 Google Inc.
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8 #include "SampleCode.h"
9 #include "SkView.h"
10 #include "SkCanvas.h"
11 #include "SkGradientShader.h"
12 
13 
14 class TwoPtConicalView : public SampleView {
15 public:
TwoPtConicalView()16     TwoPtConicalView() {}
17 
18 protected:
19     // overrides from SkEventSink
onQuery(SkEvent * evt)20     virtual bool onQuery(SkEvent* evt) {
21         if (SampleCode::TitleQ(*evt)) {
22             SampleCode::TitleR(evt, "2PtConical");
23             return true;
24         }
25         return this->INHERITED::onQuery(evt);
26     }
27 
onDrawContent(SkCanvas * canvas)28     virtual void onDrawContent(SkCanvas* canvas) {
29         canvas->translate(SkIntToScalar(10), SkIntToScalar(20));
30 
31         SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
32         SkPoint c0 = { 0, 0 };
33         SkScalar r0 = 100;
34         SkPoint c1 = { 100, 100 };
35         SkScalar r1 = 100;
36         SkShader* s = SkGradientShader::CreateTwoPointConical(c0, r0, c1, r1, colors,
37                                                              nullptr, 2,
38                                                              SkShader::kClamp_TileMode);
39 
40         SkPaint paint;
41         paint.setShader(s)->unref();
42         canvas->drawPaint(paint);
43     }
44 
45 private:
46     typedef SampleView INHERITED;
47 };
48 
49 //////////////////////////////////////////////////////////////////////////////
50 
MyFactory()51 static SkView* MyFactory() { return new TwoPtConicalView; }
52 static SkViewRegister reg(MyFactory);
53