diff options
Diffstat (limited to 'src/plugins/platforms/kms')
-rw-r--r-- | src/plugins/platforms/kms/main.cpp | 2 | ||||
-rw-r--r-- | src/plugins/platforms/kms/qkmsbackingstore.h | 8 | ||||
-rw-r--r-- | src/plugins/platforms/kms/qkmscontext.h | 12 | ||||
-rw-r--r-- | src/plugins/platforms/kms/qkmscursor.h | 4 | ||||
-rw-r--r-- | src/plugins/platforms/kms/qkmsintegration.cpp | 2 | ||||
-rw-r--r-- | src/plugins/platforms/kms/qkmsnativeinterface.cpp | 24 | ||||
-rw-r--r-- | src/plugins/platforms/kms/qkmsnativeinterface.h | 6 | ||||
-rw-r--r-- | src/plugins/platforms/kms/qkmsscreen.cpp | 2 | ||||
-rw-r--r-- | src/plugins/platforms/kms/qkmsscreen.h | 10 |
9 files changed, 47 insertions, 23 deletions
diff --git a/src/plugins/platforms/kms/main.cpp b/src/plugins/platforms/kms/main.cpp index 39ca77bd56..9e9e2c7344 100644 --- a/src/plugins/platforms/kms/main.cpp +++ b/src/plugins/platforms/kms/main.cpp @@ -41,7 +41,7 @@ class QKmsIntegrationPlugin : public QPlatformIntegrationPlugin Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "kms.json") public: - QPlatformIntegration *create(const QString&, const QStringList&); + QPlatformIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE; }; QPlatformIntegration *QKmsIntegrationPlugin::create(const QString& system, const QStringList& paramList) diff --git a/src/plugins/platforms/kms/qkmsbackingstore.h b/src/plugins/platforms/kms/qkmsbackingstore.h index 56d57313e8..a8f2dddd03 100644 --- a/src/plugins/platforms/kms/qkmsbackingstore.h +++ b/src/plugins/platforms/kms/qkmsbackingstore.h @@ -49,12 +49,12 @@ public: QKmsBackingStore(QWindow *window); ~QKmsBackingStore(); - QPaintDevice *paintDevice(); + QPaintDevice *paintDevice() Q_DECL_OVERRIDE; - void beginPaint(const QRegion &); + void beginPaint(const QRegion &) Q_DECL_OVERRIDE; - void flush(QWindow *window, const QRegion ®ion, const QPoint &offset); - void resize(const QSize &size, const QRegion &staticContents); + void flush(QWindow *window, const QRegion ®ion, const QPoint &offset) Q_DECL_OVERRIDE; + void resize(const QSize &size, const QRegion &staticContents) Q_DECL_OVERRIDE; QImage toImage() const Q_DECL_OVERRIDE { return m_image; } diff --git a/src/plugins/platforms/kms/qkmscontext.h b/src/plugins/platforms/kms/qkmscontext.h index b388dba7d5..fabe3c2524 100644 --- a/src/plugins/platforms/kms/qkmscontext.h +++ b/src/plugins/platforms/kms/qkmscontext.h @@ -48,14 +48,14 @@ class QKmsContext : public QPlatformOpenGLContext public: QKmsContext(QOpenGLContext *context, QKmsDevice *device); - bool makeCurrent(QPlatformSurface *surface); - void doneCurrent(); - void swapBuffers(QPlatformSurface *surface); - void (*getProcAddress(const QByteArray &procName)) (); + bool makeCurrent(QPlatformSurface *surface) Q_DECL_OVERRIDE; + void doneCurrent() Q_DECL_OVERRIDE; + void swapBuffers(QPlatformSurface *surface) Q_DECL_OVERRIDE; + void (*getProcAddress(const QByteArray &procName)) () Q_DECL_OVERRIDE; - bool isValid() const; + bool isValid() const Q_DECL_OVERRIDE; - QSurfaceFormat format() const; + QSurfaceFormat format() const Q_DECL_OVERRIDE; EGLContext eglContext() const; diff --git a/src/plugins/platforms/kms/qkmscursor.h b/src/plugins/platforms/kms/qkmscursor.h index 3eef4e599c..35d9814224 100644 --- a/src/plugins/platforms/kms/qkmscursor.h +++ b/src/plugins/platforms/kms/qkmscursor.h @@ -49,8 +49,8 @@ public: QKmsCursor(QKmsScreen *screen); ~QKmsCursor(); - void pointerEvent(const QMouseEvent &event); - void changeCursor(QCursor *windowCursor, QWindow *window); + void pointerEvent(const QMouseEvent &event) Q_DECL_OVERRIDE; + void changeCursor(QCursor *windowCursor, QWindow *window) Q_DECL_OVERRIDE; private: QKmsScreen *m_screen; diff --git a/src/plugins/platforms/kms/qkmsintegration.cpp b/src/plugins/platforms/kms/qkmsintegration.cpp index d94d7d9aaa..5ad58ba54f 100644 --- a/src/plugins/platforms/kms/qkmsintegration.cpp +++ b/src/plugins/platforms/kms/qkmsintegration.cpp @@ -74,7 +74,7 @@ QKmsIntegration::~QKmsIntegration() delete device; } foreach (QPlatformScreen *screen, m_screens) { - delete screen; + destroyScreen(screen); } delete m_fontDatabase; delete m_vtHandler; diff --git a/src/plugins/platforms/kms/qkmsnativeinterface.cpp b/src/plugins/platforms/kms/qkmsnativeinterface.cpp index 3ed1643fdb..c133b48086 100644 --- a/src/plugins/platforms/kms/qkmsnativeinterface.cpp +++ b/src/plugins/platforms/kms/qkmsnativeinterface.cpp @@ -52,6 +52,21 @@ public: Q_GLOBAL_STATIC(QKmsResourceMap, qKmsResourceMap) +void *QKmsNativeInterface::nativeResourceForIntegration(const QByteArray &resourceString) +{ + QByteArray lowerCaseResource = resourceString.toLower(); + ResourceType resource = qKmsResourceMap()->value(lowerCaseResource); + void *result = 0; + switch (resource) { + case EglDisplay: + result = eglDisplay(); + break; + default: + result = 0; + } + return result; + +} void *QKmsNativeInterface::nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) { QByteArray lowerCaseResource = resourceString.toLower(); @@ -79,7 +94,14 @@ QPlatformNativeInterface::NativeResourceForContextFunction QKmsNativeInterface:: return 0; } - +void *QKmsNativeInterface::eglDisplay() +{ + //QKmsIntegration *integration = static_cast<QKmsIntegration *>(QGuiApplicationPrivate::platformIntegration()); + QKmsScreen *screen = static_cast<QKmsScreen *>(QGuiApplication::primaryScreen()->handle()); + if (!screen || !screen->device()) + return 0; + return screen->device()->eglDisplay(); +} void *QKmsNativeInterface::eglDisplayForWindow(QWindow *window) { diff --git a/src/plugins/platforms/kms/qkmsnativeinterface.h b/src/plugins/platforms/kms/qkmsnativeinterface.h index b9ef914045..402c8b7f6f 100644 --- a/src/plugins/platforms/kms/qkmsnativeinterface.h +++ b/src/plugins/platforms/kms/qkmsnativeinterface.h @@ -46,10 +46,12 @@ public: EglContext }; - void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window); + void *nativeResourceForIntegration(const QByteArray &resource) Q_DECL_OVERRIDE; + void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) Q_DECL_OVERRIDE; - NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource); + NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) Q_DECL_OVERRIDE; + void *eglDisplay(); void *eglDisplayForWindow(QWindow *window); void *eglContextForWindow(QWindow *window); static void *eglContextForContext(QOpenGLContext *context); diff --git a/src/plugins/platforms/kms/qkmsscreen.cpp b/src/plugins/platforms/kms/qkmsscreen.cpp index ddcdd10928..84c1eba448 100644 --- a/src/plugins/platforms/kms/qkmsscreen.cpp +++ b/src/plugins/platforms/kms/qkmsscreen.cpp @@ -216,7 +216,7 @@ void QKmsScreen::performPageFlip() // Initialize cursor - static int hideCursor = qgetenv("QT_QPA_KMS_HIDECURSOR").toInt(); + static int hideCursor = qEnvironmentVariableIntValue("QT_QPA_KMS_HIDECURSOR"); if (!hideCursor) { QCursor cursor(Qt::ArrowCursor); m_cursor->changeCursor(&cursor, 0); diff --git a/src/plugins/platforms/kms/qkmsscreen.h b/src/plugins/platforms/kms/qkmsscreen.h index 552541503c..8557e12a03 100644 --- a/src/plugins/platforms/kms/qkmsscreen.h +++ b/src/plugins/platforms/kms/qkmsscreen.h @@ -67,11 +67,11 @@ public: QKmsScreen(QKmsDevice *device, const drmModeRes *resources, const drmModeConnector *connector); ~QKmsScreen(); - QRect geometry() const; - int depth() const; - QImage::Format format() const; - QSizeF physicalSize() const; - QPlatformCursor *cursor() const; + QRect geometry() const Q_DECL_OVERRIDE; + int depth() const Q_DECL_OVERRIDE; + QImage::Format format() const Q_DECL_OVERRIDE; + QSizeF physicalSize() const Q_DECL_OVERRIDE; + QPlatformCursor *cursor() const Q_DECL_OVERRIDE; quint32 crtcId() const { return m_crtcId; } QKmsDevice *device() const; |