31 Q_DISABLE_COPY_MOVE(QWindowsDirectWriteFontDatabase)
33 QWindowsDirectWriteFontDatabase();
34 ~QWindowsDirectWriteFontDatabase() override;
36 void populateFontDatabase() override;
37 void populateFamily(
const QString &familyName) override;
38 bool populateFamilyAliases(
const QString &missingFamily) override;
39 QFontEngine *fontEngine(
const QFontDef &fontDef,
void *handle) override;
40 QFontEngine *fontEngine(
const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) override;
41 QStringList fallbacksForFamily(
const QString &family,
43 QFont::StyleHint styleHint,
44 QFontDatabasePrivate::ExtendedScript script)
const override;
45 QStringList addApplicationFont(
const QByteArray &fontData,
const QString &fileName, QFontDatabasePrivate::ApplicationFont *font =
nullptr) override;
47 bool isPrivateFontFamily(
const QString &family)
const override;
48 bool supportsVariableApplicationFonts()
const override;
50 void registerBitmapFont(
const QString &bitmapFont)
52 m_populatedBitmapFonts.insert(bitmapFont);
55 bool hasPopulatedFont(
const QString &fontFamily)
const
57 return m_populatedFonts.contains(fontFamily);
60 static QFont::Stretch fromDirectWriteStretch(DWRITE_FONT_STRETCH stretch);
61 static QFont::Weight fromDirectWriteWeight(DWRITE_FONT_WEIGHT weight);
62 static QFont::Style fromDirectWriteStyle(DWRITE_FONT_STYLE style);
65 void invalidate() override;
68 friend class QWindowsFontEngineDirectWrite;
69 static QString localeString(IDWriteLocalizedStrings *names,
wchar_t localeName[]);
72 static void collectAdditionalNames(T *fontFace,
73 wchar_t *defaultLocale,
74 wchar_t *englishLocale,
75 std::function<
void(
const std::pair<QString, QString> &)> registerFamily);
77 QSupportedWritingSystems supportedWritingSystems(IDWriteFontFace *face)
const;
79 QHash<QString, IDWriteFontFamily *> m_populatedFonts;
80 QSet<QString> m_populatedBitmapFonts;