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 { HintNone , HintLight , HintMedium , HintFull }
enum  SubpixelAntialiasingType {
  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 index) const override
glyph_t findGlyph (QLatin1StringView name) const override
int stringToCMap (const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) 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 numGlyphs, QPainterPath *path, QTextItem::RenderFlags) override
bool canRender (const QChar *string, int len) 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 ctx, qreal x, qreal y, const QTextItemInt &ti, int paintDeviceHeight)
FaceId faceId () const override
bool getSfntTableData (uint, uchar *, uint *) const override
 Returns true if the font table idetified by tag exists in the font; returns false otherwise.
void getUnscaledGlyph (glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics) override
QImage alphaMapForGlyph (glyph_t, const QFixedPoint &subPixelPosition) override
QImage alphaMapForGlyph (glyph_t glyph, const QFixedPoint &subPixelPosition, const QTransform &t) override
QImage alphaRGBMapForGlyph (glyph_t, const QFixedPoint &subPixelPosition, const QTransform &t) override
glyph_metrics_t alphaMapBoundingBox (glyph_t glyph, const QFixedPoint &, const QTransform &matrix, GlyphFormat) override
QImage bitmapForGlyph (glyph_t, const QFixedPoint &subPixelPosition, const QTransform &t, const QColor &color) override
QFixed emSquareSize () const override
void doKerning (QGlyphLayout *g, ShaperFlags flags) const override
bool supportsTransformation (const QTransform &transform) const override
bool expectsGammaCorrectedBlending () const override
QFontEnginecloneWithSize (qreal pixelSize) const override
Qt::HANDLE handle () const override
int glyphMargin (QFontEngine::GlyphFormat format) override
QFontEngine::Properties properties () const override
QList< QFontVariableAxisvariableAxes () 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 x) const
bool preferTypoLineMetrics () const
bool isColorFont () const
void getGlyphPositions (const QGlyphLayout &glyphs, const QTransform &matrix, QTextItem::RenderFlags flags, QVarLengthArray< glyph_t > &glyphs_out, QVarLengthArray< QFixedPoint > &positions)
virtual void addOutlineToPath (qreal, qreal, const QGlyphLayout &, QPainterPath *, QTextItem::RenderFlags flags)
void addBitmapFontToPath (qreal x, qreal y, const QGlyphLayout &, QPainterPath *, QTextItem::RenderFlags)
virtual QImage alphaMapForGlyph (glyph_t)
virtual QImage alphaMapForGlyph (glyph_t, const QTransform &t)
QImage renderedPathForGlyph (glyph_t glyph, const QColor &color)
virtual GlyphglyphData (glyph_t glyph, const QFixedPoint &subPixelPosition, GlyphFormat neededFormat, const QTransform &t)
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 &matrix)
glyph_metrics_t tightBoundingBox (const QGlyphLayout &glyphs)
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
voidharfbuzzFont () const
voidharfbuzzFace () const
bool supportsScript (QChar::Script script) const
virtual int getPointInOutline (glyph_t glyph, int flags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints)
void clearGlyphCache (const void *key)
void setGlyphCache (const void *key, QFontEngineGlyphCache *data)
QFontEngineGlyphCacheglyphCache (const void *key, GlyphFormat format, const QTransform &transform, const QColor &color=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 *buffer, uint *length)
static QFont::Weight qtWeightFromCFWeight (float value)
static QCoreTextFontEnginecreate (const QByteArray &fontData, 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 bool scriptRequiresOpenType (QChar::Script script)
static const uchargetCMap (const uchar *table, 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 ()

Protected Member Functions

 QCoreTextFontEngine (const QFontDef &def)
void init ()
QImage imageForGlyph (glyph_t glyph, const QFixedPoint &subPixelPosition, const QTransform &m, const QColor &color=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 type)
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< QFontVariableAxisvariableAxisList
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< KernPairkerning_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 164 of file qfontengine_coretext.mm.

◆ QCoreTextFontEngine() [2/3]

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

Definition at line 172 of file qfontengine_coretext.mm.

◆ ~QCoreTextFontEngine()

QCoreTextFontEngine::~QCoreTextFontEngine ( )

Definition at line 187 of file qfontengine_coretext.mm.

◆ QCoreTextFontEngine() [3/3]

QCoreTextFontEngine::QCoreTextFontEngine ( const QFontDef & def)
protected

Definition at line 180 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 552 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 584 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 892 of file qfontengine_coretext.mm.

◆ alphaMapForGlyph() [2/2]

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

Reimplemented from QFontEngine.

Definition at line 887 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 914 of file qfontengine_coretext.mm.

◆ averageCharWidth()

QFixed QCoreTextFontEngine::averageCharWidth ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 429 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 922 of file qfontengine_coretext.mm.

◆ boundingBox()

glyph_metrics_t QCoreTextFontEngine::boundingBox ( glyph_t glyph)
overridevirtual

Implements QFontEngine.

Definition at line 383 of file qfontengine_coretext.mm.

◆ canRender()

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

Reimplemented from QFontEngine.

Definition at line 961 of file qfontengine_coretext.mm.

◆ capHeight()

QFixed QCoreTextFontEngine::capHeight ( ) const
overridevirtual

Implements QFontEngine.

Definition at line 415 of file qfontengine_coretext.mm.

◆ cloneWithSize()

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

Reimplemented from QFontEngine.

Reimplemented in QCoreTextRawFontEngine, and QCoreTextRawFontEngine.

Definition at line 999 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 134 of file qfontengine_coretext.mm.

◆ ct_getSfntTable()

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

Definition at line 61 of file qfontengine_coretext.mm.

◆ doKerning()

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

Reimplemented from QFontEngine.

Definition at line 1064 of file qfontengine_coretext.mm.

◆ draw()

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

Definition at line 448 of file qfontengine_coretext.mm.

◆ emSquareSize()

QFixed QCoreTextFontEngine::emSquareSize ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 994 of file qfontengine_coretext.mm.

◆ expectsGammaCorrectedBlending()

bool QCoreTextFontEngine::expectsGammaCorrectedBlending ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 761 of file qfontengine_coretext.mm.

◆ faceId()

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

Reimplemented from QFontEngine.

Definition at line 956 of file qfontengine_coretext.mm.

◆ findGlyph()

glyph_t QCoreTextFontEngine::findGlyph ( QLatin1StringView name) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 338 of file qfontengine_coretext.mm.

◆ fontSmoothing()

QCoreTextFontEngine::FontSmoothing QCoreTextFontEngine::fontSmoothing ( )
static

Definition at line 682 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 967 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 972 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 330 of file qfontengine_coretext.mm.

◆ handle()

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

Reimplemented from QFontEngine.

Definition at line 1008 of file qfontengine_coretext.mm.

◆ hasColorGlyphs()

bool QCoreTextFontEngine::hasColorGlyphs ( ) const
protected

Definition at line 442 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 191 of file qfontengine_coretext.mm.

◆ initializeHeightMetrics()

void QCoreTextFontEngine::initializeHeightMetrics ( ) const
overrideprotectedvirtual

Reimplemented from QFontEngine.

Definition at line 403 of file qfontengine_coretext.mm.

◆ lineThickness()

QFixed QCoreTextFontEngine::lineThickness ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1024 of file qfontengine_coretext.mm.

◆ loadAdvancesForGlyphs()

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

Definition at line 945 of file qfontengine_coretext.mm.

◆ maxCharWidth()

qreal QCoreTextFontEngine::maxCharWidth ( ) const
overridevirtual

Implements QFontEngine.

Definition at line 434 of file qfontengine_coretext.mm.

◆ properties()

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

Reimplemented from QFontEngine.

Definition at line 1034 of file qfontengine_coretext.mm.

◆ Q_ENUM()

QCoreTextFontEngine::Q_ENUM ( FontSmoothing )

◆ qtWeightFromCFWeight()

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

Definition at line 77 of file qfontengine_coretext.mm.

◆ recalcAdvances()

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

Reimplemented from QFontEngine.

Definition at line 930 of file qfontengine_coretext.mm.

◆ shouldAntialias()

bool QCoreTextFontEngine::shouldAntialias ( ) const
protected

Definition at line 739 of file qfontengine_coretext.mm.

◆ shouldSmoothFont()

bool QCoreTextFontEngine::shouldSmoothFont ( ) const
protected

Definition at line 744 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 348 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 1013 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 1029 of file qfontengine_coretext.mm.

◆ variableAxes()

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

Reimplemented from QFontEngine.

Definition at line 1077 of file qfontengine_coretext.mm.

◆ xHeight()

QFixed QCoreTextFontEngine::xHeight ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 424 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: