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
QWindowsFontEngineDirectWrite Class Reference

Windows font engine using Direct Write. More...

#include <qwindowsfontenginedirectwrite_p.h>

Inheritance diagram for QWindowsFontEngineDirectWrite:
Collaboration diagram for QWindowsFontEngineDirectWrite:

Public Member Functions

 QWindowsFontEngineDirectWrite (IDWriteFontFace *directWriteFontFace, qreal pixelSize, const QSharedPointer< QWindowsFontEngineData > &d)
 ~QWindowsFontEngineDirectWrite () override
void initFontInfo (const QFontDef &request, int dpi)
QFixed lineThickness () const override
QFixed underlinePosition () const override
bool getSfntTableData (uint tag, uchar *buffer, uint *length) const override
 Returns true if the font table idetified by tag exists in the font; returns false otherwise.
QFixed emSquareSize () const override
glyph_t glyphIndex (uint ucs4) const override
int stringToCMap (const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const override
void recalcAdvances (QGlyphLayout *glyphs, ShaperFlags) const override
void addGlyphsToPath (glyph_t *glyphs, QFixedPoint *positions, int nglyphs, QPainterPath *path, QTextItem::RenderFlags flags) override
glyph_metrics_t boundingBox (const QGlyphLayout &glyphs) override
glyph_metrics_t boundingBox (glyph_t g) override
glyph_metrics_t alphaMapBoundingBox (glyph_t glyph, const QFixedPoint &, const QTransform &matrix, GlyphFormat) override
QFixed capHeight () const override
QFixed xHeight () const override
qreal maxCharWidth () const override
FaceId faceId () const override
bool supportsHorizontalSubPixelPositions () const override
HFONT createHFONT () const
QImage alphaMapForGlyph (glyph_t glyph, const QFixedPoint &subPixelPosition) override
QImage alphaMapForGlyph (glyph_t glyph, const QFixedPoint &subPixelPosition, const QTransform &t) override
QImage alphaRGBMapForGlyph (glyph_t t, const QFixedPoint &subPixelPosition, const QTransform &xform) override
QImage bitmapForGlyph (glyph_t, const QFixedPoint &subPixelPosition, const QTransform &t, const QColor &color) override
QFontEnginecloneWithSize (qreal pixelSize) const override
Qt::HANDLE handle () const override
const QSharedPointer< QWindowsFontEngineData > & fontEngineData () const
IDWriteFontFace * directWriteFontFace () const
void setUniqueFamilyName (const QString &newName)
void initializeHeightMetrics () const override
Properties properties () const override
QPainterPath unscaledGlyph (glyph_t glyph) const
void getUnscaledGlyph (glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics) override
QList< QFontVariableAxisvariableAxes () const override
Public Member Functions inherited from QFontEngine
virtual ~QFontEngine ()
Type type () const
QByteArray getSfntTable (uint tag) const
virtual int synthesized () const
bool supportsSubPixelPositions () const
virtual bool supportsVerticalSubPixelPositions () const
virtual QFixedPoint subPixelPositionFor (const QFixedPoint &position) const
QFixed subPixelPositionForX (QFixed x) const
bool preferTypoLineMetrics () const
bool isColorFont () const
virtual void doKerning (QGlyphLayout *, ShaperFlags) 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 (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 QFixed averageCharWidth () 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
virtual bool canRender (const QChar *str, int len) const
virtual bool supportsTransformation (const QTransform &transform) const
virtual int glyphCount () const
virtual int glyphMargin (GlyphFormat format)
virtual QString glyphName (glyph_t index) const
virtual glyph_t findGlyph (QLatin1StringView name) 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 bool expectsGammaCorrectedBlending () const
virtual void setDefaultHintStyle (HintStyle)
void loadKerningPairs (QFixed scalingFactor)

Static Public Member Functions

static QString fontNameSubstitute (const QString &familyName)
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 ()

Additional Inherited Members

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 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
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 inherited from QFontEngine
QFixed m_ascent
QFixed m_descent
QFixed m_leading
bool m_heightMetricsQueried

Detailed Description

Windows font engine using Direct Write.

Font engine for subpixel positioned text on Windows Vista (with platform update) and later. If selected during configuration, the engine will be selected only when the hinting preference of a font is set to None or Vertical hinting, or when fontengine=directwrite is selected as platform option.

Definition at line 48 of file qwindowsfontenginedirectwrite_p.h.

Constructor & Destructor Documentation

◆ QWindowsFontEngineDirectWrite()

QWindowsFontEngineDirectWrite::QWindowsFontEngineDirectWrite ( IDWriteFontFace * directWriteFontFace,
qreal pixelSize,
const QSharedPointer< QWindowsFontEngineData > & d )
explicit

Definition at line 215 of file qwindowsfontenginedirectwrite.cpp.

◆ ~QWindowsFontEngineDirectWrite()

QWindowsFontEngineDirectWrite::~QWindowsFontEngineDirectWrite ( )
override

Definition at line 245 of file qwindowsfontenginedirectwrite.cpp.

Member Function Documentation

◆ addGlyphsToPath()

void QWindowsFontEngineDirectWrite::addGlyphsToPath ( glyph_t * glyphs,
QFixedPoint * positions,
int nglyphs,
QPainterPath * path,
QTextItem::RenderFlags flags )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 662 of file qwindowsfontenginedirectwrite.cpp.

◆ alphaMapBoundingBox()

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

Reimplemented from QFontEngine.

Definition at line 1998 of file qwindowsfontenginedirectwrite.cpp.

◆ alphaMapForGlyph() [1/2]

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

Reimplemented from QFontEngine.

Definition at line 778 of file qwindowsfontenginedirectwrite.cpp.

◆ alphaMapForGlyph() [2/2]

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

Reimplemented from QFontEngine.

Definition at line 753 of file qwindowsfontenginedirectwrite.cpp.

◆ alphaRGBMapForGlyph()

QImage QWindowsFontEngineDirectWrite::alphaRGBMapForGlyph ( glyph_t t,
const QFixedPoint & subPixelPosition,
const QTransform & xform )
overridevirtual

Reimplemented from QFontEngine.

Definition at line 1792 of file qwindowsfontenginedirectwrite.cpp.

◆ bitmapForGlyph()

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

Reimplemented from QFontEngine.

Definition at line 2040 of file qwindowsfontenginedirectwrite.cpp.

◆ boundingBox() [1/2]

glyph_metrics_t QWindowsFontEngineDirectWrite::boundingBox ( const QGlyphLayout & glyphs)
overridevirtual

Reimplemented from QFontEngine.

Definition at line 693 of file qwindowsfontenginedirectwrite.cpp.

◆ boundingBox() [2/2]

glyph_metrics_t QWindowsFontEngineDirectWrite::boundingBox ( glyph_t g)
overridevirtual

Implements QFontEngine.

Definition at line 706 of file qwindowsfontenginedirectwrite.cpp.

◆ capHeight()

QFixed QWindowsFontEngineDirectWrite::capHeight ( ) const
overridevirtual

Implements QFontEngine.

Definition at line 735 of file qwindowsfontenginedirectwrite.cpp.

◆ cloneWithSize()

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

Reimplemented from QFontEngine.

Definition at line 1812 of file qwindowsfontenginedirectwrite.cpp.

◆ createHFONT()

HFONT QWindowsFontEngineDirectWrite::createHFONT ( ) const

Definition at line 337 of file qwindowsfontenginedirectwrite.cpp.

◆ directWriteFontFace()

IDWriteFontFace * QWindowsFontEngineDirectWrite::directWriteFontFace ( ) const
inline

Definition at line 105 of file qwindowsfontenginedirectwrite_p.h.

◆ emSquareSize()

QFixed QWindowsFontEngineDirectWrite::emSquareSize ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 506 of file qwindowsfontenginedirectwrite.cpp.

◆ faceId()

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

Reimplemented from QFontEngine.

Definition at line 563 of file qwindowsfontenginedirectwrite.cpp.

◆ fontEngineData()

const QSharedPointer< QWindowsFontEngineData > & QWindowsFontEngineDirectWrite::fontEngineData ( ) const
inline

Definition at line 101 of file qwindowsfontenginedirectwrite_p.h.

◆ fontNameSubstitute()

QString QWindowsFontEngineDirectWrite::fontNameSubstitute ( const QString & familyName)
static

Definition at line 1866 of file qwindowsfontenginedirectwrite.cpp.

◆ getSfntTableData()

bool QWindowsFontEngineDirectWrite::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 479 of file qwindowsfontenginedirectwrite.cpp.

◆ getUnscaledGlyph()

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

Reimplemented from QFontEngine.

Definition at line 631 of file qwindowsfontenginedirectwrite.cpp.

◆ glyphIndex()

glyph_t QWindowsFontEngineDirectWrite::glyphIndex ( uint ucs4) const
overridevirtual

Implements QFontEngine.

Definition at line 511 of file qwindowsfontenginedirectwrite.cpp.

◆ handle()

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

Reimplemented from QFontEngine.

Definition at line 1829 of file qwindowsfontenginedirectwrite.cpp.

◆ initFontInfo()

void QWindowsFontEngineDirectWrite::initFontInfo ( const QFontDef & request,
int dpi )

Definition at line 1834 of file qwindowsfontenginedirectwrite.cpp.

◆ initializeHeightMetrics()

void QWindowsFontEngineDirectWrite::initializeHeightMetrics ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 353 of file qwindowsfontenginedirectwrite.cpp.

◆ lineThickness()

QFixed QWindowsFontEngineDirectWrite::lineThickness ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 471 of file qwindowsfontenginedirectwrite.cpp.

◆ maxCharWidth()

qreal QWindowsFontEngineDirectWrite::maxCharWidth ( ) const
overridevirtual

Implements QFontEngine.

Definition at line 748 of file qwindowsfontenginedirectwrite.cpp.

◆ properties()

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

Reimplemented from QFontEngine.

Definition at line 790 of file qwindowsfontenginedirectwrite.cpp.

◆ recalcAdvances()

void QWindowsFontEngineDirectWrite::recalcAdvances ( QGlyphLayout * glyphs,
ShaperFlags  ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 568 of file qwindowsfontenginedirectwrite.cpp.

◆ setUniqueFamilyName()

void QWindowsFontEngineDirectWrite::setUniqueFamilyName ( const QString & newName)
inline

Definition at line 107 of file qwindowsfontenginedirectwrite_p.h.

◆ stringToCMap()

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

Implements QFontEngine.

Definition at line 524 of file qwindowsfontenginedirectwrite.cpp.

◆ supportsHorizontalSubPixelPositions()

bool QWindowsFontEngineDirectWrite::supportsHorizontalSubPixelPositions ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 784 of file qwindowsfontenginedirectwrite.cpp.

◆ underlinePosition()

QFixed QWindowsFontEngineDirectWrite::underlinePosition ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 463 of file qwindowsfontenginedirectwrite.cpp.

◆ unscaledGlyph()

QPainterPath QWindowsFontEngineDirectWrite::unscaledGlyph ( glyph_t glyph) const

Definition at line 607 of file qwindowsfontenginedirectwrite.cpp.

◆ variableAxes()

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

Reimplemented from QFontEngine.

Definition at line 2048 of file qwindowsfontenginedirectwrite.cpp.

◆ xHeight()

QFixed QWindowsFontEngineDirectWrite::xHeight ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 743 of file qwindowsfontenginedirectwrite.cpp.


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