|  | /* | 
|  | * Copyright 2016 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #include "gm.h" | 
|  | #include "SkPath.h" | 
|  | #include "SkDashPathEffect.h" | 
|  |  | 
|  | DEF_SIMPLE_GM(bug530095, canvas, 900, 1200) { | 
|  | SkPath path1, path2; | 
|  | path1.addCircle(200, 200, 124); | 
|  | path2.addCircle(2, 2, 1.24f); | 
|  |  | 
|  | SkPaint paint; | 
|  | paint.setAntiAlias(true); | 
|  | paint.setStyle(SkPaint::kStroke_Style); | 
|  | paint.setStrokeWidth(26); | 
|  | SkScalar intervals[] = {700, 700 }; | 
|  | int intervalCount = (int) SK_ARRAY_COUNT(intervals); | 
|  | paint.setPathEffect(SkDashPathEffect::Make(intervals, intervalCount, -40)); | 
|  | canvas->drawPath(path1, paint); | 
|  |  | 
|  | paint.setStrokeWidth(0.26f); | 
|  | SkScalar smIntervals[] = {7, 7 }; | 
|  | int smIntervalCount = (int) SK_ARRAY_COUNT(smIntervals); | 
|  | paint.setPathEffect(SkDashPathEffect::Make(smIntervals, smIntervalCount, -0.40f)); | 
|  | canvas->save(); | 
|  | canvas->scale(100, 100); | 
|  | canvas->translate(4, 0); | 
|  | canvas->drawPath(path2, paint); | 
|  | canvas->restore(); | 
|  |  | 
|  | paint.setStrokeWidth(26); | 
|  | paint.setPathEffect(SkDashPathEffect::Make(intervals, intervalCount, 0)); | 
|  | canvas->save(); | 
|  | canvas->translate(0, 400); | 
|  | canvas->drawPath(path1, paint); | 
|  | canvas->restore(); | 
|  |  | 
|  | paint.setStrokeWidth(0.26f); | 
|  | paint.setPathEffect(SkDashPathEffect::Make(smIntervals, smIntervalCount, 0)); | 
|  | canvas->scale(100, 100); | 
|  | canvas->translate(4, 4); | 
|  | canvas->drawPath(path2, paint); | 
|  | } | 
|  |  | 
|  | DEF_SIMPLE_GM(bug591993, canvas, 40, 140) { | 
|  | SkPaint p; | 
|  | p.setColor(SK_ColorRED); | 
|  | p.setAntiAlias(true); | 
|  | p.setStyle(SkPaint::kStroke_Style); | 
|  | p.setStrokeCap(SkPaint::kRound_Cap); | 
|  | p.setStrokeWidth(10); | 
|  | const SkScalar intervals[] = { 100, 100 }; | 
|  | p.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 100)); | 
|  | canvas->drawLine(20, 20, 120, 20, p); | 
|  | } |