From 15aade6c765e4b4b2548c7487408f73ff2d76c03 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Mon, 10 Feb 2020 13:32:36 +0100 Subject: Fix compilation with -no-directwrite The refactoring for adding the DirectWrite font database broke disabling this feature, which in turn broke compilation with CMake, since the configure test isn't added there yet. Change-Id: I7727145112df7f1009a09f09bf3368645fb1b5da Reviewed-by: Alexandru Croitor --- .../fontdatabases/windows/qwindowsfontdatabasebase.cpp | 18 +++++++++++++----- .../fontdatabases/windows/qwindowsfontdatabasebase_p.h | 2 ++ 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'src/platformsupport') diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabasebase.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabasebase.cpp index ff46866cb0..5b8707cdec 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabasebase.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabasebase.cpp @@ -564,6 +564,7 @@ QSharedPointer QWindowsFontDatabaseBase::data() bool QWindowsFontDatabaseBase::init(QSharedPointer d) { +#if !defined(QT_NO_DIRECTWRITE) if (!d->directWriteFactory) { createDirectWriteFactory(&d->directWriteFactory); if (!d->directWriteFactory) @@ -576,9 +577,11 @@ bool QWindowsFontDatabaseBase::init(QSharedPointer d) return false; } } +#endif return true; } +#if !defined(QT_NO_DIRECTWRITE) // ### Qt 6: Link directly to dwrite instead typedef HRESULT (WINAPI *DWriteCreateFactoryType)(DWRITE_FACTORY_TYPE, const IID &, IUnknown **); static inline DWriteCreateFactoryType resolveDWriteCreateFactory() @@ -601,14 +604,14 @@ void QWindowsFontDatabaseBase::createDirectWriteFactory(IDWriteFactory **factory return; IUnknown *result = nullptr; -#if defined(QT_USE_DIRECTWRITE3) +# if defined(QT_USE_DIRECTWRITE3) dWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory3), &result); -#endif +# endif -#if defined(QT_USE_DIRECTWRITE2) +# if defined(QT_USE_DIRECTWRITE2) if (result == nullptr) dWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory2), &result); -#endif +# endif if (result == nullptr) { if (FAILED(dWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory), &result))) { @@ -619,6 +622,7 @@ void QWindowsFontDatabaseBase::createDirectWriteFactory(IDWriteFactory **factory *factory = static_cast(result); } +#endif // !defined(QT_NO_DIRECTWRITE) int QWindowsFontDatabaseBase::defaultVerticalDPI() { @@ -853,7 +857,11 @@ QFontEngine *QWindowsFontDatabaseBase::fontEngine(const QByteArray &fontData, qr fontEngine->fontDef.hintingPreference = hintingPreference; directWriteFontFace->Release(); -#endif // !defined(QT_NO_DIRECTWRITE) +#else // !defined(QT_NO_DIRECTWRITE) + Q_UNUSED(fontData); + Q_UNUSED(pixelSize); + Q_UNUSED(hintingPreference); +#endif return fontEngine; } diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabasebase_p.h b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabasebase_p.h index 004889ab86..fbaa98b663 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabasebase_p.h +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabasebase_p.h @@ -94,7 +94,9 @@ public: static int defaultVerticalDPI(); static QSharedPointer data(); +#if !defined(QT_NO_DIRECTWRITE) static void createDirectWriteFactory(IDWriteFactory **factory); +#endif static QFont systemDefaultFont(); static HFONT systemFont(); static LOGFONT fontDefToLOGFONT(const QFontDef &fontDef, const QString &faceName); -- cgit v1.2.3