Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QCoreTextFontEngine Class Reference

#include <qfontengine_coretext_p.h>

Inheritance diagram for QCoreTextFontEngine:
Collaboration diagram for QCoreTextFontEngine:

Public Types

enum  FontSmoothing { Disabled , Subpixel , Grayscale }
Public Types inherited from QFontEngine
enum  Type {
  Box , Multi , Win , Mac ,
  Freetype , QPF1 , QPF2 , Proxy ,
  DirectWrite , TestFontEngine = 0x1000
}
enum  GlyphFormat {
  Format_None , Format_Render = Format_None , Format_Mono , Format_A8 ,
  Format_A32 , Format_ARGB
}
enum  ShaperFlag { DesignMetrics = 0x0002 , GlyphIndicesOnly = 0x0004 , FullStringFallback = 0x008 }
enum  SynthesizedFlags { SynthesizedItalic = 0x1 , SynthesizedBold = 0x2 , SynthesizedStretch = 0x4 }
enum  HintStyle {
  HintUnset = -1 , HintNone , HintLight , HintMedium ,
  HintFull
}
enum  SubpixelAntialiasingType {
  Subpixel_Unset = -1 , Subpixel_None , Subpixel_RGB , Subpixel_BGR ,
  Subpixel_VRGB , Subpixel_VBGR
}

Public Member Functions

 QCoreTextFontEngine (CTFontRef font, const QFontDef &def)
 QCoreTextFontEngine (CGFontRef font, const QFontDef &def)
 ~QCoreTextFontEngine ()
int glyphCount () const override
glyph_t glyphIndex (uint ucs4) const override
QString glyphName (glyph_t indexindex) const override
glyph_t findGlyph (QLatin1StringView namename) const override
int stringToCMap (const QChar *str, int lenlen, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flagsflags) const override
void recalcAdvances (QGlyphLayout *, ShaperFlags) const override
glyph_metrics_t boundingBox (glyph_t glyph) override
QFixed capHeight () const override
QFixed xHeight () const override
qreal maxCharWidth () const override
QFixed averageCharWidth () const override
void addGlyphsToPath (glyph_t *glyphs, QFixedPoint *positions, int numGlyphsnumGlyphs, QPainterPath *pathpath, QTextItem::RenderFlags) override
bool canRender (const QChar *stringstring, int lenlen) const override
int synthesized () const override
bool supportsHorizontalSubPixelPositions () const override
bool supportsVerticalSubPixelPositions () const override
QFixed lineThickness () const override
QFixed underlinePosition () const override
void draw (CGContextRef ctxctx, qreal xx, qreal yy, const QTextItemInt &ti, int paintDeviceHeight)
FaceId faceId () const override
bool getSfntTableData (uint, uchar *, uint *) const override
void getUnscaledGlyph (glyph_t glyph, QPainterPath *pathpath, glyph_metrics_t *metricsmetrics) override
QImage alphaMapForGlyph (glyph_t, const QFixedPoint &subPixelPosition) override
QImage alphaMapForGlyph (glyph_t glyph, const QFixedPoint &subPixelPosition, const QTransform &tt) override
QImage alphaRGBMapForGlyph (glyph_t, const QFixedPoint &subPixelPosition, const QTransform &tt) override
glyph_metrics_t alphaMapBoundingBox (glyph_t glyph, const QFixedPoint &, const QTransform &matrixmatrix, GlyphFormat) override
QImage bitmapForGlyph (glyph_t, const QFixedPoint &subPixelPosition, const QTransform &tt, const QColor &colorcolor) override
QFixed emSquareSize () const override
void doKerning (QGlyphLayout *gg, ShaperFlags flagsflags) const override
bool supportsTransformation (const QTransform &transformtransform) const override
bool expectsGammaCorrectedBlending (QFontEngine::GlyphFormat formatformat=QFontEngine::Format_None) const override
QFontEngine * cloneWithSize (qreal pixelSize) const override
Qt::HANDLE handle () const override
int glyphMargin (QFontEngine::GlyphFormat formatformat) override
QFontEngine::Properties properties () const override
QList< QFontVariableAxis > variableAxes () const override
 Q_ENUM (FontSmoothing)
Public Member Functions inherited from QFontEngine
virtual ~QFontEngine ()
Type type () const
QByteArray getSfntTable (uint tag) const
bool supportsSubPixelPositions () const
virtual QFixedPoint subPixelPositionFor (const QFixedPoint &position) const
QFixed subPixelPositionForX (QFixed xx) const
bool preferTypoLineMetrics () const
bool isColorFont () const
void getGlyphPositions (const QGlyphLayout &glyphs, const QTransform &matrixmatrix, QTextItem::RenderFlags flagsflags, QVarLengthArray< glyph_t > &glyphs_out, QVarLengthArray< QFixedPoint > &positions)
virtual void addOutlineToPath (qreal, qreal, const QGlyphLayout &, QPainterPath *, QTextItem::RenderFlags flagsflags)
void addBitmapFontToPath (qreal xx, qreal yy, const QGlyphLayout &, QPainterPath *, QTextItem::RenderFlags)
virtual QImage alphaMapForGlyph (glyph_t)
virtual QImage alphaMapForGlyph (glyph_t, const QTransform &tt)
QImage renderedPathForGlyph (glyph_t glyph, const QColor &colorcolor)
qreal effectivePixelSizeSquared (const QTransform &transformtransform) const
bool glyphTransformExceedsLimit (glyph_t glyph, const QTransform &transformtransform)
virtual Glyph * glyphData (glyph_t glyph, const QFixedPoint &subPixelPosition, GlyphFormat neededFormat, const QTransform &tt)
virtual bool hasInternalCaching () const
virtual void removeGlyphFromCache (glyph_t)
virtual glyph_metrics_t boundingBox (const QGlyphLayout &glyphs)
virtual glyph_metrics_t boundingBox (glyph_t glyph, const QTransform &matrixmatrix)
glyph_metrics_t tightBoundingBox (const QGlyphLayout &glyphs, QTextItem::RenderFlags flagsflags)
virtual QFixed ascent () const
virtual QFixed descent () const
virtual QFixed leading () const
virtual qreal minLeftBearing () const
virtual qreal minRightBearing () const
virtual void getGlyphBearings (glyph_t glyph, qreal *leftBearing=nullptr, qreal *rightBearing=nullptr)
bool canRender (uint ucs4) const
bool hasHinting () const
void * harfbuzzFont () const
void * harfbuzzFace () const
bool supportsScript (QChar::Script script) const
virtual int getPointInOutline (glyph_t glyph, int flagsflags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints)
void clearGlyphCache (const void *keykey)
void setGlyphCache (const void *keykey, QFontEngineGlyphCache *datadata)
QFontEngineGlyphCache * glyphCache (const void *keykey, GlyphFormat formatformat, const QTransform &transformtransform, const QColor &colorcolor=QColor()) const
virtual bool hasUnreliableGlyphOutline () const
virtual void setDefaultHintStyle (HintStyle)
void loadKerningPairs (QFixed scalingFactor)

Static Public Member Functions

static FontSmoothing fontSmoothing ()
static qreal fontSmoothingGamma ()
static bool ct_getSfntTable (void *user_data, uint tag, uchar *bufferbuffer, uint *lengthlength)
static QFont::Weight qtWeightFromCFWeight (float valuevalue)
static QCoreTextFontEngine * create (const QByteArray &fontDatafontData, qreal pixelSize, QFont::HintingPreference hintingPreference, const QMap< QFont::Tag, float > &variableAxisValue)
Static Public Member Functions inherited from QFontEngine
static bool isIgnorableChar (char32_t ucs4)
static int maxCachedGlyphSize ()
static constexpr int maxColrv1NestingDepth ()
static bool glyphBoundingBoxExceedsLimit (qreal glyphWidth, qreal glyphHeight, qreal effectivePixelSizeSquared)
static bool scriptRequiresOpenType (QChar::Script script)
static const uchar * getCMap (const uchar *tabletable, uint tableSize, bool *isSymbolFont, int *cmapSize)
static quint32 getTrueTypeGlyphIndex (const uchar *cmap, int cmapSize, uint unicode)
static QByteArray convertToPostscriptFontFamilyName (const QByteArray &fontFamily)
static bool disableEmojiSegmenter ()
static constexpr qsizetype maximumEngineCount ()

Protected Member Functions

 QCoreTextFontEngine (const QFontDef &def)
void init ()
QImage imageForGlyph (glyph_t glyph, const QFixedPoint &subPixelPosition, const QTransform &mm, const QColor &colorcolor=QColor())
void loadAdvancesForGlyphs (QVarLengthArray< CGGlyph > &cgGlyphs, QGlyphLayout *glyphs) const
bool hasColorGlyphs () const
bool shouldAntialias () const
bool shouldSmoothFont () const
void initializeHeightMetrics () const override
Protected Member Functions inherited from QFontEngine
 QFontEngine (Type typetype)
QFixed firstLeftBearing (const QGlyphLayout &glyphs)
QFixed lastRightBearing (const QGlyphLayout &glyphs)
QFixed calculatedCapHeight () const
bool processHheaTable () const
bool processOS2Table () const

Protected Attributes

QCFType< CTFontRef > ctfont
QCFType< CGFontRef > cgFont
int synthesisFlags
CGAffineTransform transform
QFixed avgCharWidth
QFixed underlineThickness
QFixed underlinePos
QFontEngine::FaceId face_id
bool kerningPairsLoaded
QList< QFontVariableAxis > variableAxisList
Protected Attributes inherited from QFontEngine
QFixed m_ascent
QFixed m_descent
QFixed m_leading
bool m_heightMetricsQueried

Additional Inherited Members

Public Attributes inherited from QFontEngine
QAtomicInt ref
QFontDef fontDef
Holder font_
Holder face_
struct QFontEngine::FaceData faceData
uint cache_cost
uint fsType: 16
bool symbol
bool isSmoothlyScalable
QList< KernPair > kerning_pairs
GlyphFormat glyphFormat
int m_subPixelPositionCount

Detailed Description

Definition at line 31 of file qfontengine_coretext_p.h.

Member Enumeration Documentation

◆ FontSmoothing

Enumerator
Disabled 
Subpixel 
Grayscale 

Definition at line 90 of file qfontengine_coretext_p.h.

Constructor & Destructor Documentation

◆ QCoreTextFontEngine() [1/3]

QCoreTextFontEngine::QCoreTextFontEngine ( CTFontRef font,
const QFontDef & def )

Definition at line 161 of file qfontengine_coretext.mm.

◆ QCoreTextFontEngine() [2/3]

QCoreTextFontEngine::QCoreTextFontEngine ( CGFontRef font,
const QFontDef & def )

Definition at line 169 of file qfontengine_coretext.mm.

◆ ~QCoreTextFontEngine()

QCoreTextFontEngine::~QCoreTextFontEngine ( )

Definition at line 184 of file qfontengine_coretext.mm.

◆ QCoreTextFontEngine() [3/3]

QCoreTextFontEngine::QCoreTextFontEngine ( const QFontDef & def)
protected

Definition at line 177 of file qfontengine_coretext.mm.

Member Function Documentation

◆ addGlyphsToPath()

void QCoreTextFontEngine::addGlyphsToPath ( glyph_t * glyphs,
QFixedPoint * positions,
int numGlyphs,
QPainterPath * path,
QTextItem::RenderFlags  )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 551 of file qfontengine_coretext.mm.

◆ alphaMapBoundingBox()

glyph_metrics_t QCoreTextFontEngine::alphaMapBoundingBox ( glyph_t glyph,
const QFixedPoint & subPixelPosition,
const QTransform & matrix,
GlyphFormat format )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 583 of file qfontengine_coretext.mm.

◆ alphaMapForGlyph() [1/2]

QImage QCoreTextFontEngine::alphaMapForGlyph ( glyph_t glyph,
const QFixedPoint & subPixelPosition,
const QTransform & t )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 898 of file qfontengine_coretext.mm.

◆ alphaMapForGlyph() [2/2]

QImage QCoreTextFontEngine::alphaMapForGlyph ( glyph_t glyph,
const QFixedPoint & subPixelPosition )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 893 of file qfontengine_coretext.mm.

◆ alphaRGBMapForGlyph()

QImage QCoreTextFontEngine::alphaRGBMapForGlyph ( glyph_t glyph,
const QFixedPoint & subPixelPosition,
const QTransform & t )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 920 of file qfontengine_coretext.mm.

◆ averageCharWidth()

QFixed QCoreTextFontEngine::averageCharWidth ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 428 of file qfontengine_coretext.mm.

◆ bitmapForGlyph()

QImage QCoreTextFontEngine::bitmapForGlyph ( glyph_t glyph,
const QFixedPoint & subPixelPosition,
const QTransform & t,
const QColor & color )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 928 of file qfontengine_coretext.mm.

◆ boundingBox()

glyph_metrics_t QCoreTextFontEngine::boundingBox ( glyph_t glyph)
overridevirtual

Implements QFontEngine.

Definition at line 382 of file qfontengine_coretext.mm.

◆ canRender()

bool QCoreTextFontEngine::canRender ( const QChar * string,
int len ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 967 of file qfontengine_coretext.mm.

◆ capHeight()

QFixed QCoreTextFontEngine::capHeight ( ) const
overridevirtual

Implements QFontEngine.

Definition at line 414 of file qfontengine_coretext.mm.

◆ cloneWithSize()

QFontEngine * QCoreTextFontEngine::cloneWithSize ( qreal pixelSize) const
overridevirtual

Reimplemented from QFontEngine.

Reimplemented in QCoreTextRawFontEngine, and QCoreTextRawFontEngine.

Definition at line 1005 of file qfontengine_coretext.mm.

◆ create()

QCoreTextFontEngine * QCoreTextFontEngine::create ( const QByteArray & fontData,
qreal pixelSize,
QFont::HintingPreference hintingPreference,
const QMap< QFont::Tag, float > & variableAxisValue )
static

Definition at line 131 of file qfontengine_coretext.mm.

◆ ct_getSfntTable()

bool QCoreTextFontEngine::ct_getSfntTable ( void * user_data,
uint tag,
uchar * buffer,
uint * length )
static

Definition at line 59 of file qfontengine_coretext.mm.

◆ doKerning()

void QCoreTextFontEngine::doKerning ( QGlyphLayout * g,
ShaperFlags flags ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1070 of file qfontengine_coretext.mm.

◆ draw()

void QCoreTextFontEngine::draw ( CGContextRef ctx,
qreal x,
qreal y,
const QTextItemInt & ti,
int paintDeviceHeight )

Definition at line 447 of file qfontengine_coretext.mm.

◆ emSquareSize()

QFixed QCoreTextFontEngine::emSquareSize ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1000 of file qfontengine_coretext.mm.

◆ expectsGammaCorrectedBlending()

bool QCoreTextFontEngine::expectsGammaCorrectedBlending ( QFontEngine::GlyphFormat format = QFontEngine::Format_None) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 760 of file qfontengine_coretext.mm.

◆ faceId()

QFontEngine::FaceId QCoreTextFontEngine::faceId ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 962 of file qfontengine_coretext.mm.

◆ findGlyph()

glyph_t QCoreTextFontEngine::findGlyph ( QLatin1StringView name) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 337 of file qfontengine_coretext.mm.

◆ fontSmoothing()

QCoreTextFontEngine::FontSmoothing QCoreTextFontEngine::fontSmoothing ( )
static

Definition at line 681 of file qfontengine_coretext.mm.

◆ fontSmoothingGamma()

qreal QCoreTextFontEngine::fontSmoothingGamma ( )
static

Definition at line 766 of file qfontengine_coretext.mm.

◆ getSfntTableData()

bool QCoreTextFontEngine::getSfntTableData ( uint tag,
uchar * buffer,
uint * length ) const
overridevirtual

Returns true if the font table idetified by tag exists in the font; returns false otherwise.

If buffer is \nullptr, stores the size of the buffer required for the font table data, in bytes, in length. If buffer is not \nullptr and the capacity of the buffer, passed in length, is sufficient to store the font table data, also copies the font table data to buffer.

Note: returning false when the font table exists could lead to an undefined behavior.

Reimplemented from QFontEngine.

Definition at line 973 of file qfontengine_coretext.mm.

◆ getUnscaledGlyph()

void QCoreTextFontEngine::getUnscaledGlyph ( glyph_t glyph,
QPainterPath * path,
glyph_metrics_t * metrics )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 978 of file qfontengine_coretext.mm.

◆ glyphCount()

int QCoreTextFontEngine::glyphCount ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 306 of file qfontengine_coretext.mm.

◆ glyphIndex()

glyph_t QCoreTextFontEngine::glyphIndex ( uint ucs4) const
overridevirtual

Implements QFontEngine.

Definition at line 311 of file qfontengine_coretext.mm.

◆ glyphMargin()

int QCoreTextFontEngine::glyphMargin ( QFontEngine::GlyphFormat format)
inlineoverridevirtual

Reimplemented from QFontEngine.

Definition at line 84 of file qfontengine_coretext_p.h.

◆ glyphName()

QString QCoreTextFontEngine::glyphName ( glyph_t index) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 329 of file qfontengine_coretext.mm.

◆ handle()

Qt::HANDLE QCoreTextFontEngine::handle ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1014 of file qfontengine_coretext.mm.

◆ hasColorGlyphs()

bool QCoreTextFontEngine::hasColorGlyphs ( ) const
protected

Definition at line 441 of file qfontengine_coretext.mm.

◆ imageForGlyph()

QImage QCoreTextFontEngine::imageForGlyph ( glyph_t glyph,
const QFixedPoint & subPixelPosition,
const QTransform & m,
const QColor & color = QColor() )
protected

Definition at line 771 of file qfontengine_coretext.mm.

◆ init()

void QCoreTextFontEngine::init ( )
protected

Definition at line 188 of file qfontengine_coretext.mm.

◆ initializeHeightMetrics()

void QCoreTextFontEngine::initializeHeightMetrics ( ) const
overrideprotectedvirtual

Reimplemented from QFontEngine.

Definition at line 402 of file qfontengine_coretext.mm.

◆ lineThickness()

QFixed QCoreTextFontEngine::lineThickness ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1030 of file qfontengine_coretext.mm.

◆ loadAdvancesForGlyphs()

void QCoreTextFontEngine::loadAdvancesForGlyphs ( QVarLengthArray< CGGlyph > & cgGlyphs,
QGlyphLayout * glyphs ) const
protected

Definition at line 951 of file qfontengine_coretext.mm.

◆ maxCharWidth()

qreal QCoreTextFontEngine::maxCharWidth ( ) const
overridevirtual

Implements QFontEngine.

Definition at line 433 of file qfontengine_coretext.mm.

◆ properties()

QFontEngine::Properties QCoreTextFontEngine::properties ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1040 of file qfontengine_coretext.mm.

◆ Q_ENUM()

QCoreTextFontEngine::Q_ENUM ( FontSmoothing )

◆ qtWeightFromCFWeight()

QFont::Weight QCoreTextFontEngine::qtWeightFromCFWeight ( float value)
static

Definition at line 74 of file qfontengine_coretext.mm.

◆ recalcAdvances()

void QCoreTextFontEngine::recalcAdvances ( QGlyphLayout * ,
ShaperFlags  ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 936 of file qfontengine_coretext.mm.

◆ shouldAntialias()

bool QCoreTextFontEngine::shouldAntialias ( ) const
protected

Definition at line 738 of file qfontengine_coretext.mm.

◆ shouldSmoothFont()

bool QCoreTextFontEngine::shouldSmoothFont ( ) const
protected

Definition at line 743 of file qfontengine_coretext.mm.

◆ stringToCMap()

int QCoreTextFontEngine::stringToCMap ( const QChar * str,
int len,
QGlyphLayout * glyphs,
int * nglyphs,
ShaperFlags flags ) const
overridevirtual

Implements QFontEngine.

Definition at line 347 of file qfontengine_coretext.mm.

◆ supportsHorizontalSubPixelPositions()

bool QCoreTextFontEngine::supportsHorizontalSubPixelPositions ( ) const
inlineoverridevirtual

Reimplemented from QFontEngine.

Definition at line 60 of file qfontengine_coretext_p.h.

◆ supportsTransformation()

bool QCoreTextFontEngine::supportsTransformation ( const QTransform & transform) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1019 of file qfontengine_coretext.mm.

◆ supportsVerticalSubPixelPositions()

bool QCoreTextFontEngine::supportsVerticalSubPixelPositions ( ) const
inlineoverridevirtual

Reimplemented from QFontEngine.

Definition at line 61 of file qfontengine_coretext_p.h.

◆ synthesized()

int QCoreTextFontEngine::synthesized ( ) const
inlineoverridevirtual

Reimplemented from QFontEngine.

Definition at line 59 of file qfontengine_coretext_p.h.

◆ underlinePosition()

QFixed QCoreTextFontEngine::underlinePosition ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1035 of file qfontengine_coretext.mm.

◆ variableAxes()

QList< QFontVariableAxis > QCoreTextFontEngine::variableAxes ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1083 of file qfontengine_coretext.mm.

◆ xHeight()

QFixed QCoreTextFontEngine::xHeight ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 423 of file qfontengine_coretext.mm.

Member Data Documentation

◆ avgCharWidth

QFixed QCoreTextFontEngine::avgCharWidth
protected

Definition at line 115 of file qfontengine_coretext_p.h.

◆ cgFont

QCFType<CGFontRef> QCoreTextFontEngine::cgFont
protected

Definition at line 112 of file qfontengine_coretext_p.h.

◆ ctfont

QCFType<CTFontRef> QCoreTextFontEngine::ctfont
protected

Definition at line 111 of file qfontengine_coretext_p.h.

◆ face_id

QFontEngine::FaceId QCoreTextFontEngine::face_id
protected

Definition at line 118 of file qfontengine_coretext_p.h.

◆ kerningPairsLoaded

bool QCoreTextFontEngine::kerningPairsLoaded
mutableprotected

Definition at line 119 of file qfontengine_coretext_p.h.

◆ synthesisFlags

int QCoreTextFontEngine::synthesisFlags
protected

Definition at line 113 of file qfontengine_coretext_p.h.

◆ transform

CGAffineTransform QCoreTextFontEngine::transform
protected

Definition at line 114 of file qfontengine_coretext_p.h.

◆ underlinePos

QFixed QCoreTextFontEngine::underlinePos
protected

Definition at line 117 of file qfontengine_coretext_p.h.

◆ underlineThickness

QFixed QCoreTextFontEngine::underlineThickness
protected

Definition at line 116 of file qfontengine_coretext_p.h.

◆ variableAxisList

QList<QFontVariableAxis> QCoreTextFontEngine::variableAxisList
protected

Definition at line 120 of file qfontengine_coretext_p.h.


The documentation for this class was generated from the following files: