28 paint.setAntiAlias(
true);
30 {10, 160}, {610, 160},
31 {610, 160}, {10, 160},
33 {610, 160}, {610, 160},
34 {610, 199}, {610, 199},
36 {10, 198}, {610, 198},
37 {610, 199}, {10, 199},
50 for (
size_t i = 0; i <
sizeof(verbs); ++i) {
53 path.moveTo(ptPtr->
fX, ptPtr->
fY);
57 path.lineTo(ptPtr->
fX, ptPtr->
fY);
96 paint.setAntiAlias(
true);
107 paint.setBlendMode(mode);
136 constexpr SkAlpha gAlphaValue[] = { 0xFF, 0x88, 0x88 };
140 for (
int alpha = 0; alpha < 4; ++alpha) {
143 for (
size_t i = 0; i < std::size(
gModes); ++i) {
146 canvas->translate(
W * 5, 0);
149 canvas->drawRect(bounds, bgPaint);
150 canvas->saveLayer(&bounds,
nullptr);
152 gAlphaValue[alpha & 1],
153 gAlphaValue[alpha & 2]);
156 canvas->translate(0, dy * 5 / 4);
160 canvas->translate(
W * 5 / 4, 0);
@ kSrcOver
r = s + (1-sa)*d
@ kXor
r = s*(1-da) + d*(1-sa)
@ kSrcATop
r = s*da + d*(1-sa)
@ kDstATop
r = d*sa + s*(1-da)
@ kDstOver
r = d + (1-da)*s
static SkPMColor SkPackARGB32(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
constexpr SkColor SK_ColorBLUE
constexpr SkColor SK_ColorRED
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
static sk_sp< SkShader > make_bg_shader()
static SkScalar drawCell(SkCanvas *canvas, SkBlendMode mode, SkAlpha a0, SkAlpha a1)
constexpr SkBlendMode gModes[]
static void test4(SkCanvas *canvas)
sk_sp< SkShader > makeShader(SkTileMode tmx, SkTileMode tmy, const SkSamplingOptions &, const SkMatrix *localMatrix=nullptr) const
void allocN32Pixels(int width, int height, bool isOpaque=false)
uint32_t * getAddr32(int x, int y) const
void drawRect(const SkRect &rect, const SkPaint &paint)
void drawOval(const SkRect &oval, const SkPaint &paint)
void clipRect(const SkRect &rect, SkClipOp op, bool doAntiAlias)
void drawPath(const SkPath &path, const SkPaint &paint)
static SkMatrix Scale(SkScalar sx, SkScalar sy)
void setShader(sk_sp< SkShader > shader)
#define DEF_SIMPLE_GM(NAME, CANVAS, W, H)
void inset(float dx, float dy)
static constexpr SkRect MakeXYWH(float x, float y, float w, float h)
static constexpr SkRect MakeWH(float w, float h)