50 center0, (pts[1].fX - pts[0].fX) / 2,
51 colors,
pos, std::size(colors), tm,
64 canvas->
scale(1.5f, 1.5f);
67 const float blurRadii[] = { 1,5,10,20 };
68 const int cornerRadii[] = { 1,5,10,20 };
70 for (
size_t i = 0; i < std::size(blurRadii); ++i) {
73 for (
size_t j = 0; j < std::size(cornerRadii); ++j) {
74 for (
int k = 0; k <= 1; k++) {
112 for (
int i = 0; i < 4; ++i) {
118 canvas->drawRRect(rrect,
paint);
119 canvas->rotate(90.f, 150.f, 150.f);
@ kNormal_SkBlurStyle
fuzzy inside and outside
constexpr SkColor SK_ColorRED
constexpr SkColor SK_ColorBLACK
constexpr SkColor SK_ColorGREEN
#define SkScalarAve(a, b)
static SkScalar SkScalarInterp(SkScalar A, SkScalar B, SkScalar t)
static constexpr bool SkToBool(const T &x)
static sk_sp< SkShader > MakeRadial()
bool runAsBench() const override
SkString getName() const override
void onDraw(SkCanvas *canvas) override
SkISize getISize() override
static SkScalar SK_SPI ConvertRadiusToSigma(SkScalar radius)
void translate(SkScalar dx, SkScalar dy)
void drawRRect(const SkRRect &rrect, const SkPaint &paint)
void scale(SkScalar sx, SkScalar sy)
static sk_sp< SkShader > MakeTwoPointConical(const SkPoint &start, SkScalar startRadius, const SkPoint &end, SkScalar endRadius, const SkColor colors[], const SkScalar pos[], int count, SkTileMode mode, uint32_t flags=0, const SkMatrix *localMatrix=nullptr)
static sk_sp< SkMaskFilter > MakeBlur(SkBlurStyle style, SkScalar sigma, bool respectCTM=true)
SkMatrix & postTranslate(SkScalar dx, SkScalar dy)
SkMatrix & setScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)
static SkRRect MakeRectXY(const SkRect &rect, SkScalar xRad, SkScalar yRad)
void setRectXY(const SkRect &rect, SkScalar xRad, SkScalar yRad)
#define DEF_SIMPLE_GM(NAME, CANVAS, W, H)
void set(float x, float y)
constexpr float height() const
constexpr float width() const
static constexpr SkRect MakeWH(float w, float h)
static constexpr SkRect MakeLTRB(float l, float t, float r, float b)