Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Clip.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=862cc026601a41a58df49c0b9f0d7777
5REG_FIDDLE(Clip, 256, 90, false, 0) {
6void draw(SkCanvas* canvas) {
7 SkPaint redPaint, scalePaint;
8 redPaint.setAntiAlias(true);
9 redPaint.setColor(SK_ColorRED);
10 canvas->save();
11 for (bool antialias : { false, true } ) {
12 canvas->save();
13 canvas->clipRect(SkRect::MakeWH(19.5f, 11.5f), antialias);
14 canvas->drawCircle(17, 11, 8, redPaint);
15 canvas->restore();
16 canvas->translate(16, 0);
17 }
18 canvas->restore();
19 SkMatrix matrix;
20 matrix.setScale(6, 6);
21 scalePaint.setImageFilter(
23 SkCanvas::SaveLayerRec saveLayerRec(
24 nullptr, &scalePaint, SkCanvas::kInitWithPrevious_SaveLayerFlag);
25 canvas->saveLayer(saveLayerRec);
26 canvas->restore();
27}
28} // END FIDDLE
constexpr SkColor SK_ColorRED
Definition SkColor.h:126
static void draw(SkCanvas *canvas, SkRect &target, int x, int y)
Definition aaclip.cpp:27
int saveLayer(const SkRect *bounds, const SkPaint *paint)
Definition SkCanvas.cpp:500
void clipRect(const SkRect &rect, SkClipOp op, bool doAntiAlias)
void restore()
Definition SkCanvas.cpp:465
void translate(SkScalar dx, SkScalar dy)
@ kInitWithPrevious_SaveLayerFlag
initializes with previous contents
Definition SkCanvas.h:672
int save()
Definition SkCanvas.cpp:451
void drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint &paint)
static sk_sp< SkImageFilter > MatrixTransform(const SkMatrix &matrix, const SkSamplingOptions &sampling, sk_sp< SkImageFilter > input)
void setColor(SkColor color)
Definition SkPaint.cpp:119
void setAntiAlias(bool aa)
Definition SkPaint.h:170
void setImageFilter(sk_sp< SkImageFilter > imageFilter)
#define REG_FIDDLE(NAME, W, H, TEXT, I)
Definition examples.h:60
static constexpr SkRect MakeWH(float w, float h)
Definition SkRect.h:609