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#if QT_CONFIG(directwrite)
82 FontHandle(IDWriteFontFace *face,
const QString &name);
86#if QT_CONFIG(directwrite)
87 IDWriteFontFace *fontFace =
nullptr;
93 void addDefaultEUDCFont();
95 struct WinApplicationFont {
100 QList<WinApplicationFont> m_applicationFonts;
102 struct UniqueFontData {
107 QMutex m_uniqueFontDataMutex;
108 QMap<QString, UniqueFontData> m_uniqueFontData;
110 static unsigned m_fontOptions;
111 QStringList m_eudcFonts;
112 bool m_hasPopulatedAliases =
false;