46 QSvgFont(qreal horizAdvX);
49 Type type()
const override {
return Font; }
50 void setUnitsPerEm(qreal upem);
52 void addGlyph(
const QString &unicode,
const QPainterPath &path, qreal horizAdvX = -1);
53 bool addMissingGlyph(
const QPainterPath &path, qreal horizAdvX);
55 void drawCommand(QPainter *, QSvgExtraStates &) override {};
56 void draw(QPainter *p,
const QPointF &point,
const QList<
const QSvgGlyph *> &glyphs,
57 qreal pixelSize, Qt::Alignment alignment)
const;
58 QRectF boundingRect(QPainter *p,
const QPointF &point,
const QList<
const QSvgGlyph *> &glyphs,
59 qreal pixelSize, Qt::Alignment alignment)
const;
60 const QSvgGlyph *findFirstGlyphFor(QStringView text)
const;
61 QList<
const QSvgGlyph *> toGlyphs(QStringView text)
const;
64 qreal m_unitsPerEm{1000};
69 std::unique_ptr<
const QSvgGlyph> m_missingGlyph;
74 QList<QSvgGlyph> m_glyphs;
77 mutable QHash<
char32_t, QList<qsizetype>> m_possibleGlyphIndicesForChar;
78 mutable qsizetype m_firstUnscannedGlyphIdx = 0;
80 void draw_helper(QPainter *p,
const QPointF &point,
81 const QList<
const QSvgGlyph *> &glyphs, qreal pixelSize,
82 Qt::Alignment alignment, QRectF *boundingRect =
nullptr)
const;