123 {
126
128
129 if (!fTypeface) {
130 *errorMsg = "Did not recognize COLR v1 font format.";
132 }
133
134 canvas->
rotate(fRotateDeg);
135 canvas->
skew(fSkewX, 0);
136
138
141 std::vector<SkColor> paint_colors = {
143 auto paint_color_iterator = paint_colors.begin();
144 for (
SkScalar textSize : kTextSizes) {
145 font.setSize(textSize);
146 font.getMetrics(&metrics);
149 paint.setColor(*paint_color_iterator);
151
152 for (
size_t i = 0; i < fCodepoints.
size(); ++i) {
158 }
160 sizeof(uint32_t),
166 x += glyphAdvance + glyphAdvance * 0.05f;
167 }
168 paint_color_iterator++;
169 }
171 }
constexpr SkColor SK_ColorBLUE
constexpr SkColor SK_ColorRED
constexpr SkColor SK_ColorBLACK
constexpr SkColor SK_ColorGREEN
constexpr SkColor SK_ColorWHITE
@ kUTF32
uses four byte words to represent all of Unicode
void drawSimpleText(const void *text, size_t byteLength, SkTextEncoding encoding, SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint)
void translate(SkScalar dx, SkScalar dy)
void drawColor(SkColor color, SkBlendMode mode=SkBlendMode::kSrcOver)
void rotate(SkScalar degrees)
void skew(SkScalar sx, SkScalar sy)
sk_sp< SkTypeface > makeVariedTypeface()
SkISize getISize() override
font
Font Metadata and Metrics.
SkScalar fLeading
distance to add between lines, typically positive or zero
SkScalar fAscent
distance to reserve above baseline, typically negative
SkScalar fDescent
distance to reserve below baseline, typically positive
constexpr int32_t width() const