33 Q_DISABLE_COPY_MOVE(QWindowsFontDatabase)
37 DontUseDirectWriteFonts = 0x40,
38 DontUseColorFonts = 0x80
41 QWindowsFontDatabase();
42 ~QWindowsFontDatabase() override;
44 void ensureFamilyPopulated(
const QString &familyName);
46 void populateFontDatabase() override;
47 void invalidate() override;
48 void removeApplicationFonts();
49 bool supportsColrv0Fonts()
const override;
51 void populateFamily(
const QString &familyName) override;
52 bool populateFamilyAliases(
const QString &missingFamily) override;
53 QFontEngine *fontEngine(
const QFontDef &fontDef,
void *handle) override;
54 QFontEngine *fontEngine(
const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) override;
55 QStringList fallbacksForFamily(
const QString &family, QFont::Style style, QFont::StyleHint styleHint, QFontDatabasePrivate::ExtendedScript script)
const override;
56 QStringList addApplicationFont(
const QByteArray &fontData,
const QString &fileName, QFontDatabasePrivate::ApplicationFont *applicationFont =
nullptr) override;
57 void releaseHandle(
void *handle) override;
58 QString fontDir()
const override;
60 QFont defaultFont()
const override {
return systemDefaultFont(); }
61 bool fontsAlwaysScalable()
const override;
62 void derefUniqueFont(
const QString &uniqueFont);
63 void refUniqueFont(
const QString &uniqueFont);
64 bool isPrivateFontFamily(
const QString &family)
const override;
66 static QFontEngine *createEngine(
const QFontDef &request,
const QString &faceName,
68 const QSharedPointer<QWindowsFontEngineData> &data);
70 static qreal fontSmoothingGamma();
72 static void setFontOptions(
unsigned options);
73 static unsigned fontOptions();
75#ifndef QT_NO_DEBUG_STREAM
76 static void debugFormat(QDebug &d,
const LOGFONT &lf);
80 FontHandle(
const QString &name) : faceName(name) {}
81 FontHandle(IDWriteFontFace *face,
const QString &name);
84 IDWriteFontFace *fontFace =
nullptr;
89 void addDefaultEUDCFont();
91 struct WinApplicationFont {
96 QList<WinApplicationFont> m_applicationFonts;
98 struct UniqueFontData {
103 QMutex m_uniqueFontDataMutex;
104 QMap<QString, UniqueFontData> m_uniqueFontData;
106 static unsigned m_fontOptions;
107 QStringList m_eudcFonts;
108 bool m_hasPopulatedAliases =
false;