51 {
54 };
55
57
60
66 };
67
72 paint.setAntiAlias(
true);
73 paint.setStrokeWidth(10);
75
76 for (size_t i = 0; i < std::size(drawProc); ++i) {
79 for (size_t j = 0; j < std::size(filters); ++j) {
82 if (2 == j) {
84 } else if (3 == j) {
87 }
88 paint.setImageFilter(filters[j]);
89 drawProc[i](canvas, r,
paint);
90 canvas->restore();
91 canvas->translate(r.width() + margin, 0);
92 }
93 canvas->restore();
94 canvas->translate(0, r.height());
95 }
96 }
constexpr SkColor SK_ColorBLACK
constexpr SkColor SK_ColorGREEN
constexpr SkColor SK_ColorWHITE
#define SkScalarInvert(x)
void translate(SkScalar dx, SkScalar dy)
void clear(SkColor color)
void scale(SkScalar sx, SkScalar sy)
static sk_sp< SkImageFilter > DropShadow(SkScalar dx, SkScalar dy, SkScalar sigmaX, SkScalar sigmaY, SkColor color, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Blur(SkScalar sigmaX, SkScalar sigmaY, SkTileMode tileMode, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > MatrixTransform(const SkMatrix &matrix, const SkSamplingOptions &sampling, sk_sp< SkImageFilter > input)
static sk_sp< SkImageFilter > Offset(SkScalar dx, SkScalar dy, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
SkMatrix & setScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)
@ kStroke_Style
set to stroke geometry
static constexpr SkRect MakeWH(float w, float h)