36class QWindowsFontEngineData
38 Q_DISABLE_COPY_MOVE(QWindowsFontEngineData)
40 QWindowsFontEngineData();
41 ~QWindowsFontEngineData();
45 bool clearTypeEnabled =
false;
46 qreal fontSmoothingGamma;
48#if QT_CONFIG(directwrite)
49 IDWriteFactory *directWriteFactory =
nullptr;
50 IDWriteGdiInterop *directWriteGdiInterop =
nullptr;
57 QWindowsFontDatabaseBase();
58 ~QWindowsFontDatabaseBase() override;
60 QFontEngine *fontEngine(
const QFontDef &fontDef,
void *handle) override;
61 QFontEngine *fontEngine(
const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) override;
63 void invalidate() override;
65 static int defaultVerticalDPI();
67 static QSharedPointer<QWindowsFontEngineData> data();
68#if QT_CONFIG(directwrite)
69 static void createDirectWriteFactory(IDWriteFactory **factory);
71 static QFont systemDefaultFont();
72 static HFONT systemFont();
73 static LOGFONT fontDefToLOGFONT(
const QFontDef &fontDef,
const QString &faceName);
74 static QFont LOGFONT_to_QFont(
const LOGFONT& lf,
int verticalDPI = 0);
76 static QString familyForStyleHint(QFont::StyleHint styleHint);
77 static QStringList extraTryFontsForFamily(
const QString &family);
78 static QStringList familiesForScript(QFontDatabasePrivate::ExtendedScript script);
84 EmbeddedFont(
const QByteArray &fontData) : m_fontData(fontData) {}
86 QString changeFamilyName(
const QString &newFamilyName);
87 QByteArray data()
const {
return m_fontData; }
88 void updateFromOS2Table(QFontEngine *fontEngine);
89 FontTable *tableDirectoryEntry(
const QByteArray &tagName);
90 QString familyName(FontTable *nameTableDirectory =
nullptr);
93 QByteArray m_fontData;
96 QFontDef sanitizeRequest(QFontDef request)
const;
100#if QT_CONFIG(directwrite)
101 QList<IDWriteFontFace *> createDirectWriteFaces(
const QByteArray &fontData,
102 const QString &filename,
103 bool queryVariations =
true)
const;
104 IDWriteFontFace *createDirectWriteFace(
const QByteArray &fontData);
108 static bool init(QSharedPointer<QWindowsFontEngineData> data);
110#if QT_CONFIG(directwrite)
111 mutable std::unique_ptr<QCustomFontFileLoader> m_fontFileLoader;