Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Canvas_clipPath_3.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.
4// HASH=187a7ae77a8176e417181411988534b6
5REG_FIDDLE(Canvas_clipPath_3, 256, 212, false, 0) {
6void draw(SkCanvas* canvas) {
8 paint.setAntiAlias(true);
9 SkPath path;
10 SkPoint poly[] = {{20, 20}, { 80, 20}, { 80, 80}, {40, 80},
11 {40, 40}, {100, 40}, {100, 100}, {20, 100}};
12 path.addPoly(poly, std::size(poly), true);
13 path.setFillType(SkPathFillType::kWinding);
14 canvas->save();
15 canvas->clipPath(path, SkClipOp::kIntersect);
16 canvas->drawCircle(50, 50, 45, paint);
17 canvas->restore();
18 canvas->translate(100, 100);
19 path.setFillType(SkPathFillType::kEvenOdd);
20 canvas->clipPath(path, SkClipOp::kIntersect);
21 canvas->drawCircle(50, 50, 45, paint);
22}
23} // END FIDDLE
static void draw(SkCanvas *canvas, SkRect &target, int x, int y)
Definition aaclip.cpp:27
void restore()
Definition SkCanvas.cpp:465
void translate(SkScalar dx, SkScalar dy)
void clipPath(const SkPath &path, SkClipOp op, bool doAntiAlias)
int save()
Definition SkCanvas.cpp:451
void drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint &paint)
const Paint & paint
#define REG_FIDDLE(NAME, W, H, TEXT, I)
Definition examples.h:60