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