summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-29 11:02:07 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-06-12 14:25:27 +0200
commit1053e1f4a3cf681eadcf5a4774b18372738db2f5 (patch)
tree0ae844334ec49a74e7fe1863dd9646f3e43f495d
parent8a65cd8dcdb08c18230de3b2c73b4d127d6e88c5 (diff)
Fix Windows Font database code to use configure features
Use QT_CONFIG, QT_REQUIRE_CONFIG instead of custom macros. Task-number: QTBUG-83255 Task-number: QTBUG-83931 Change-Id: Id067448dd59f4810a6bc8042d3fbe4244d5cc88a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp4
-rw-r--r--src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h10
-rw-r--r--src/gui/text/windows/qwindowsfontdatabase.cpp17
-rw-r--r--src/gui/text/windows/qwindowsfontdatabasebase.cpp13
-rw-r--r--src/gui/text/windows/qwindowsfontdatabasebase_p.h9
-rw-r--r--src/gui/text/windows/qwindowsfontengine.cpp8
-rw-r--r--src/gui/text/windows/qwindowsfontenginedirectwrite.cpp20
-rw-r--r--src/gui/text/windows/qwindowsfontenginedirectwrite_p.h7
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.cpp5
9 files changed, 35 insertions, 58 deletions
diff --git a/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp b/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp
index d2fb909dea..6033e8aeb9 100644
--- a/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp
+++ b/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp
@@ -51,8 +51,6 @@
QT_BEGIN_NAMESPACE
-#ifdef QT_USE_DIRECTWRITE3
-
// Defined in gui/text/qfontdatabase.cpp
Q_GUI_EXPORT QFontDatabase::WritingSystem qt_writing_system_for_script(int script);
@@ -473,6 +471,4 @@ QFont QWindowsDirectWriteFontDatabase::defaultFont() const
return QFont(QStringLiteral("Segoe UI"));
}
-#endif // QT_USE_DIRECTWRITE3
-
QT_END_NAMESPACE
diff --git a/src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h b/src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h
index 5637b5dfb0..f0ca67a208 100644
--- a/src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h
+++ b/src/gui/text/windows/qwindowsdirectwritefontdatabase_p.h
@@ -51,9 +51,11 @@
// We mean it.
//
-#include "qwindowsfontdatabasebase_p.h"
+#include <QtGui/private/qtgui-config_p.h>
+
+QT_REQUIRE_CONFIG(directwrite3);
-#include <qpa/qplatformfontdatabase.h>
+#include "qwindowsfontdatabasebase_p.h"
#include <QtCore/qloggingcategory.h>
struct IDWriteFactory;
@@ -63,8 +65,6 @@ struct IDWriteLocalizedStrings;
QT_BEGIN_NAMESPACE
-#ifdef QT_USE_DIRECTWRITE3
-
class Q_GUI_EXPORT QWindowsDirectWriteFontDatabase : public QWindowsFontDatabaseBase
{
Q_DISABLE_COPY_MOVE(QWindowsDirectWriteFontDatabase)
@@ -89,8 +89,6 @@ private:
QHash<QString, IDWriteFontFamily *> m_populatedFonts;
};
-#endif // QT_USE_DIRECTWRITE3
-
QT_END_NAMESPACE
#endif // QWINDOWSDIRECTWRITEFONTDATABASE_P_H
diff --git a/src/gui/text/windows/qwindowsfontdatabase.cpp b/src/gui/text/windows/qwindowsfontdatabase.cpp
index 7af20df94c..e20b53c7c0 100644
--- a/src/gui/text/windows/qwindowsfontdatabase.cpp
+++ b/src/gui/text/windows/qwindowsfontdatabase.cpp
@@ -40,12 +40,12 @@
#include "qwindowsfontdatabase_p.h"
#include "qwindowsfontdatabase_ft_p.h" // for default font
#include "qwindowsfontengine_p.h"
-#include "qwindowsfontenginedirectwrite_p.h"
#include <QtCore/qt_windows.h>
#include <QtGui/QFont>
#include <QtGui/QGuiApplication>
#include <QtGui/private/qhighdpiscaling_p.h>
+#include <QtGui/private/qtgui-config_p.h>
#include <QtCore/qmath.h>
#include <QtCore/QDebug>
@@ -56,21 +56,20 @@
#include <wchar.h>
-#if !defined(QT_NO_DIRECTWRITE)
-# if defined(QT_USE_DIRECTWRITE2)
-# include <dwrite_2.h>
-# else
-# include <dwrite.h>
+#if QT_CONFIG(directwrite)
+# if QT_CONFIG(directwrite3)
+# include "qwindowsdirectwritefontdatabase_p.h"
# endif
+# include <dwrite_2.h>
# include <d2d1.h>
-# include "qwindowsdirectwritefontdatabase_p.h"
+# include "qwindowsfontenginedirectwrite_p.h"
#endif
QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(lcQpaFonts, "qt.qpa.fonts")
-#ifndef QT_NO_DIRECTWRITE
+#if QT_CONFIG(directwrite)
// ### fixme: Consider direct linking of dwrite.dll once Windows Vista pre SP2 is dropped (QTBUG-49711)
typedef HRESULT (WINAPI *DWriteCreateFactoryType)(DWRITE_FACTORY_TYPE, const IID &, IUnknown **);
@@ -758,7 +757,7 @@ QFontEngine *QWindowsFontDatabase::fontEngine(const QByteArray &fontData, qreal
EmbeddedFont font(fontData);
QFontEngine *fontEngine = 0;
-#if !defined(QT_NO_DIRECTWRITE)
+#if QT_CONFIG(directwrite)
if (!useDirectWrite(hintingPreference))
#endif
{
diff --git a/src/gui/text/windows/qwindowsfontdatabasebase.cpp b/src/gui/text/windows/qwindowsfontdatabasebase.cpp
index 6c32b40549..8aa2d13b03 100644
--- a/src/gui/text/windows/qwindowsfontdatabasebase.cpp
+++ b/src/gui/text/windows/qwindowsfontdatabasebase.cpp
@@ -44,13 +44,11 @@
#include <QtCore/QThreadStorage>
#include <QtCore/QtEndian>
-#if !defined(QT_NO_DIRECTWRITE)
-# if defined(QT_USE_DIRECTWRITE3)
+#if QT_CONFIG(directwrite)
+# if QT_CONFIG(directwrite3)
# include <dwrite_3.h>
-# elif defined(QT_USE_DIRECTWRITE2)
-# include <dwrite_2.h>
# else
-# include <dwrite.h>
+# include <dwrite_2.h>
# endif
# include <d2d1.h>
# include "qwindowsfontenginedirectwrite_p.h"
@@ -604,14 +602,11 @@ void QWindowsFontDatabaseBase::createDirectWriteFactory(IDWriteFactory **factory
return;
IUnknown *result = nullptr;
-# if defined(QT_USE_DIRECTWRITE3)
+# if QT_CONFIG(directwrite3)
dWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory3), &result);
# endif
-
-# if defined(QT_USE_DIRECTWRITE2)
if (result == nullptr)
dWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory2), &result);
-# endif
if (result == nullptr) {
if (FAILED(dWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory), &result))) {
diff --git a/src/gui/text/windows/qwindowsfontdatabasebase_p.h b/src/gui/text/windows/qwindowsfontdatabasebase_p.h
index 7f712a2323..4e0324183d 100644
--- a/src/gui/text/windows/qwindowsfontdatabasebase_p.h
+++ b/src/gui/text/windows/qwindowsfontdatabasebase_p.h
@@ -52,11 +52,12 @@
//
#include <qpa/qplatformfontdatabase.h>
+#include <QtGui/private/qtgui-config_p.h>
#include <QtCore/QSharedPointer>
#include <QtCore/QLoggingCategory>
#include <QtCore/qt_windows.h>
-#if !defined(QT_NO_DIRECTWRITE)
+#if QT_CONFIG(directwrite)
struct IDWriteFactory;
struct IDWriteGdiInterop;
struct IDWriteFontFace;
@@ -78,7 +79,7 @@ public:
bool clearTypeEnabled = false;
qreal fontSmoothingGamma;
HDC hdc = 0;
-#if !defined(QT_NO_DIRECTWRITE)
+#if QT_CONFIG(directwrite)
IDWriteFactory *directWriteFactory = nullptr;
IDWriteGdiInterop *directWriteGdiInterop = nullptr;
#endif
@@ -96,7 +97,7 @@ public:
static void setDefaultVerticalDPI(int d);
static QSharedPointer<QWindowsFontEngineData> data();
-#if !defined(QT_NO_DIRECTWRITE)
+#if QT_CONFIG(directwrite)
static void createDirectWriteFactory(IDWriteFactory **factory);
#endif
static QFont systemDefaultFont();
@@ -125,7 +126,7 @@ public:
protected:
-#if !defined(QT_NO_DIRECTWRITE)
+#if QT_CONFIG(directwrite)
IDWriteFontFace *createDirectWriteFace(const QByteArray &fontData) const;
#endif
diff --git a/src/gui/text/windows/qwindowsfontengine.cpp b/src/gui/text/windows/qwindowsfontengine.cpp
index 6248041a3d..4eac3afc75 100644
--- a/src/gui/text/windows/qwindowsfontengine.cpp
+++ b/src/gui/text/windows/qwindowsfontengine.cpp
@@ -41,8 +41,9 @@
#include "qwindowsnativeimage_p.h"
#include "qwindowsfontdatabase_p.h"
#include <QtCore/qt_windows.h>
-#include "qwindowsfontenginedirectwrite_p.h"
-
+#if QT_CONFIG(directwrite)
+# include "qwindowsfontenginedirectwrite_p.h"
+#endif
#include <QtGui/qpa/qplatformintegration.h>
#include <QtGui/private/qtextengine_p.h> // glyph_metrics_t
#include <QtGui/private/qguiapplication_p.h>
@@ -52,6 +53,7 @@
#include <QtGui/private/qpainter_p.h>
#include <QtGui/QPaintEngine>
#include <QtGui/private/qpaintengine_raster_p.h>
+#include <QtGui/private/qtgui-config_p.h>
#include <QtCore/QtEndian>
#include <QtCore/QFile>
@@ -65,7 +67,7 @@
#include <limits.h>
-#if !defined(QT_NO_DIRECTWRITE)
+#if QT_CONFIG(directwrite)
# include <dwrite.h>
# include <comdef.h>
#endif
diff --git a/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp b/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp
index d96e65a532..c17139ab8b 100644
--- a/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp
+++ b/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp
@@ -37,8 +37,6 @@
**
****************************************************************************/
-#ifndef QT_NO_DIRECTWRITE
-
#include "qwindowsfontenginedirectwrite_p.h"
#include "qwindowsfontdatabase_p.h"
@@ -53,11 +51,7 @@
#include <QtGui/private/qhighdpiscaling_p.h>
#include <QtGui/qpainterpath.h>
-#if defined(QT_USE_DIRECTWRITE2)
-# include <dwrite_2.h>
-#else
-# include <dwrite.h>
-#endif
+#include <dwrite_2.h>
#include <d2d1.h>
@@ -705,7 +699,6 @@ QImage QWindowsFontEngineDirectWrite::imageForGlyph(glyph_t t,
const int height = boundingRect.height() - 1;
QImage image;
-#if defined(QT_USE_DIRECTWRITE2)
HRESULT hr = DWRITE_E_NOCOLOR;
IDWriteColorGlyphRunEnumerator *enumerator = 0;
IDWriteFactory2 *factory2 = nullptr;
@@ -722,14 +715,11 @@ QImage QWindowsFontEngineDirectWrite::imageForGlyph(glyph_t t,
&enumerator);
image = QImage(width, height, QImage::Format_ARGB32_Premultiplied);
image.fill(0);
- } else
-#endif
- {
+ } else {
image = QImage(width, height, QImage::Format_RGB32);
image.fill(0xffffffff);
}
-#if defined(QT_USE_DIRECTWRITE2)
BOOL ok = true;
if (SUCCEEDED(hr)) {
@@ -786,9 +776,7 @@ QImage QWindowsFontEngineDirectWrite::imageForGlyph(glyph_t t,
break;
}
}
- } else
-#endif
- {
+ } else {
float r, g, b, a;
if (glyphFormat == QFontEngine::Format_ARGB) {
r = float(color.redF());
@@ -1026,5 +1014,3 @@ QImage QWindowsFontEngineDirectWrite::bitmapForGlyph(glyph_t glyph, QFixed subPi
}
QT_END_NAMESPACE
-
-#endif // QT_NO_DIRECTWRITE
diff --git a/src/gui/text/windows/qwindowsfontenginedirectwrite_p.h b/src/gui/text/windows/qwindowsfontenginedirectwrite_p.h
index 6e79190ce4..5be021d37a 100644
--- a/src/gui/text/windows/qwindowsfontenginedirectwrite_p.h
+++ b/src/gui/text/windows/qwindowsfontenginedirectwrite_p.h
@@ -51,9 +51,10 @@
// We mean it.
//
-#include <QtCore/qglobal.h>
+#include <QtGui/qtguiglobal.h>
+#include <QtGui/private/qtgui-config_p.h>
-#ifndef QT_NO_DIRECTWRITE
+QT_REQUIRE_CONFIG(directwrite);
#include <QtGui/private/qfontengine_p.h>
#include <QtCore/QSharedPointer>
@@ -147,6 +148,4 @@ private:
QT_END_NAMESPACE
-#endif // QT_NO_DIRECTWRITE
-
#endif // QWINDOWSFONTENGINEDIRECTWRITE_H
diff --git a/src/plugins/platforms/windows/qwindowsintegration.cpp b/src/plugins/platforms/windows/qwindowsintegration.cpp
index 9503d48bdb..295bce1058 100644
--- a/src/plugins/platforms/windows/qwindowsintegration.cpp
+++ b/src/plugins/platforms/windows/qwindowsintegration.cpp
@@ -48,7 +48,8 @@
#include "qwindowsscreen.h"
#include "qwindowstheme.h"
#include "qwindowsservices.h"
-#ifdef QT_USE_DIRECTWRITE3
+#include <QtGui/private/qtgui-config_p.h>
+#if QT_CONFIG(directwrite3)
#include <QtGui/private/qwindowsdirectwritefontdatabase_p.h>
#endif
#ifndef QT_NO_FREETYPE
@@ -490,7 +491,7 @@ QWindowsStaticOpenGLContext *QWindowsIntegration::staticOpenGLContext()
QPlatformFontDatabase *QWindowsIntegration::fontDatabase() const
{
if (!d->m_fontDatabase) {
-#ifdef QT_USE_DIRECTWRITE3
+#if QT_CONFIG(directwrite3)
if (d->m_options & QWindowsIntegration::FontDatabaseDirectWrite)
d->m_fontDatabase = new QWindowsDirectWriteFontDatabase;
else