82 {
84
86
117 };
118
122 0x88888888,
123 0x88000088
124 };
125
126 const int numModes = std::size(
gModes);
127 SkASSERT(numModes == kNumXferModes);
128 const int numColors = std::size(
gColors);
133
135 paint.setAntiAlias(
true);
136
137 for (int i = 0; i < numColors; ++i) {
141 }
142
144
145 for (int i = 0; i < numModes; ++i) {
149 }
150
151 for (int i = 0; i < numModes; ++i) {
155
159
163 }
164 }
static const SkColor gColors[]
SK_API const char * SkBlendMode_Name(SkBlendMode blendMode)
@ kExclusion
rc = s + d - two(s*d), ra = kSrcOver
@ kSaturation
saturation of source with hue and luminosity of destination
@ kColorBurn
darken destination to reflect source
@ kLighten
rc = s + d - min(s*da, d*sa), ra = kSrcOver
@ kHue
hue of source with saturation and luminosity of destination
@ kMultiply
r = s*(1-da) + d*(1-sa) + s*d
@ kColorDodge
brighten destination to reflect source
@ kSrcOver
r = s + (1-sa)*d
@ kXor
r = s*(1-da) + d*(1-sa)
@ kLuminosity
luminosity of source with hue and saturation of destination
@ kSoftLight
lighten or darken, depending on source
@ kDifference
rc = s + d - 2*(min(s*da, d*sa)), ra = kSrcOver
@ kOverlay
multiply or screen, depending on destination
@ kSrcATop
r = s*da + d*(1-sa)
@ kDstATop
r = d*sa + s*(1-da)
@ kDstOver
r = d + (1-da)*s
@ kColor
hue and saturation of source with luminosity of destination
@ kHardLight
multiply or screen, depending on source
@ kDarken
rc = s + d - max(s*da, d*sa), ra = kSrcOver
constexpr SkColor SK_ColorRED
constexpr SkColor SK_ColorWHITE
constexpr SkBlendMode gModes[]
void translate(SkScalar dx, SkScalar dy)
void drawAtlas(const SkImage *atlas, const SkRSXform xform[], const SkRect tex[], const SkColor colors[], int count, SkBlendMode mode, const SkSamplingOptions &sampling, const SkRect *cullRect, const SkPaint *paint)
void drawString(const char str[], SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint)
static sk_sp< SkImage > make_atlas(SkCanvas *caller, int atlasSize)
sk_sp< const SkImage > atlas
PODArray< SkRSXform > xforms
font
Font Metadata and Metrics.
static constexpr SkRect MakeWH(float w, float h)