summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-02-28 17:10:55 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-04 15:59:05 +0100
commit21114bcc1f58696eef1164e6638d9f1bf7b700e2 (patch)
tree82e8e5451cc0489879e197b2fd301c945b49ae60 /src/plugins/platforms
parentb22ef5966360b36d17cc38df16927d1637f05d08 (diff)
Support QQuickWidget on Windows.
Task-number: QTBUG-36887 Change-Id: Ifb03804e21fd82d7eae2942b9e8ca83f1bdb776c Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/windows/qwindowsbackingstore.cpp13
-rw-r--r--src/plugins/platforms/windows/qwindowsbackingstore.h4
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.cpp2
-rw-r--r--src/plugins/platforms/windows/qwindowsnativeinterface.cpp7
4 files changed, 25 insertions, 1 deletions
diff --git a/src/plugins/platforms/windows/qwindowsbackingstore.cpp b/src/plugins/platforms/windows/qwindowsbackingstore.cpp
index f12c828d8a..1abf447709 100644
--- a/src/plugins/platforms/windows/qwindowsbackingstore.cpp
+++ b/src/plugins/platforms/windows/qwindowsbackingstore.cpp
@@ -203,4 +203,17 @@ HDC QWindowsBackingStore::getDC() const
return 0;
}
+#ifndef QT_NO_OPENGL
+
+QImage QWindowsBackingStore::toImage() const
+{
+ if (m_image.isNull()) {
+ qCWarning(lcQpaBackingStore) <<__FUNCTION__ << "Image is null.";
+ return QImage();
+ }
+ return m_image.data()->image();
+}
+
+#endif // !QT_NO_OPENGL
+
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/windows/qwindowsbackingstore.h b/src/plugins/platforms/windows/qwindowsbackingstore.h
index b655aca835..758f6c941f 100644
--- a/src/plugins/platforms/windows/qwindowsbackingstore.h
+++ b/src/plugins/platforms/windows/qwindowsbackingstore.h
@@ -67,6 +67,10 @@ public:
HDC getDC() const;
+#ifndef QT_NO_OPENGL
+ QImage toImage() const Q_DECL_OVERRIDE;
+#endif
+
private:
QScopedPointer<QWindowsNativeImage> m_image;
};
diff --git a/src/plugins/platforms/windows/qwindowsintegration.cpp b/src/plugins/platforms/windows/qwindowsintegration.cpp
index 3735865845..2a7a275060 100644
--- a/src/plugins/platforms/windows/qwindowsintegration.cpp
+++ b/src/plugins/platforms/windows/qwindowsintegration.cpp
@@ -245,6 +245,8 @@ bool QWindowsIntegration::hasCapability(QPlatformIntegration::Capability cap) co
return true;
case ForeignWindows:
return true;
+ case RasterGLSurface:
+ return true;
default:
return QPlatformIntegration::hasCapability(cap);
}
diff --git a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
index fb1b63084f..f6d01d7ef7 100644
--- a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
+++ b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
@@ -69,13 +69,18 @@ void *QWindowsNativeInterface::nativeResourceForWindow(const QByteArray &resourc
QWindowsWindow *bw = static_cast<QWindowsWindow *>(window->handle());
if (resource == "handle")
return bw->handle();
- if (window->surfaceType() == QWindow::RasterSurface) {
+ switch (window->surfaceType()) {
+ case QWindow::RasterSurface:
+ case QWindow::RasterGLSurface:
if (resource == "getDC")
return bw->getDC();
if (resource == "releaseDC") {
bw->releaseDC();
return 0;
}
+ break;
+ case QWindow::OpenGLSurface:
+ break;
}
qWarning("%s: Invalid key '%s' requested.", __FUNCTION__, resource.constData());
return 0;