• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2016 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "gm.h"
9 #include "SkPath.h"
10 #include "SkDashPathEffect.h"
11 
12 DEF_SIMPLE_GM(bug530095, canvas, 900, 1200) {
13     SkPath path1, path2;
14     path1.addCircle(200, 200, 124);
15     path2.addCircle(2, 2, 1.24f);
16 
17     SkPaint paint;
18     paint.setAntiAlias(true);
19     paint.setStyle(SkPaint::kStroke_Style);
20     paint.setStrokeWidth(26);
21     SkScalar intervals[] = {700, 700 };
22     int intervalCount = (int) SK_ARRAY_COUNT(intervals);
23     paint.setPathEffect(SkDashPathEffect::Make(intervals, intervalCount, -40));
24     canvas->drawPath(path1, paint);
25 
26     paint.setStrokeWidth(0.26f);
27     SkScalar smIntervals[] = {7, 7 };
28     int smIntervalCount = (int) SK_ARRAY_COUNT(smIntervals);
29     paint.setPathEffect(SkDashPathEffect::Make(smIntervals, smIntervalCount, -0.40f));
30     canvas->save();
31     canvas->scale(100, 100);
32     canvas->translate(4, 0);
33     canvas->drawPath(path2, paint);
34     canvas->restore();
35 
36     paint.setStrokeWidth(26);
37     paint.setPathEffect(SkDashPathEffect::Make(intervals, intervalCount, 0));
38     canvas->save();
39     canvas->translate(0, 400);
40     canvas->drawPath(path1, paint);
41     canvas->restore();
42 
43     paint.setStrokeWidth(0.26f);
44     paint.setPathEffect(SkDashPathEffect::Make(smIntervals, smIntervalCount, 0));
45     canvas->scale(100, 100);
46     canvas->translate(4, 4);
47     canvas->drawPath(path2, paint);
48 }
49 
50 DEF_SIMPLE_GM(bug591993, canvas, 40, 140) {
51     SkPaint p;
52     p.setColor(SK_ColorRED);
53     p.setAntiAlias(true);
54     p.setStyle(SkPaint::kStroke_Style);
55     p.setStrokeCap(SkPaint::kRound_Cap);
56     p.setStrokeWidth(10);
57     const SkScalar intervals[] = { 100, 100 };
58     p.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 100));
59     canvas->drawLine(20, 20, 120, 20, p);
60 }
61