118 {
121
124
128 {kM * kTileW + 10.f, -5.f},
129 {kM * kTileW - 28.f, kN * kTileH + 40.f},
130 {45.f, kN * kTileH - 25.f}};
133
138
139 dst[1] = {-.25 * kM * kTileW, 0};
140 dst[0] = {5.f / 4.f * kM * kTileW, 0};
141 dst[3] = {2.f / 3.f * kM * kTileW, 1 / 2.f * kN * kTileH};
142 dst[2] = {1.f / 3.f * kM * kTileW, 1 / 2.f * kN * kTileH - 0.1f * kTileH};
149
150 for (
size_t m = 0;
m < std::size(matrices); ++
m) {
151
152 static constexpr SkScalar kLineOutset = 10.f;
154 paint.setAntiAlias(
true);
157 paint.setStrokeWidth(0.f);
158 for (
int x = 1;
x < kM; ++
x) {
159 SkPoint pts[] = {{
x * kTileW, 0}, {
x * kTileW, kN * kTileH}};
164 }
165 for (
int y = 1;
y < kN; ++
y) {
166 SkPoint pts[] = {{0,
y * kTileH}, {kTileW * kM,
y * kTileH}};
171 }
173 canvas->
concat(matrices[m]);
175 &setPaint,
178 }
179
180
189
200 }
201 }
#define SkAssertResult(cond)
@ kExclusion
rc = s + d - two(s*d), ra = kSrcOver
@ kSrcOver
r = s + (1-sa)*d
constexpr SkColor SK_ColorRED
void translate(SkScalar dx, SkScalar dy)
void drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint &paint)
@ kFast_SrcRectConstraint
sample outside bounds; faster
void experimental_DrawEdgeAAImageSet(const ImageSetEntry imageSet[], int cnt, const SkPoint dstClips[], const SkMatrix preViewMatrices[], const SkSamplingOptions &, const SkPaint *paint=nullptr, SrcRectConstraint constraint=kStrict_SrcRectConstraint)
void rotate(SkScalar degrees)
void concat(const SkMatrix &matrix)
static sk_sp< SkColorFilter > LinearToSRGBGamma()
SkMatrix & postTranslate(SkScalar dx, SkScalar dy)
SkMatrix & postScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py)
void mapPoints(SkPoint dst[], const SkPoint src[], int count) const
SkMatrix & postSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py)
SkMatrix & setRotate(SkScalar degrees, SkScalar px, SkScalar py)
@ kStroke_Style
set to stroke geometry
void setBlendMode(SkBlendMode mode)
void setColorFilter(sk_sp< SkColorFilter > colorFilter)
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d
SkSamplingOptions sampling
sk_sp< const SkImage > fImage
bool setLength(float length)
void toQuad(SkPoint quad[4]) const
constexpr SkRect makeOffset(float dx, float dy) const
SkRect makeInset(float dx, float dy) const
constexpr float width() const
static constexpr SkRect MakeWH(float w, float h)