4#include <QtCore/qt_windows.h>
14#include <qplatformdefs.h>
15#include <QtCore/qcoreapplication.h>
16#include <QtCore/qversionnumber.h>
17#include <QtGui/private/qpixmap_raster_p.h>
18#include <QtGui/qpa/qwindowsysteminterface.h>
20#include <QVarLengthArray>
36 UINT
i = GetSystemDirectory(filename,
bufSize);
38 if (_tcscat_s(filename,
bufSize, __TEXT(
"\\d2d1.dll")) == 0) {
39 DWORD versionInfoSize = GetFileVersionInfoSize(filename,
nullptr);
40 if (versionInfoSize) {
42 if (GetFileVersionInfo(filename, 0, versionInfoSize,
info.data())) {
46 if (VerQueryValue(
info.constData(), __TEXT(
"\\"),
47 reinterpret_cast<void **
>(&
fi), &
size) &&
size) {
48 const auto *verInfo =
reinterpret_cast<const VS_FIXEDFILEINFO *
>(
fi);
49 return QVersionNumber{HIWORD(verInfo->dwFileVersionMS), LOWORD(verInfo->dwFileVersionMS),
50 HIWORD(verInfo->dwFileVersionLS), LOWORD(verInfo->dwFileVersionLS)};
63 D2DMinVersionPart1 = 6,
64 D2DMinVersionPart2 = 2,
65 D2DMinVersionPart3 = 9200,
66 D2DMinVersionPart4 = 16492
69 return QVersionNumber{D2DMinVersionPart1, D2DMinVersionPart2, D2DMinVersionPart3, D2DMinVersionPart4};
76 if (!systemVersion.
isNull() && systemVersion < minimumVersion) {
78 "Qt cannot load the direct2d platform plugin because " \
79 "the Direct2D version on this system is too old. The " \
80 "minimum system requirement for this platform plugin " \
81 "is Windows 7 SP1 with Platform Update.\n\n" \
82 "The minimum Direct2D version required is %1. " \
83 "The Direct2D version on this system is %2.")
87 "Cannot load direct2d platform plugin");
92 MB_OK | MB_ICONERROR);
99 if (!integration->init()) {
101 integration =
nullptr;
150QWindowsDirect2DIntegration::QWindowsDirect2DIntegration(
const QStringList ¶mList)
156bool QWindowsDirect2DIntegration::init()
static QString translate(const char *context, const char *key, const char *disambiguation=nullptr, int n=-1)
\threadsafe
\macro QT_RESTRICTED_CAST_FROM_ASCII
std::wstring toStdWString() const
Returns a std::wstring object with the data contained in this QString.
QString arg(qlonglong a, int fieldwidth=0, int base=10, QChar fillChar=u' ') const
bool isNull() const noexcept
Returns true if there are zero numerical segments, otherwise returns false.
Q_CORE_EXPORT QString toString() const
Returns a string with all of the segments delimited by a period ({.}).
Backing store for windows.
QWindowsDirect2DContext m_d2dContext
QWindowsDirect2DNativeInterface m_nativeInterface
static QWindowsDirect2DIntegration * create(const QStringList ¶mList)
QWindowsWindow * createPlatformWindowHelper(QWindow *window, const QWindowsWindowData &) const override
QPlatformNativeInterface * nativeInterface() const override
QWindowsDirect2DContext * direct2DContext() const
QPlatformPixmap * createPlatformPixmap(QPlatformPixmap::PixelType type) const override
Factory function for QPlatformPixmap.
virtual ~QWindowsDirect2DIntegration()
QPlatformBackingStore * createPlatformBackingStore(QWindow *window) const override
Factory function for QPlatformBackingStore.
static QWindowsDirect2DIntegration * instance()
QPlatformIntegration implementation for Windows.
static QWindowsIntegration * instance()
Combined button and popup list for selecting options.
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
static QVersionNumber minimumD2DVersion()
static QVersionNumber systemD2DVersion()
QFileInfo info(fileName)
[8]
QFileInfo fi("c:/temp/foo")
[newstuff]