OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 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 "gm.h" | 8 #include "gm.h" |
9 #include "SkBlurMaskFilter.h" | 9 #include "SkBlurMaskFilter.h" |
10 #include "SkRRect.h" | 10 #include "SkRRect.h" |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 dist -= 10.0f; | 142 dist -= 10.0f; |
143 SkRRect occRR = SkRRect::MakeOval( | 143 SkRRect occRR = SkRRect::MakeOval( |
144 offset_center_to(r, center.fX + dist*v.fX, center.fY
+ dist*v.fY)); | 144 offset_center_to(r, center.fX + dist*v.fX, center.fY
+ dist*v.fY)); |
145 | 145 |
146 draw_rrect(canvas, rr, occRR); | 146 draw_rrect(canvas, rr, occRR); |
147 } | 147 } |
148 | 148 |
149 static void draw_90_simple(SkCanvas* canvas, const SkVector& v, | 149 static void draw_90_simple(SkCanvas* canvas, const SkVector& v, |
150 SkScalar dist, const SkPoint& center) { | 150 SkScalar dist, const SkPoint& center) { |
151 static const int kLength = 128; | 151 static const int kLength = 128; |
152 static const int kWidth = 32; | 152 // The width needs to be larger than 2*3*blurRadii+2*cornerRadius for the an
alytic |
| 153 // RRect blur to kick in |
| 154 static const int kWidth = 47; |
153 | 155 |
154 SkIRect r; | 156 SkIRect r; |
155 if (fabs(v.fX) < fabs(v.fY)) { | 157 if (fabs(v.fX) < fabs(v.fY)) { |
156 r = SkIRect::MakeWH(kLength, kWidth); | 158 r = SkIRect::MakeWH(kLength, kWidth); |
157 } else { | 159 } else { |
158 r = SkIRect::MakeWH(kWidth, kLength); | 160 r = SkIRect::MakeWH(kWidth, kLength); |
159 } | 161 } |
160 SkRRect rr = SkRRect::MakeRectXY( | 162 SkRRect rr = SkRRect::MakeRectXY( |
161 offset_center_to(r, center.fX + dist*v.fX, center.fY
+ dist*v.fY), | 163 offset_center_to(r, center.fX + dist*v.fX, center.fY
+ dist*v.fY), |
162 8, 8); | 164 8, 8); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 SkVector::Make(-0.5f, -kRoot3Over2), 120, center); | 288 SkVector::Make(-0.5f, -kRoot3Over2), 120, center); |
287 draw_30_60(canvas, SkRRect::kUpperRight_Corner, | 289 draw_30_60(canvas, SkRRect::kUpperRight_Corner, |
288 SkVector::Make(-kRoot3Over2, -0.5f), 120, center); | 290 SkVector::Make(-kRoot3Over2, -0.5f), 120, center); |
289 | 291 |
290 draw_30_60(canvas, SkRRect::kUpperLeft_Corner, | 292 draw_30_60(canvas, SkRRect::kUpperLeft_Corner, |
291 SkVector::Make(0.5f, -kRoot3Over2), 120, center); | 293 SkVector::Make(0.5f, -kRoot3Over2), 120, center); |
292 draw_30_60(canvas, SkRRect::kLowerRight_Corner, | 294 draw_30_60(canvas, SkRRect::kLowerRight_Corner, |
293 SkVector::Make(kRoot3Over2, -0.5f), 120, center); | 295 SkVector::Make(kRoot3Over2, -0.5f), 120, center); |
294 | 296 |
295 draw_45_simple(canvas, SkVector::Make(-SK_ScalarRoot2Over2, -SK_ScalarRo
ot2Over2), | 297 draw_45_simple(canvas, SkVector::Make(-SK_ScalarRoot2Over2, -SK_ScalarRo
ot2Over2), |
296 190, center); | 298 210, center); |
297 draw_45_simple(canvas, SkVector::Make(SK_ScalarRoot2Over2, -SK_ScalarRoo
t2Over2), | 299 draw_45_simple(canvas, SkVector::Make(SK_ScalarRoot2Over2, -SK_ScalarRoo
t2Over2), |
298 190, center); | 300 210, center); |
299 draw_45_simple(canvas, SkVector::Make(SK_ScalarRoot2Over2, SK_ScalarRoot
2Over2), | 301 draw_45_simple(canvas, SkVector::Make(SK_ScalarRoot2Over2, SK_ScalarRoot
2Over2), |
300 190, center); | 302 210, center); |
301 draw_45_simple(canvas, SkVector::Make(-SK_ScalarRoot2Over2, SK_ScalarRoo
t2Over2), | 303 draw_45_simple(canvas, SkVector::Make(-SK_ScalarRoot2Over2, SK_ScalarRoo
t2Over2), |
302 190, center); | 304 210, center); |
303 | 305 |
304 draw_90_simple(canvas, SkVector::Make(-1.0f, 0.0f), 150, center); | 306 draw_90_simple(canvas, SkVector::Make(-1.0f, 0.0f), 160, center); |
305 draw_90_simple(canvas, SkVector::Make(0.0f, -1.0f), 150, center); | 307 draw_90_simple(canvas, SkVector::Make(0.0f, -1.0f), 160, center); |
306 draw_90_simple(canvas, SkVector::Make(1.0f, 0.0f), 150, center); | 308 draw_90_simple(canvas, SkVector::Make(1.0f, 0.0f), 160, center); |
307 draw_90_simple(canvas, SkVector::Make(0.0f, 1.0f), 150, center); | 309 draw_90_simple(canvas, SkVector::Make(0.0f, 1.0f), 160, center); |
308 } | 310 } |
309 | 311 |
310 private: | 312 private: |
311 static const int kWidth = 440; | 313 static const int kWidth = 440; |
312 static const int kHeight = 440; | 314 static const int kHeight = 440; |
313 | 315 |
314 typedef GM INHERITED; | 316 typedef GM INHERITED; |
315 }; | 317 }; |
316 | 318 |
317 ////////////////////////////////////////////////////////////////////////////// | 319 ////////////////////////////////////////////////////////////////////////////// |
318 | 320 |
319 DEF_GM(return new OccludedRRectBlurGM;) | 321 DEF_GM(return new OccludedRRectBlurGM;) |
320 } | 322 } |
OLD | NEW |