diff options
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandintegration.cpp')
-rw-r--r-- | src/plugins/platforms/wayland/qwaylandintegration.cpp | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandintegration.cpp b/src/plugins/platforms/wayland/qwaylandintegration.cpp index 5df71dc936..9a581c265f 100644 --- a/src/plugins/platforms/wayland/qwaylandintegration.cpp +++ b/src/plugins/platforms/wayland/qwaylandintegration.cpp @@ -42,28 +42,27 @@ #include "qwaylandintegration.h" #include "qwaylanddisplay.h" -#include "qwaylandshmsurface.h" +#include "qwaylandshmbackingstore.h" #include "qwaylandshmwindow.h" #include "qwaylandnativeinterface.h" #include "qwaylandclipboard.h" -#include "qgenericunixfontdatabase.h" +#include "QtPlatformSupport/private/qgenericunixfontdatabase_p.h" +#include <QtPlatformSupport/private/qgenericunixeventdispatcher_p.h> #include <QtGui/QWindowSystemInterface> #include <QtGui/QPlatformCursor> -#include <QtGui/QPlatformWindowFormat> +#include <QtGui/QSurfaceFormat> #include <QtGui/private/qpixmap_raster_p.h> + #ifdef QT_WAYLAND_GL_SUPPORT #include "gl_integration/qwaylandglintegration.h" -#include "gl_integration/qwaylandglwindowsurface.h" -#include <QtOpenGL/private/qpixmapdata_gl_p.h> #endif -QWaylandIntegration::QWaylandIntegration(bool useOpenGL) +QWaylandIntegration::QWaylandIntegration() : mFontDb(new QGenericUnixFontDatabase()) , mDisplay(new QWaylandDisplay()) - , mUseOpenGL(useOpenGL) , mNativeInterface(new QWaylandNativeInterface) { } @@ -83,55 +82,56 @@ bool QWaylandIntegration::hasCapability(QPlatformIntegration::Capability cap) co { switch (cap) { case ThreadedPixmaps: return true; - case OpenGL: return hasOpenGL(); + case OpenGL: +#ifdef QT_WAYLAND_GL_SUPPORT + return true; +#else + return false; +#endif default: return QPlatformIntegration::hasCapability(cap); } } QPixmapData *QWaylandIntegration::createPixmapData(QPixmapData::PixelType type) const { -#ifdef QT_WAYLAND_GL_SUPPORT - if (mUseOpenGL) - return new QGLPixmapData(type); -#endif return new QRasterPixmapData(type); } -QPlatformWindow *QWaylandIntegration::createPlatformWindow(QWidget *widget, WId winId) const +QPlatformWindow *QWaylandIntegration::createPlatformWindow(QWindow *window) const { - Q_UNUSED(winId); #ifdef QT_WAYLAND_GL_SUPPORT - bool useOpenGL = mUseOpenGL || (widget->platformWindowFormat().windowApi() == QPlatformWindowFormat::OpenGL); - if (useOpenGL) - return mDisplay->eglIntegration()->createEglWindow(widget); + if (window->surfaceType() == QWindow::OpenGLSurface) + return mDisplay->eglIntegration()->createEglWindow(window); #endif - return new QWaylandShmWindow(widget); + return new QWaylandShmWindow(window); } -QWindowSurface *QWaylandIntegration::createWindowSurface(QWidget *widget, WId winId) const +QPlatformGLContext *QWaylandIntegration::createPlatformGLContext(const QSurfaceFormat &glFormat, QPlatformGLContext *share) const { - Q_UNUSED(winId); - Q_UNUSED(winId); #ifdef QT_WAYLAND_GL_SUPPORT - bool useOpenGL = mUseOpenGL || (widget->platformWindowFormat().windowApi() == QPlatformWindowFormat::OpenGL); - if (useOpenGL) - return new QWaylandGLWindowSurface(widget); + return mDisplay->eglIntegration()->createPlatformGLContext(glFormat, share); +#else + Q_UNUSED(glFormat); + Q_UNUSED(share); + return 0; #endif - return new QWaylandShmWindowSurface(widget); } -QPlatformFontDatabase *QWaylandIntegration::fontDatabase() const +QPlatformBackingStore *QWaylandIntegration::createPlatformBackingStore(QWindow *window) const { - return mFontDb; + return new QWaylandShmBackingStore(window); } -bool QWaylandIntegration::hasOpenGL() const +QAbstractEventDispatcher *QWaylandIntegration::createEventDispatcher() const { -#ifdef QT_WAYLAND_GL_SUPPORT - return true; -#else - return false; -#endif + QAbstractEventDispatcher *dispatcher = createUnixEventDispatcher(); + mDisplay->eventDispatcherCreated(dispatcher); + return dispatcher; +} + +QPlatformFontDatabase *QWaylandIntegration::fontDatabase() const +{ + return mFontDb; } QPlatformClipboard *QWaylandIntegration::clipboard() const |