36 QCoreTextFontEngine(CTFontRef font,
const QFontDef &def);
37 QCoreTextFontEngine(CGFontRef font,
const QFontDef &def);
38 ~QCoreTextFontEngine();
40 int glyphCount()
const override;
41 glyph_t glyphIndex(uint ucs4)
const override;
42 QString glyphName(glyph_t index)
const override;
43 glyph_t findGlyph(QLatin1StringView name)
const override;
44 int stringToCMap(
const QChar *str,
int len, QGlyphLayout *glyphs,
int *nglyphs, ShaperFlags flags)
const override;
45 void recalcAdvances(QGlyphLayout *, ShaperFlags)
const override;
47 glyph_metrics_t boundingBox(glyph_t glyph) override;
49 QFixed capHeight()
const override;
50 QFixed xHeight()
const override;
51 qreal maxCharWidth()
const override;
52 QFixed averageCharWidth()
const override;
54 void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions,
int numGlyphs,
55 QPainterPath *path, QTextItem::RenderFlags) override;
57 bool canRender(
const QChar *string,
int len)
const override;
59 int synthesized()
const override {
return synthesisFlags; }
60 bool supportsHorizontalSubPixelPositions()
const override {
return true; }
61 bool supportsVerticalSubPixelPositions()
const override {
return false; }
63 QFixed lineThickness()
const override;
64 QFixed underlinePosition()
const override;
66 void draw(CGContextRef ctx, qreal x, qreal y,
const QTextItemInt &ti,
int paintDeviceHeight);
68 FaceId faceId()
const override;
69 bool getSfntTableData(uint , uchar * , uint * )
const override;
70 void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics) override;
71 QImage alphaMapForGlyph(glyph_t,
const QFixedPoint &subPixelPosition) override;
72 QImage alphaMapForGlyph(glyph_t glyph,
const QFixedPoint &subPixelPosition,
const QTransform &t) override;
73 QImage alphaRGBMapForGlyph(glyph_t,
const QFixedPoint &subPixelPosition,
const QTransform &t) override;
74 glyph_metrics_t alphaMapBoundingBox(glyph_t glyph,
const QFixedPoint &,
const QTransform &matrix, GlyphFormat) override;
75 QImage bitmapForGlyph(glyph_t,
const QFixedPoint &subPixelPosition,
const QTransform &t,
const QColor &color) override;
76 QFixed emSquareSize()
const override;
77 void doKerning(QGlyphLayout *g, ShaperFlags flags)
const override;
79 bool supportsTransformation(
const QTransform &transform)
const override;
80 bool expectsGammaCorrectedBlending()
const override;
82 QFontEngine *cloneWithSize(qreal pixelSize)
const override;
83 Qt::HANDLE handle()
const override;
84 int glyphMargin(QFontEngine::GlyphFormat format) override { Q_UNUSED(format);
return 0; }
86 QFontEngine::Properties properties()
const override;
88 QList<QFontVariableAxis> variableAxes()
const override;
90 enum FontSmoothing { Disabled, Subpixel, Grayscale };
91 Q_ENUM(FontSmoothing);
93 static FontSmoothing fontSmoothing();
94 static qreal fontSmoothingGamma();
96 static bool ct_getSfntTable(
void *user_data, uint tag, uchar *buffer, uint *length);
97 static QFont::Weight qtWeightFromCFWeight(
float value);
99 static QCoreTextFontEngine *create(
const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference,
const QMap<QFont::Tag,
float> &variableAxisValue);
102 QCoreTextFontEngine(
const QFontDef &def);
104 QImage imageForGlyph(glyph_t glyph,
const QFixedPoint &subPixelPosition,
const QTransform &m,
const QColor &color = QColor());
105 void loadAdvancesForGlyphs(QVarLengthArray<CGGlyph> &cgGlyphs, QGlyphLayout *glyphs)
const;
106 bool hasColorGlyphs()
const;
107 bool shouldAntialias()
const;
108 bool shouldSmoothFont()
const;
109 void initializeHeightMetrics()
const override;
111 QCFType<CTFontRef> ctfont;
112 QCFType<CGFontRef> cgFont;
114 CGAffineTransform transform;
116 QFixed underlineThickness;
118 QFontEngine::FaceId face_id;
119 mutable bool kerningPairsLoaded;
120 QList<QFontVariableAxis> variableAxisList;
CFArrayRef fallbacksForDescriptor(CTFontDescriptorRef descriptor)
CGAffineTransform qt_transform_from_fontdef(const QFontDef &fontDef)
static NSString *const kQtFontDataAttribute
static Q_DECL_UNUSED QDebug operator<<(QDebug debug, const FontDescription &fd)
CTFontDescriptorRef descriptorForFamily(const QString &familyName)
static void getFontDescription(CTFontDescriptorRef font, FontDescription *fd)
static CTFontUIFontType fontTypeFromTheme(QPlatformTheme::Font f)
static CTFontDescriptorRef fontDescriptorFromTheme(QPlatformTheme::Font f)
CTFontDescriptorRef descriptorForFamily(const char *familyName)
CTFontDescriptorRef descriptorForFontType(CTFontUIFontType uiType)
T * descriptorAttribute(CTFontDescriptorRef descriptor, CFStringRef name)
CTFontDescriptorRef descriptorForStyle(QFont::StyleHint styleHint)
Q_FORWARD_DECLARE_CF_TYPE(CTFont)
Q_FORWARD_DECLARE_CF_TYPE(CTFontDescriptor)