📄 qfontengine_p.h
字号:
QFixed lineThickness() const; Type type() const; bool canRender(const QChar *string, int len); inline const char *name() const { return 0; } inline bool drawAsOutline() const { return outline_drawing; } FT_Face face; bool smooth; bool outline_drawing; QGlyph **rendered_glyphs; QOpenType *_openType; enum { cmapCacheSize = 0x200 }; mutable glyph_t cmapCache[cmapCacheSize]; FaceId face_id; friend class QFontDatabase; static FT_Library ft_library;};#endif // QT_NO_FREETYPE#ifndef QT_NO_QWS_QPFclass QFontEngineQPFData;class QFontEngineQPF : public QFontEngine{public: QFontEngineQPF(const QFontDef&, const QString &fn); ~QFontEngineQPF(); bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const; void draw(QPaintEngine *p, qreal x, qreal y, const QTextItemInt &si); void addOutlineToPath(qreal x, qreal y, const QGlyphLayout *glyphs, int numGlyphs, QPainterPath *path, QTextItem::RenderFlags flags); glyph_metrics_t boundingBox(const QGlyphLayout *glyphs, int numGlyphs); glyph_metrics_t boundingBox(glyph_t glyph); QFixed ascent() const; QFixed descent() const; QFixed leading() const; qreal maxCharWidth() const; qreal minLeftBearing() const; qreal minRightBearing() const; QFixed underlinePosition() const; QFixed lineThickness() const; Type type() const; bool canRender(const QChar *string, int len); inline const char *name() const { return 0; } QFontEngineQPFData *d;};#endif // QT_NO_QWS_QPF#endif // QWSclass QFontEngineBox : public QFontEngine{public: QFontEngineBox(int size); ~QFontEngineBox(); bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const;#if !defined(Q_WS_X11) && !defined(Q_WS_WIN) && !defined(Q_WS_MAC) void draw(QPaintEngine *p, qreal x, qreal y, const QTextItemInt &si);#endif void addOutlineToPath(qreal x, qreal y, const QGlyphLayout *glyphs, int numGlyphs, QPainterPath *path, QTextItem::RenderFlags flags); glyph_metrics_t boundingBox(const QGlyphLayout *glyphs, int numGlyphs); glyph_metrics_t boundingBox(glyph_t glyph); QFixed ascent() const; QFixed descent() const; QFixed leading() const; qreal maxCharWidth() const; qreal minLeftBearing() const { return 0; } qreal minRightBearing() const { return 0; }#ifdef Q_WS_X11 int cmap() const;#endif const char *name() const; bool canRender(const QChar *string, int len); Type type() const; inline int size() const { return _size; }private: friend class QFontPrivate; int _size;};class Q_GUI_EXPORT QFontEngineMulti : public QFontEngine{public: explicit QFontEngineMulti(int engineCount); ~QFontEngineMulti(); bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const; glyph_metrics_t boundingBox(const QGlyphLayout *glyphs, int numGlyphs); glyph_metrics_t boundingBox(glyph_t glyph); void recalcAdvances(int , QGlyphLayout *, QTextEngine::ShaperFlags) const; void doKerning(int , QGlyphLayout *, QTextEngine::ShaperFlags) const; void addOutlineToPath(qreal, qreal, const QGlyphLayout *, int, QPainterPath *, QTextItem::RenderFlags flags); QFixed ascent() const; QFixed descent() const; QFixed leading() const; QFixed xHeight() const; QFixed lineThickness() const; QFixed underlinePosition() const; qreal maxCharWidth() const; qreal minLeftBearing() const; qreal minRightBearing() const; inline Type type() const { return QFontEngine::Multi; } bool canRender(const QChar *string, int len); inline const char *name() const { return "Multi"; } QFontEngine *engine(int at) const;protected: friend class QPSPrintEnginePrivate; friend class QPSPrintEngineFontMulti; virtual void loadEngine(int at) = 0; QVector<QFontEngine *> engines;};#if defined(Q_WS_MAC)#include "private/qt_mac_p.h"#include "QtCore/qmap.h"#include "QtCore/qcache.h"#include "private/qcore_mac_p.h"struct QShaperItem;class QFontEngineMacMulti;class QFontEngineMac : public QFontEngine{ friend class QFontEngineMacMulti;public: QFontEngineMac(ATSUStyle baseStyle, FMFont font, const QFontDef &def, QFontEngineMacMulti *multiEngine = 0); virtual ~QFontEngineMac(); virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const; virtual glyph_metrics_t boundingBox(const QGlyphLayout *glyphs, int numGlyphs); virtual glyph_metrics_t boundingBox(glyph_t glyph); virtual QFixed ascent() const; virtual QFixed descent() const; virtual QFixed leading() const; virtual QFixed xHeight() const; virtual qreal maxCharWidth() const; virtual void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int numGlyphs, QPainterPath *path, QTextItem::RenderFlags); virtual const char *name() const { return "QFontEngineMac"; } virtual bool canRender(const QChar *string, int len); virtual int synthesized() const { return synthesisFlags; } virtual Type type() const { return QFontEngine::Mac; } void draw(CGContextRef ctx, qreal x, qreal y, const QTextItemInt &ti, int paintDeviceHeight); virtual FaceId faceId() const; virtual QByteArray getSfntTable(uint tag) const; virtual Properties properties() const; virtual void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics);private: FMFont fmFont; QCFType<CGFontRef> cgFont; ATSUStyle style; int synthesisFlags; mutable QGlyphLayout kashidaGlyph; QFontEngineMacMulti *multiEngine; mutable unsigned char *cmap; mutable bool symbolCMap;};class QFontEngineMacMulti : public QFontEngineMulti{ friend class QFontEngineMac;public: QFontEngineMacMulti(const ATSFontFamilyRef &family, const QFontDef &fontDef, bool kerning); virtual ~QFontEngineMacMulti(); virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const; bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags, QShaperItem *shaperItem) const; virtual void recalcAdvances(int , QGlyphLayout *, QTextEngine::ShaperFlags) const; virtual void doKerning(int , QGlyphLayout *, QTextEngine::ShaperFlags) const; virtual const char *name() const { return "ATSUI"; } bool canRender(const QChar *string, int len); inline ATSFontFamilyRef fontFamilyRef() const { return familyref; }protected: virtual void loadEngine(int at);private: inline const QFontEngineMac *engineAt(int i) const { return static_cast<const QFontEngineMac *>(engines.at(i)); } int fontIndexForFMFont(FMFont font) const; ATSFontFamilyRef familyref; uint kerning : 1; mutable ATSUTextLayout textLayout; mutable ATSUStyle style;};#endif#if defined(Q_WS_X11)# include "private/qfontengine_x11_p.h"#elif defined(Q_WS_WIN)# include "private/qfontengine_win_p.h"#endifclass QTestFontEngine : public QFontEngineBox{public: QTestFontEngine(int size) : QFontEngineBox(size) {} Type type() const { return TestFontEngine; }};#endif // QFONTENGINE_P_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -