1// Copyright 2019 Google LLC. 2// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. 3#include "tools/fiddle/examples.h" 4// HASH=fe2294131f422b8d6752f6a880f98ad9 5REG_FIDDLE(Canvas_drawPath, 256, 256, false, 0) { 6void draw(SkCanvas* canvas) { 7 SkPath path; 8 path.moveTo(20, 20); 9 path.quadTo(60, 20, 60, 60); 10 path.close(); 11 path.moveTo(60, 20); 12 path.quadTo(60, 60, 20, 60); 13 SkPaint paint; 14 paint.setStrokeWidth(10); 15 paint.setAntiAlias(true); 16 paint.setStyle(SkPaint::kStroke_Style); 17 for (auto join: { SkPaint::kBevel_Join, SkPaint::kRound_Join, SkPaint::kMiter_Join } ) { 18 paint.setStrokeJoin(join); 19 for (auto cap: { SkPaint::kButt_Cap, SkPaint::kSquare_Cap, SkPaint::kRound_Cap } ) { 20 paint.setStrokeCap(cap); 21 canvas->drawPath(path, paint); 22 canvas->translate(80, 0); 23 } 24 canvas->translate(-240, 60); 25 } 26 paint.setStyle(SkPaint::kFill_Style); 27 for (auto fill : { SkPathFillType::kWinding, 28 SkPathFillType::kEvenOdd, 29 SkPathFillType::kInverseWinding } ) { 30 path.setFillType(fill); 31 canvas->save(); 32 canvas->clipRect({0, 10, 80, 70}); 33 canvas->drawPath(path, paint); 34 canvas->restore(); 35 canvas->translate(80, 0); 36 } 37} 38} // END FIDDLE 39