diff options
Diffstat (limited to 'src/gui/text')
-rw-r--r-- | src/gui/text/windows/qwindowsfontenginedirectwrite.cpp | 16 | ||||
-rw-r--r-- | src/gui/text/windows/qwindowsfontenginedirectwrite_p.h | 4 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp b/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp index 0dac9769ef..55aab15132 100644 --- a/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp +++ b/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp @@ -337,6 +337,22 @@ QString QWindowsFontEngineDirectWrite::filenameFromFontFile(IDWriteFontFile *fon return ret; } +HFONT QWindowsFontEngineDirectWrite::createHFONT() const +{ + if (m_fontEngineData == nullptr || m_directWriteFontFace == nullptr) + return NULL; + + LOGFONT lf; + HRESULT hr = m_fontEngineData->directWriteGdiInterop->ConvertFontFaceToLOGFONT(m_directWriteFontFace, + &lf); + if (SUCCEEDED(hr)) { + lf.lfHeight = -qRound(fontDef.pixelSize); + return CreateFontIndirect(&lf); + } else { + return NULL; + } +} + void QWindowsFontEngineDirectWrite::initializeHeightMetrics() const { DWRITE_FONT_METRICS metrics; diff --git a/src/gui/text/windows/qwindowsfontenginedirectwrite_p.h b/src/gui/text/windows/qwindowsfontenginedirectwrite_p.h index 4d19c3908a..06eb5ae475 100644 --- a/src/gui/text/windows/qwindowsfontenginedirectwrite_p.h +++ b/src/gui/text/windows/qwindowsfontenginedirectwrite_p.h @@ -71,7 +71,7 @@ QT_BEGIN_NAMESPACE class QWindowsFontEngineData; -class QWindowsFontEngineDirectWrite : public QFontEngine +class Q_GUI_EXPORT QWindowsFontEngineDirectWrite : public QFontEngine { Q_DISABLE_COPY_MOVE(QWindowsFontEngineDirectWrite) public: @@ -107,6 +107,8 @@ public: bool supportsHorizontalSubPixelPositions() const override; + HFONT createHFONT() const; + QImage alphaMapForGlyph(glyph_t glyph, const QFixedPoint &subPixelPosition) override; QImage alphaMapForGlyph(glyph_t glyph, const QFixedPoint &subPixelPosition, |