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
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
bool expectsGammaCorrectedBlending (QFontEngine::GlyphFormat format) 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, QTextItem::RenderFlags flags)
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)
bool hasHinting () const
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 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 int maxCachedGlyphSize ()
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 262 of file qwindowsfontenginedirectwrite.cpp.

◆ ~QWindowsFontEngineDirectWrite()

QWindowsFontEngineDirectWrite::~QWindowsFontEngineDirectWrite ( )
override

Definition at line 292 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 709 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 2072 of file qwindowsfontenginedirectwrite.cpp.

◆ alphaMapForGlyph() [1/2]

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

Reimplemented from QFontEngine.

Definition at line 825 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 800 of file qwindowsfontenginedirectwrite.cpp.

◆ alphaRGBMapForGlyph()

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

Reimplemented from QFontEngine.

Definition at line 1856 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 2114 of file qwindowsfontenginedirectwrite.cpp.

◆ boundingBox() [1/2]

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

Reimplemented from QFontEngine.

Definition at line 740 of file qwindowsfontenginedirectwrite.cpp.

◆ boundingBox() [2/2]

glyph_metrics_t QWindowsFontEngineDirectWrite::boundingBox ( glyph_t g)
overridevirtual

Implements QFontEngine.

Definition at line 753 of file qwindowsfontenginedirectwrite.cpp.

◆ capHeight()

QFixed QWindowsFontEngineDirectWrite::capHeight ( ) const
overridevirtual

Implements QFontEngine.

Definition at line 782 of file qwindowsfontenginedirectwrite.cpp.

◆ cloneWithSize()

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

Reimplemented from QFontEngine.

Definition at line 1876 of file qwindowsfontenginedirectwrite.cpp.

◆ createHFONT()

HFONT QWindowsFontEngineDirectWrite::createHFONT ( ) const

Definition at line 384 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 553 of file qwindowsfontenginedirectwrite.cpp.

◆ expectsGammaCorrectedBlending()

bool QWindowsFontEngineDirectWrite::expectsGammaCorrectedBlending ( QFontEngine::GlyphFormat format) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 2127 of file qwindowsfontenginedirectwrite.cpp.

◆ faceId()

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

Reimplemented from QFontEngine.

Definition at line 610 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 1934 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 526 of file qwindowsfontenginedirectwrite.cpp.

◆ getUnscaledGlyph()

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

Reimplemented from QFontEngine.

Definition at line 678 of file qwindowsfontenginedirectwrite.cpp.

◆ glyphIndex()

glyph_t QWindowsFontEngineDirectWrite::glyphIndex ( uint ucs4) const
overridevirtual

Implements QFontEngine.

Definition at line 558 of file qwindowsfontenginedirectwrite.cpp.

◆ handle()

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

Reimplemented from QFontEngine.

Definition at line 1893 of file qwindowsfontenginedirectwrite.cpp.

◆ initFontInfo()

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

Definition at line 1898 of file qwindowsfontenginedirectwrite.cpp.

◆ initializeHeightMetrics()

void QWindowsFontEngineDirectWrite::initializeHeightMetrics ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 400 of file qwindowsfontenginedirectwrite.cpp.

◆ lineThickness()

QFixed QWindowsFontEngineDirectWrite::lineThickness ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 518 of file qwindowsfontenginedirectwrite.cpp.

◆ maxCharWidth()

qreal QWindowsFontEngineDirectWrite::maxCharWidth ( ) const
overridevirtual

Implements QFontEngine.

Definition at line 795 of file qwindowsfontenginedirectwrite.cpp.

◆ properties()

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

Reimplemented from QFontEngine.

Definition at line 837 of file qwindowsfontenginedirectwrite.cpp.

◆ recalcAdvances()

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

Reimplemented from QFontEngine.

Definition at line 615 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 571 of file qwindowsfontenginedirectwrite.cpp.

◆ supportsHorizontalSubPixelPositions()

bool QWindowsFontEngineDirectWrite::supportsHorizontalSubPixelPositions ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 831 of file qwindowsfontenginedirectwrite.cpp.

◆ underlinePosition()

QFixed QWindowsFontEngineDirectWrite::underlinePosition ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 510 of file qwindowsfontenginedirectwrite.cpp.

◆ unscaledGlyph()

QPainterPath QWindowsFontEngineDirectWrite::unscaledGlyph ( glyph_t glyph) const

Definition at line 654 of file qwindowsfontenginedirectwrite.cpp.

◆ variableAxes()

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

Reimplemented from QFontEngine.

Definition at line 2122 of file qwindowsfontenginedirectwrite.cpp.

◆ xHeight()

QFixed QWindowsFontEngineDirectWrite::xHeight ( ) const
overridevirtual

Reimplemented from QFontEngine.

Definition at line 790 of file qwindowsfontenginedirectwrite.cpp.


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