43class Q_SVG_EXPORT
QSvgFont :
public QSvgRefCounted
46 QSvgFont(qreal horizAdvX);
49 void setFamilyName(
const QString &name);
50 QString familyName()
const;
52 void setUnitsPerEm(qreal upem);
54 void addGlyph(
const QString &unicode,
const QPainterPath &path, qreal horizAdvX = -1);
55 bool addMissingGlyph(
const QPainterPath &path, qreal horizAdvX);
57 void draw(QPainter *p,
const QPointF &point,
const QList<
const QSvgGlyph *> &glyphs,
58 qreal pixelSize, Qt::Alignment alignment)
const;
59 QRectF boundingRect(QPainter *p,
const QPointF &point,
const QList<
const QSvgGlyph *> &glyphs,
60 qreal pixelSize, Qt::Alignment alignment)
const;
61 const QSvgGlyph *findFirstGlyphFor(QStringView text)
const;
62 QList<
const QSvgGlyph *> toGlyphs(QStringView text)
const;
66 qreal m_unitsPerEm{1000};
69 std::unique_ptr<
const QSvgGlyph> m_missingGlyph;
74 QList<QSvgGlyph> m_glyphs;
78 mutable QHash<
char32_t, QList<qsizetype>> m_possibleGlyphIndicesForChar;
79 mutable qsizetype m_firstUnscannedGlyphIdx = 0;
81 void draw_helper(QPainter *p,
const QPointF &point,
82 const QList<
const QSvgGlyph *> &glyphs, qreal pixelSize,
83 Qt::Alignment alignment, QRectF *boundingRect =
nullptr)
const;