33 for (
int i = 0; i < 4; ++i) {
36 for (
int i = 0; i < 4; ++i) {
40 dst->setRectRadii(r, radii);
53 for (
int i = 0; i < 4; ++i) {
56 dst->setRectRadii(r, radii);
69 for (
int i = 0; i < 4; ++i) {
72 for (
int i = 0; i < 4; ++i) {
80 dst->setRectRadii(r, radii);
84 return newSize * radius / oldSize;
97 for (
int i = 0; i < 4; ++i) {
100 for (
int i = 0; i < 4; ++i) {
101 radii[i].
fX =
prop(radii[i].fX, r.
width(), src.rect().width());
102 radii[i].
fY =
prop(radii[i].fY, r.
height(), src.rect().height());
104 dst->setRectRadii(r, radii);
109 paint.setAntiAlias(
true);
114 }
else if (rrect.
isOval()) {
127 proc(rrect,
d,
d, &rr);
147 SkRect r = { 0, 0, 120, 100 };
149 { 0, 0 }, { 30, 1 }, { 10, 40 }, { 40, 40 }
158 for (
size_t j = 0; j < std::size(insetProcs); ++j) {
160 for (
size_t i = 0; i < std::size(rrect); ++i) {
161 drawrr(canvas, rrect[i], insetProcs[j]);
170 using INHERITED =
GM;
constexpr SkColor SK_ColorBLUE
constexpr SkColor SK_ColorRED
constexpr SkColor SK_ColorBLACK
void onDraw(SkCanvas *canvas) override
SkString getName() const override
SkISize getISize() override
void translate(SkScalar dx, SkScalar dy)
void drawRRect(const SkRRect &rrect, const SkPaint &paint)
@ kStroke_Style
set to stroke geometry
void setOval(const SkRect &oval)
void setRectRadii(const SkRect &rect, const SkVector radii[4])
void setRectXY(const SkRect &rect, SkScalar xRad, SkScalar yRad)
void setRect(const SkRect &rect)
GM(SkColor backgroundColor=SK_ColorWHITE)
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d
static void inset1(const SkRRect &src, SkScalar dx, SkScalar dy, SkRRect *dst)
static void inset0(const SkRRect &src, SkScalar dx, SkScalar dy, SkRRect *dst)
static SkScalar prop(SkScalar radius, SkScalar newSize, SkScalar oldSize)
static void inset2(const SkRRect &src, SkScalar dx, SkScalar dy, SkRRect *dst)
static void drawrr(SkCanvas *canvas, const SkRRect &rrect, InsetProc proc)
void(* InsetProc)(const SkRRect &, SkScalar dx, SkScalar dy, SkRRect *)
static void draw_rrect_color(SkCanvas *canvas, const SkRRect &rrect)
static void inset3(const SkRRect &src, SkScalar dx, SkScalar dy, SkRRect *dst)
static constexpr SkISize Make(int32_t w, int32_t h)
void inset(float dx, float dy)
constexpr float height() const
constexpr float width() const