242 const size_t width = 2;
244 for (
size_t i = 0; i <
length; i++) {
249 canvas->translate(150.0f *
x, 150.0f *
y);
250 canvas->scale(0.2f, 0.2f);
251 canvas->translate(300.0f, 400.0f);
constexpr SkColor SK_ColorMAGENTA
constexpr SkColor SK_ColorBLUE
constexpr SkColor SK_ColorGREEN
Type::kYUV Type::kRGBA() int(0.7 *637)
void translate(SkScalar dx, SkScalar dy)
void drawPath(const SkPath &path, const SkPaint &paint)
void setColor(SkColor color)
@ kStroke_Style
set to stroke geometry
SkPathBuilder & arcTo(const SkRect &oval, SkScalar startAngleDeg, SkScalar sweepAngleDeg, bool forceMoveTo)
SkPathBuilder & lineTo(SkPoint pt)
SkPathBuilder & moveTo(SkPoint pt)
SkPathBuilder & quadTo(SkPoint pt1, SkPoint pt2)
bool getPosTan(SkScalar distance, SkPoint *position, SkVector *tangent)
SkPath & moveTo(SkScalar x, SkScalar y)
SkPath & lineTo(SkScalar x, SkScalar y)
static void RotateCCW(const SkPoint &src, SkPoint *dst)
#define DEF_SIMPLE_GM(NAME, CANVAS, W, H)
SK_API bool FillPathWithPaint(const SkPath &src, const SkPaint &paint, SkPath *dst, const SkRect *cullRect, SkScalar resScale=1)
void draw_ribs(SkCanvas *canvas, SkPath path)
SkPaint make_normal_paint()
void draw_large_quad(SkCanvas *canvas)
const SkScalar OVERSTROKE_WIDTH
void(* examples[])(SkCanvas *canvas)
SkPath ribs_path(SkPath path, SkScalar radius)
void draw_stroked_quad(SkCanvas *canvas)
void draw_quad_fillpath(SkCanvas *canvas)
void draw_oval_fillpath(SkCanvas *canvas)
void draw_stroked_oval(SkCanvas *canvas)
const SkScalar NORMALSTROKE_WIDTH
SkPaint make_overstroke_paint()
void draw_small_quad(SkCanvas *canvas)
void draw_large_cubic(SkCanvas *canvas)
void draw_small_oval(SkCanvas *canvas)
void draw_stroked_cubic(SkCanvas *canvas)
void draw_large_oval(SkCanvas *canvas)
void draw_small_cubic(SkCanvas *canvas)
void draw_cubic_fillpath(SkCanvas *canvas)
void scale(float scale, SkPoint *dst) const
constexpr float y() const
constexpr float x() const
static constexpr SkRect MakeXYWH(float x, float y, float w, float h)