Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Side by Side Diff: samplecode/PerlinPatch.cpp

Issue 1772463002: use Make instead of Create to return a shared shader (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: partial update of skia call-sites Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SampleCode.h" 8 #include "SampleCode.h"
9 #include "SkAnimTimer.h" 9 #include "SkAnimTimer.h"
10 #include "SkCanvas.h" 10 #include "SkCanvas.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 53
54 paint.setColor(SK_ColorGREEN); 54 paint.setColor(SK_ColorGREEN);
55 canvas->drawPoints(SkCanvas::kPoints_PointMode, 2, right + 1, paint); 55 canvas->drawPoints(SkCanvas::kPoints_PointMode, 2, right + 1, paint);
56 } 56 }
57 57
58 // These are actually half the total width and hieghts 58 // These are actually half the total width and hieghts
59 const SkScalar TexWidth = 100.0f; 59 const SkScalar TexWidth = 100.0f;
60 const SkScalar TexHeight = 100.0f; 60 const SkScalar TexHeight = 100.0f;
61 61
62 class PerlinPatchView : public SampleView { 62 class PerlinPatchView : public SampleView {
63 SkShader* fShader0; 63 sk_sp<SkShader> fShader0;
64 SkShader* fShader1; 64 sk_sp<SkShader> fShader1;
65 SkShader* fShaderCompose; 65 sk_sp<SkShader> fShaderCompose;
66 SkScalar fXFreq; 66 SkScalar fXFreq;
67 SkScalar fYFreq; 67 SkScalar fYFreq;
68 SkScalar fSeed; 68 SkScalar fSeed;
69 SkPoint fPts[SkPatchUtils::kNumCtrlPts]; 69 SkPoint fPts[SkPatchUtils::kNumCtrlPts];
70 SkScalar fTexX; 70 SkScalar fTexX;
71 SkScalar fTexY; 71 SkScalar fTexY;
72 SkScalar fTexScale; 72 SkScalar fTexScale;
73 SkMatrix fInvMatrix; 73 SkMatrix fInvMatrix;
74 public: 74 public:
75 PerlinPatchView() : fXFreq(0.025f), fYFreq(0.025f), fSeed(0.0f), 75 PerlinPatchView() : fXFreq(0.025f), fYFreq(0.025f), fSeed(0.0f),
(...skipping 15 matching lines...) Expand all
91 fPts[8].set(150 * s, 350 * s); 91 fPts[8].set(150 * s, 350 * s);
92 fPts[9].set(100 * s, 300 * s); 92 fPts[9].set(100 * s, 300 * s);
93 fPts[10].set(50 * s, 250 * s); 93 fPts[10].set(50 * s, 250 * s);
94 fPts[11].set(150 * s, 150 * s); 94 fPts[11].set(150 * s, 150 * s);
95 95
96 const SkColor colors[SkPatchUtils::kNumCorners] = { 96 const SkColor colors[SkPatchUtils::kNumCorners] = {
97 0xFF5555FF, 0xFF8888FF, 0xFFCCCCFF 97 0xFF5555FF, 0xFF8888FF, 0xFFCCCCFF
98 }; 98 };
99 const SkPoint points[2] = { SkPoint::Make(0.0f, 0.0f), 99 const SkPoint points[2] = { SkPoint::Make(0.0f, 0.0f),
100 SkPoint::Make(100.0f, 100.0f) }; 100 SkPoint::Make(100.0f, 100.0f) };
101 fShader0 = SkGradientShader::CreateLinear(points, 101 fShader0 = SkGradientShader::MakeLinear(points,
102 colors, 102 colors,
103 NULL, 103 NULL,
104 3, 104 3,
105 SkShader::kMirror_TileMode, 105 SkShader::kMirror_TileMode,
106 0, 106 0,
107 NULL); 107 NULL);
108 } 108 }
109 109
110 virtual ~PerlinPatchView() {
111 SkSafeUnref(fShader0);
112 }
113 protected: 110 protected:
114 // overrides from SkEventSink 111 // overrides from SkEventSink
115 bool onQuery(SkEvent* evt) override { 112 bool onQuery(SkEvent* evt) override {
116 if (SampleCode::TitleQ(*evt)) { 113 if (SampleCode::TitleQ(*evt)) {
117 SampleCode::TitleR(evt, "PerlinPatch"); 114 SampleCode::TitleR(evt, "PerlinPatch");
118 return true; 115 return true;
119 } 116 }
120 return this->INHERITED::onQuery(evt); 117 return this->INHERITED::onQuery(evt);
121 } 118 }
122 119
(...skipping 15 matching lines...) Expand all
138 const SkPoint texCoords[SkPatchUtils::kNumCorners] = { 135 const SkPoint texCoords[SkPatchUtils::kNumCorners] = {
139 { fTexX - texWidth, fTexY - texHeight}, 136 { fTexX - texWidth, fTexY - texHeight},
140 { fTexX + texWidth, fTexY - texHeight}, 137 { fTexX + texWidth, fTexY - texHeight},
141 { fTexX + texWidth, fTexY + texHeight}, 138 { fTexX + texWidth, fTexY + texHeight},
142 { fTexX - texWidth, fTexY + texHeight}} 139 { fTexX - texWidth, fTexY + texHeight}}
143 ; 140 ;
144 141
145 SkAutoTUnref<SkXfermode> xfer(SkXfermode::Create(SkXfermode::kSrc_Mode)) ; 142 SkAutoTUnref<SkXfermode> xfer(SkXfermode::Create(SkXfermode::kSrc_Mode)) ;
146 143
147 SkScalar scaleFreq = 2.0; 144 SkScalar scaleFreq = 2.0;
148 fShader1 = SkPerlinNoiseShader2::CreateImprovedNoise(fXFreq/scaleFreq, f YFreq/scaleFreq, 4, 145 fShader1 = SkPerlinNoiseShader2::MakeImprovedNoise(fXFreq/scaleFreq, fYF req/scaleFreq, 4,
149 fSeed); 146 fSeed);
150 fShaderCompose = SkShader::CreateComposeShader(fShader0, fShader1, nullp tr); 147 fShaderCompose = SkShader::MakeComposeShader(fShader0, fShader1, nullptr );
151 148
152 paint.setShader(fShaderCompose); 149 paint.setShader(fShaderCompose);
153 canvas->drawPatch(fPts, nullptr, texCoords, xfer, paint); 150 canvas->drawPatch(fPts, nullptr, texCoords, xfer, paint);
154 151
155 draw_control_points(canvas, fPts); 152 draw_control_points(canvas, fPts);
156 SkSafeUnref(fShader1);
157 SkSafeUnref(fShaderCompose);
158 } 153 }
159 154
160 class PtClick : public Click { 155 class PtClick : public Click {
161 public: 156 public:
162 int fIndex; 157 int fIndex;
163 PtClick(SkView* view, int index) : Click(view), fIndex(index) {} 158 PtClick(SkView* view, int index) : Click(view), fIndex(index) {}
164 }; 159 };
165 160
166 static bool hittest(const SkPoint& pt, SkScalar x, SkScalar y) { 161 static bool hittest(const SkPoint& pt, SkScalar x, SkScalar y) {
167 return SkPoint::Length(pt.fX - x, pt.fY - y) < SkIntToScalar(5); 162 return SkPoint::Length(pt.fX - x, pt.fY - y) < SkIntToScalar(5);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 this->inval(nullptr); 198 this->inval(nullptr);
204 return true; 199 return true;
205 } 200 }
206 201
207 private: 202 private:
208 typedef SampleView INHERITED; 203 typedef SampleView INHERITED;
209 }; 204 };
210 205
211 DEF_SAMPLE( return new PerlinPatchView(); ) 206 DEF_SAMPLE( return new PerlinPatchView(); )
212 207
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698