OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2016 Google Inc. | 3 * Copyright 2016 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 #include "SampleCode.h" | 8 #include "SampleCode.h" |
9 #include "SkBlurMask.h" | 9 #include "SkBlurMask.h" |
10 #include "SkBlurMaskFilter.h" | 10 #include "SkBlurMaskFilter.h" |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 SkScalar maxScale = canvas->getTotalMatrix().getMaxScale(); | 175 SkScalar maxScale = canvas->getTotalMatrix().getMaxScale(); |
176 radius *= maxScale; | 176 radius *= maxScale; |
177 unsigned char gray = (unsigned char)(ambientAlpha*umbraAlpha*255.999f); | 177 unsigned char gray = (unsigned char)(ambientAlpha*umbraAlpha*255.999f); |
178 SkASSERT(radius < 256); | 178 SkASSERT(radius < 256); |
179 // convert the radius to fixed point 8.8 and | 179 // convert the radius to fixed point 8.8 and |
180 // place it in the G,B components of the color | 180 // place it in the G,B components of the color |
181 unsigned char intPart = (unsigned char)radius; | 181 unsigned char intPart = (unsigned char)radius; |
182 SkScalar fracPart = radius - intPart; | 182 SkScalar fracPart = radius - intPart; |
183 paint.setColor(SkColorSetARGB(1, gray, intPart, (unsigned char)(fracPart
*256.f))); | 183 paint.setColor(SkColorSetARGB(1, gray, intPart, (unsigned char)(fracPart
*256.f))); |
184 | 184 |
185 sk_sp<SkShader> gaussShader = std::move(SkGaussianEdgeShader::Make()); | 185 sk_sp<SkShader> gaussShader = SkGaussianEdgeShader::Make(); |
186 paint.setShader(gaussShader); | 186 paint.setShader(gaussShader); |
187 canvas->drawRRect(pathRRect, paint); | 187 canvas->drawRRect(pathRRect, paint); |
188 } | 188 } |
189 | 189 |
190 void drawSpotShadow(SkCanvas* canvas, const SkPath& path, SkScalar zValue, | 190 void drawSpotShadow(SkCanvas* canvas, const SkPath& path, SkScalar zValue, |
191 SkPoint3 lightPos, SkScalar lightWidth, SkScalar spotAlp
ha) { | 191 SkPoint3 lightPos, SkScalar lightWidth, SkScalar spotAlp
ha) { |
192 if (spotAlpha <= 0) { | 192 if (spotAlpha <= 0) { |
193 return; | 193 return; |
194 } | 194 } |
195 | 195 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 | 295 |
296 // compute the transformation params | 296 // compute the transformation params |
297 SkPoint center = SkPoint::Make(path.getBounds().centerX(), path.getBound
s().centerY()); | 297 SkPoint center = SkPoint::Make(path.getBounds().centerX(), path.getBound
s().centerY()); |
298 canvas->getTotalMatrix().mapPoints(¢er, 1); | 298 canvas->getTotalMatrix().mapPoints(¢er, 1); |
299 SkPoint offset = SkPoint::Make(-zRatio*(lightPos.fX - center.fX), | 299 SkPoint offset = SkPoint::Make(-zRatio*(lightPos.fX - center.fX), |
300 -zRatio*(lightPos.fY - center.fY)); | 300 -zRatio*(lightPos.fY - center.fY)); |
301 SkAutoCanvasRestore acr(canvas, true); | 301 SkAutoCanvasRestore acr(canvas, true); |
302 | 302 |
303 SkPaint paint; | 303 SkPaint paint; |
304 paint.setAntiAlias(true); | 304 paint.setAntiAlias(true); |
305 sk_sp<SkShader> gaussShader = std::move(SkGaussianEdgeShader::Make()); | 305 sk_sp<SkShader> gaussShader = SkGaussianEdgeShader::Make(); |
306 paint.setShader(gaussShader); | 306 paint.setShader(gaussShader); |
307 // handle scale of radius due to CTM | 307 // handle scale of radius due to CTM |
308 SkScalar maxScale = canvas->getTotalMatrix().getMaxScale(); | 308 SkScalar maxScale = canvas->getTotalMatrix().getMaxScale(); |
309 radius *= maxScale; | 309 radius *= maxScale; |
310 unsigned char gray = (unsigned char)(spotAlpha*255.999f); | 310 unsigned char gray = (unsigned char)(spotAlpha*255.999f); |
311 SkASSERT(radius < 256); | 311 SkASSERT(radius < 256); |
312 // convert the radius to fixed point 8.8 and | 312 // convert the radius to fixed point 8.8 and |
313 // place it in the G,B components of the color | 313 // place it in the G,B components of the color |
314 unsigned char intPart = (unsigned char)radius; | 314 unsigned char intPart = (unsigned char)radius; |
315 SkScalar fracPart = radius - intPart; | 315 SkScalar fracPart = radius - intPart; |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 } | 412 } |
413 | 413 |
414 private: | 414 private: |
415 typedef SkView INHERITED; | 415 typedef SkView INHERITED; |
416 }; | 416 }; |
417 | 417 |
418 ////////////////////////////////////////////////////////////////////////////// | 418 ////////////////////////////////////////////////////////////////////////////// |
419 | 419 |
420 static SkView* MyFactory() { return new ShadowsView; } | 420 static SkView* MyFactory() { return new ShadowsView; } |
421 static SkViewRegister reg(MyFactory); | 421 static SkViewRegister reg(MyFactory); |
OLD | NEW |