Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
docs
examples
Canvas_drawPath.cpp
Go to the documentation of this file.
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
5
REG_FIDDLE
(Canvas_drawPath, 256, 256,
false
, 0) {
6
void
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
SkPathFillType::kInverseWinding
@ kInverseWinding
SkPathFillType::kWinding
@ kWinding
SkPathFillType::kEvenOdd
@ kEvenOdd
draw
static void draw(SkCanvas *canvas, SkRect &target, int x, int y)
Definition
aaclip.cpp:27
SkCanvas
Definition
SkCanvas.h:106
SkCanvas::clipRect
void clipRect(const SkRect &rect, SkClipOp op, bool doAntiAlias)
Definition
SkCanvas.cpp:1685
SkCanvas::restore
void restore()
Definition
SkCanvas.cpp:465
SkCanvas::translate
void translate(SkScalar dx, SkScalar dy)
Definition
SkCanvas.cpp:1602
SkCanvas::save
int save()
Definition
SkCanvas.cpp:451
SkCanvas::drawPath
void drawPath(const SkPath &path, const SkPaint &paint)
Definition
SkCanvas.cpp:2071
SkPaint
Definition
SkPaint.h:44
SkPaint::kRound_Cap
@ kRound_Cap
adds circle
Definition
SkPaint.h:335
SkPaint::kButt_Cap
@ kButt_Cap
no stroke extension
Definition
SkPaint.h:334
SkPaint::kSquare_Cap
@ kSquare_Cap
adds square
Definition
SkPaint.h:336
SkPaint::kStroke_Style
@ kStroke_Style
set to stroke geometry
Definition
SkPaint.h:194
SkPaint::kFill_Style
@ kFill_Style
set to fill geometry
Definition
SkPaint.h:193
SkPaint::kRound_Join
@ kRound_Join
adds circle
Definition
SkPaint.h:360
SkPaint::kMiter_Join
@ kMiter_Join
extends to miter limit
Definition
SkPaint.h:359
SkPaint::kBevel_Join
@ kBevel_Join
connects outside edges
Definition
SkPaint.h:361
SkPath
Definition
SkPath.h:59
paint
const Paint & paint
Definition
color_source.cc:38
examples.h
REG_FIDDLE
#define REG_FIDDLE(NAME, W, H, TEXT, I)
Definition
examples.h:60
Generated on Fri Apr 26 2024 06:15:34 for Flutter Engine by
1.9.8