diff options
author | Elvis Lee <kwangwoong.lee@lge.com> | 2020-07-09 17:26:01 +0900 |
---|---|---|
committer | Elvis Lee <kwangwoong.lee@lge.com> | 2020-10-23 16:46:02 +0900 |
commit | ee3adcc64227e1a27b36c8ca69ead415cf2fd644 (patch) | |
tree | 9e73df60b33672a3948d9a3b1c532cec4b752bf0 /src/plugins | |
parent | 47d2f3cfe836be897a737d434140b4be03e9320f (diff) |
Export gbm device integration to build it outside
Support external build for device integration which uses
kms and gbm. QKmsScreenConfig supports inheritance
to consider platform specific screen configuration.
Task-number: QTBUG-85268
Change-Id: Iac58898a9cf0bb1d53237a719667a6ebd53d88b9
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/plugins')
37 files changed, 275 insertions, 109 deletions
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt index 3f27a9c397..a790a01c62 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt @@ -1,6 +1,35 @@ # Generated from eglfs_kms.pro. ##################################################################### +## EglFsKmsGbmSupport Module: +##################################################################### + +qt_internal_add_module(EglFsKmsGbmSupport + INTERNAL_MODULE + SOURCES + qeglfskmsgbmcursor.cpp qeglfskmsgbmcursor_p.h + qeglfskmsgbmdevice.cpp qeglfskmsgbmdevice_p.h + qeglfskmsgbmintegration.cpp qeglfskmsgbmintegration_p.h + qeglfskmsgbmscreen.cpp qeglfskmsgbmscreen_p.h + qeglfskmsgbmwindow.cpp qeglfskmsgbmwindow_p.h + DEFINES + QT_EGL_NO_X11 + INCLUDE_DIRECTORIES + ../../api + ../eglfs_kms_support + PUBLIC_LIBRARIES + Libdrm::Libdrm + Qt::Core + Qt::CorePrivate + Qt::EglFSDeviceIntegrationPrivate + Qt::EglFsKmsSupportPrivate + Qt::Gui + Qt::GuiPrivate + Qt::KmsSupportPrivate + gbm::gbm +) + +##################################################################### ## QEglFSKmsGbmIntegrationPlugin Plugin: ##################################################################### @@ -8,22 +37,15 @@ qt_internal_add_plugin(QEglFSKmsGbmIntegrationPlugin OUTPUT_NAME qeglfs-kms-integration TYPE egldeviceintegrations SOURCES - qeglfskmsgbmcursor.cpp qeglfskmsgbmcursor.h - qeglfskmsgbmdevice.cpp qeglfskmsgbmdevice.h - qeglfskmsgbmintegration.cpp qeglfskmsgbmintegration.h qeglfskmsgbmmain.cpp - qeglfskmsgbmscreen.cpp qeglfskmsgbmscreen.h - qeglfskmsgbmwindow.cpp qeglfskmsgbmwindow.h DEFINES QT_EGL_NO_X11 - INCLUDE_DIRECTORIES - ../../api - ../eglfs_kms_support PUBLIC_LIBRARIES Libdrm::Libdrm Qt::Core Qt::CorePrivate Qt::EglFSDeviceIntegrationPrivate + Qt::EglFsKmsGbmSupportPrivate Qt::EglFsKmsSupportPrivate Qt::Gui Qt::GuiPrivate @@ -31,5 +53,5 @@ qt_internal_add_plugin(QEglFSKmsGbmIntegrationPlugin gbm::gbm ) -#### Keys ignored in scope 1:.:.:eglfs_kms.pro:<TRUE>: +#### Keys ignored in scope 1:.:.:eglfs_kms-plugin.pro:<TRUE>: # OTHER_FILES = "$$PWD/eglfs_kms.json" diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms-plugin.pro b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms-plugin.pro new file mode 100644 index 0000000000..37c0e09c74 --- /dev/null +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms-plugin.pro @@ -0,0 +1,17 @@ +TARGET = qeglfs-kms-integration + +PLUGIN_TYPE = egldeviceintegrations +PLUGIN_CLASS_NAME = QEglFSKmsGbmIntegrationPlugin +load(qt_plugin) + +QT += core-private gui-private eglfsdeviceintegration-private eglfs_kms_support-private kms_support-private eglfs_kms_gbm_support-private + +# Avoid X11 header collision, use generic EGL native types +DEFINES += QT_EGL_NO_X11 + +QMAKE_USE += gbm drm +CONFIG += egl + +SOURCES += $$PWD/qeglfskmsgbmmain.cpp + +OTHER_FILES += $$PWD/eglfs_kms.json diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro index caf723155a..23063c052e 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro @@ -1,30 +1,5 @@ -TARGET = qeglfs-kms-integration +TEMPLATE = subdirs +CONFIG += ordered -PLUGIN_TYPE = egldeviceintegrations -PLUGIN_CLASS_NAME = QEglFSKmsGbmIntegrationPlugin -load(qt_plugin) - -QT += core-private gui-private eglfsdeviceintegration-private eglfs_kms_support-private kms_support-private - -INCLUDEPATH += $$PWD/../../api $$PWD/../eglfs_kms_support - -# Avoid X11 header collision, use generic EGL native types -DEFINES += QT_EGL_NO_X11 - -QMAKE_USE += gbm drm -CONFIG += egl - -SOURCES += $$PWD/qeglfskmsgbmmain.cpp \ - $$PWD/qeglfskmsgbmintegration.cpp \ - $$PWD/qeglfskmsgbmdevice.cpp \ - $$PWD/qeglfskmsgbmscreen.cpp \ - $$PWD/qeglfskmsgbmcursor.cpp \ - $$PWD/qeglfskmsgbmwindow.cpp - -HEADERS += $$PWD/qeglfskmsgbmintegration.h \ - $$PWD/qeglfskmsgbmdevice.h \ - $$PWD/qeglfskmsgbmscreen.h \ - $$PWD/qeglfskmsgbmcursor.h \ - $$PWD/qeglfskmsgbmwindow.h - -OTHER_FILES += $$PWD/eglfs_kms.json +SUBDIRS += eglfs_kms_gbm_support.pro +SUBDIRS += eglfs_kms-plugin.pro diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms_gbm_support.pro b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms_gbm_support.pro new file mode 100644 index 0000000000..7fde6f81d7 --- /dev/null +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms_gbm_support.pro @@ -0,0 +1,25 @@ +TARGET = QtEglFsKmsGbmSupport +CONFIG += internal_module +load(qt_module) + +QT += core-private gui-private eglfsdeviceintegration-private eglfs_kms_support-private kms_support-private + +INCLUDEPATH += $$PWD/../../api $$PWD/../eglfs_kms_support + +# Avoid X11 header collision, use generic EGL native types +DEFINES += QT_EGL_NO_X11 + +QMAKE_USE += gbm drm +CONFIG += egl + +SOURCES += $$PWD/qeglfskmsgbmintegration.cpp \ + $$PWD/qeglfskmsgbmdevice.cpp \ + $$PWD/qeglfskmsgbmscreen.cpp \ + $$PWD/qeglfskmsgbmcursor.cpp \ + $$PWD/qeglfskmsgbmwindow.cpp + +HEADERS += $$PWD/qeglfskmsgbmintegration_p.h \ + $$PWD/qeglfskmsgbmdevice_p.h \ + $$PWD/qeglfskmsgbmscreen_p.h \ + $$PWD/qeglfskmsgbmcursor_p.h \ + $$PWD/qeglfskmsgbmwindow_p.h diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp index c802b8e112..b6d2a17079 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp @@ -39,9 +39,9 @@ ** ****************************************************************************/ -#include "qeglfskmsgbmcursor.h" -#include "qeglfskmsgbmscreen.h" -#include "qeglfskmsgbmdevice.h" +#include "qeglfskmsgbmcursor_p.h" +#include "qeglfskmsgbmscreen_p.h" +#include "qeglfskmsgbmdevice_p.h" #include <QtCore/QFile> #include <QtCore/QJsonDocument> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor_p.h index 55420cef62..0d4a472d79 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor_p.h @@ -40,6 +40,17 @@ #ifndef QEGLFSKMSGBMCURSOR_H #define QEGLFSKMSGBMCURSOR_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include <qpa/qplatformcursor.h> #include <QtCore/QList> #include <QtGui/QImage> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp index d32e36b04d..c561b2072e 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qeglfskmsgbmdevice.h" -#include "qeglfskmsgbmscreen.h" +#include "qeglfskmsgbmdevice_p.h" +#include "qeglfskmsgbmscreen_p.h" #include "qeglfsintegration_p.h" @@ -131,14 +131,19 @@ void QEglFSKmsGbmDevice::destroyGlobalCursor() } } -QPlatformScreen *QEglFSKmsGbmDevice::createScreen(const QKmsOutput &output) +void QEglFSKmsGbmDevice::createGlobalCursor(QEglFSKmsGbmScreen *screen) { - QEglFSKmsGbmScreen *screen = new QEglFSKmsGbmScreen(this, output, false); - if (!m_globalCursor && screenConfig()->hwCursor()) { qCDebug(qLcEglfsKmsDebug, "Creating new global GBM mouse cursor"); m_globalCursor = new QEglFSKmsGbmCursor(screen); } +} + +QPlatformScreen *QEglFSKmsGbmDevice::createScreen(const QKmsOutput &output) +{ + QEglFSKmsGbmScreen *screen = new QEglFSKmsGbmScreen(this, output, false); + + createGlobalCursor(screen); return screen; } diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h index 1964b30c5e..5a9cdb1565 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h @@ -42,8 +42,19 @@ #ifndef QEGLFSKMSGBMDEVICE_H #define QEGLFSKMSGBMDEVICE_H -#include "qeglfskmsgbmcursor.h" -#include <qeglfskmsdevice.h> +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qeglfskmsgbmcursor_p.h" +#include <qeglfskmsdevice_p.h> #include <gbm.h> @@ -51,7 +62,7 @@ QT_BEGIN_NAMESPACE class QEglFSKmsScreen; -class QEglFSKmsGbmDevice: public QEglFSKmsDevice +class Q_EGLFS_EXPORT QEglFSKmsGbmDevice: public QEglFSKmsDevice { public: QEglFSKmsGbmDevice(QKmsScreenConfig *screenConfig, const QString &path); @@ -64,6 +75,7 @@ public: QPlatformCursor *globalCursor() const; void destroyGlobalCursor(); + void createGlobalCursor(QEglFSKmsGbmScreen *screen); QPlatformScreen *createScreen(const QKmsOutput &output) override; QPlatformScreen *createHeadlessScreen() override; diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp index caa1187b40..791512237e 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ -#include "qeglfskmsgbmintegration.h" -#include "qeglfskmsgbmdevice.h" -#include "qeglfskmsgbmscreen.h" -#include "qeglfskmsgbmcursor.h" -#include "qeglfskmsgbmwindow.h" +#include "qeglfskmsgbmintegration_p.h" +#include "qeglfskmsgbmdevice_p.h" +#include "qeglfskmsgbmscreen_p.h" +#include "qeglfskmsgbmcursor_p.h" +#include "qeglfskmsgbmwindow_p.h" #include "private/qeglfscursor_p.h" #include <QtCore/QLoggingCategory> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration_p.h index 71f232abf9..823e5f2c09 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration_p.h @@ -42,7 +42,18 @@ #ifndef QEGLFSKMSGBMINTEGRATION_H #define QEGLFSKMSGBMINTEGRATION_H -#include "qeglfskmsintegration.h" +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <private/qeglfskmsintegration_p.h> #include <QtCore/QMap> #include <QtCore/QVariant> @@ -50,7 +61,7 @@ QT_BEGIN_NAMESPACE class QEglFSKmsDevice; -class QEglFSKmsGbmIntegration : public QEglFSKmsIntegration +class Q_EGLFS_EXPORT QEglFSKmsGbmIntegration : public QEglFSKmsIntegration { public: QEglFSKmsGbmIntegration(); diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmmain.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmmain.cpp index 945c8b4255..65203d93c7 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmmain.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmmain.cpp @@ -39,7 +39,7 @@ ****************************************************************************/ #include "private/qeglfsdeviceintegration_p.h" -#include "qeglfskmsgbmintegration.h" +#include "qeglfskmsgbmintegration_p.h" QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp index 8330a97f94..69a8aede56 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp @@ -39,9 +39,9 @@ ** ****************************************************************************/ -#include "qeglfskmsgbmscreen.h" -#include "qeglfskmsgbmdevice.h" -#include "qeglfskmsgbmcursor.h" +#include "qeglfskmsgbmscreen_p.h" +#include "qeglfskmsgbmdevice_p.h" +#include "qeglfskmsgbmcursor_p.h" #include "qeglfsintegration_p.h" #include <QtCore/QLoggingCategory> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen_p.h index 2be1630e19..72986b45c8 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen_p.h @@ -42,7 +42,18 @@ #ifndef QEGLFSKMSGBMSCREEN_H #define QEGLFSKMSGBMSCREEN_H -#include "qeglfskmsscreen.h" +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qeglfskmsscreen_p.h" #include <QMutex> #include <QWaitCondition> @@ -52,7 +63,7 @@ QT_BEGIN_NAMESPACE class QEglFSKmsGbmCursor; -class QEglFSKmsGbmScreen : public QEglFSKmsScreen +class Q_EGLFS_EXPORT QEglFSKmsGbmScreen : public QEglFSKmsScreen { public: QEglFSKmsGbmScreen(QEglFSKmsDevice *device, const QKmsOutput &output, bool headless); @@ -68,13 +79,13 @@ public: void waitForFlip() override; - void flip(); + virtual void flip(); + virtual void updateFlipStatus(); -private: +protected: void flipFinished(); void ensureModeSet(uint32_t fb); void cloneDestFlipFinished(QEglFSKmsGbmScreen *cloneDestScreen); - void updateFlipStatus(); gbm_surface *m_gbm_surface; diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp index b5f34ae200..426fb8f4e9 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp @@ -37,9 +37,9 @@ ** ****************************************************************************/ -#include "qeglfskmsgbmwindow.h" -#include "qeglfskmsgbmintegration.h" -#include "qeglfskmsgbmscreen.h" +#include "qeglfskmsgbmwindow_p.h" +#include "qeglfskmsgbmintegration_p.h" +#include "qeglfskmsgbmscreen_p.h" #include <QtGui/private/qeglconvenience_p.h> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow_p.h index ee4b7978f1..103361b60b 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow_p.h @@ -42,13 +42,24 @@ #ifndef QEGLFSKMSGBMWINDOW_H #define QEGLFSKMSGBMWINDOW_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include "private/qeglfswindow_p.h" QT_BEGIN_NAMESPACE class QEglFSKmsGbmIntegration; -class QEglFSKmsGbmWindow : public QEglFSWindow +class Q_EGLFS_EXPORT QEglFSKmsGbmWindow : public QEglFSWindow { public: QEglFSKmsGbmWindow(QWindow *w, const QEglFSKmsGbmIntegration *integration) diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.h index 8d469879ab..aa321e0982 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.h @@ -40,7 +40,7 @@ #ifndef QEGLFSKMSEGLDEVICE_H #define QEGLFSKMSEGLDEVICE_H -#include <qeglfskmsdevice.h> +#include <qeglfskmsdevice_p.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h index 8fbbe56412..6299c3259a 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h @@ -41,7 +41,7 @@ #ifndef QEGLFSKMSEGLDEVICEINTEGRATION_H #define QEGLFSKMSEGLDEVICEINTEGRATION_H -#include <qeglfskmsintegration.h> +#include <qeglfskmsintegration_p.h> #include <xf86drm.h> #include <xf86drmMode.h> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.h index 961398ba3e..7cede5afbe 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicescreen.h @@ -40,7 +40,7 @@ #ifndef QEGLFSKMSEGLDEVICESCREEN_H #define QEGLFSKMSEGLDEVICESCREEN_H -#include <qeglfskmsscreen.h> +#include <qeglfskmsscreen_p.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/.prev_CMakeLists.txt b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/.prev_CMakeLists.txt index 3d600c52f1..a46d1675c2 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/.prev_CMakeLists.txt +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/.prev_CMakeLists.txt @@ -6,13 +6,12 @@ qt_internal_add_module(EglFsKmsSupport INTERNAL_MODULE - NO_MODULE_HEADERS SOURCES - qeglfskmsdevice.cpp qeglfskmsdevice.h - qeglfskmseventreader.cpp qeglfskmseventreader.h - qeglfskmshelpers.h - qeglfskmsintegration.cpp qeglfskmsintegration.h - qeglfskmsscreen.cpp qeglfskmsscreen.h + qeglfskmsdevice.cpp qeglfskmsdevice_p.h + qeglfskmseventreader.cpp qeglfskmseventreader_p.h + qeglfskmshelpers_p.h + qeglfskmsintegration.cpp qeglfskmsintegration_p.h + qeglfskmsscreen.cpp qeglfskmsscreen_p.h DEFINES QT_EGL_NO_X11 INCLUDE_DIRECTORIES diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/CMakeLists.txt b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/CMakeLists.txt index d71f1407f8..641ef48612 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/CMakeLists.txt +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/CMakeLists.txt @@ -6,13 +6,12 @@ qt_internal_add_module(EglFsKmsSupport INTERNAL_MODULE - NO_MODULE_HEADERS SOURCES - qeglfskmsdevice.cpp qeglfskmsdevice.h - qeglfskmseventreader.cpp qeglfskmseventreader.h - qeglfskmshelpers.h - qeglfskmsintegration.cpp qeglfskmsintegration.h - qeglfskmsscreen.cpp qeglfskmsscreen.h + qeglfskmsdevice.cpp qeglfskmsdevice_p.h + qeglfskmseventreader.cpp qeglfskmseventreader_p.h + qeglfskmshelpers_p.h + qeglfskmsintegration.cpp qeglfskmsintegration_p.h + qeglfskmsscreen.cpp qeglfskmsscreen_p.h DEFINES QT_EGL_NO_X11 INCLUDE_DIRECTORIES diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/eglfs_kms_support.pro b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/eglfs_kms_support.pro index 42807b8862..cdc2e24f33 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/eglfs_kms_support.pro +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/eglfs_kms_support.pro @@ -1,5 +1,5 @@ TARGET = QtEglFsKmsSupport -CONFIG += no_module_headers internal_module +CONFIG += internal_module load(qt_module) QT += core-private gui-private eglfsdeviceintegration-private kms_support-private @@ -17,8 +17,8 @@ SOURCES += $$PWD/qeglfskmsintegration.cpp \ $$PWD/qeglfskmsscreen.cpp \ $$PWD/qeglfskmseventreader.cpp -HEADERS += $$PWD/qeglfskmsintegration.h \ - $$PWD/qeglfskmsdevice.h \ - $$PWD/qeglfskmsscreen.h \ - $$PWD/qeglfskmshelpers.h \ - $$PWD/qeglfskmseventreader.h +HEADERS += $$PWD/qeglfskmsintegration_p.h \ + $$PWD/qeglfskmsdevice_p.h \ + $$PWD/qeglfskmsscreen_p.h \ + $$PWD/qeglfskmshelpers_p.h \ + $$PWD/qeglfskmseventreader_p.h diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp index 4f0b0d7725..7316bd4d5b 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.cpp @@ -38,8 +38,8 @@ ** ****************************************************************************/ -#include "qeglfskmsdevice.h" -#include "qeglfskmsscreen.h" +#include "qeglfskmsdevice_p.h" +#include "qeglfskmsscreen_p.h" #include "private/qeglfsintegration_p.h" #include <QtGui/private/qguiapplication_p.h> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice_p.h index 34908aa60f..006f4a656e 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsdevice_p.h @@ -41,8 +41,19 @@ #ifndef QEGLFSKMSDEVICE_H #define QEGLFSKMSDEVICE_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include "private/qeglfsglobal_p.h" -#include "qeglfskmseventreader.h" +#include "qeglfskmseventreader_p.h" #include <QtKmsSupport/private/qkmsdevice_p.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader.cpp index 645a0ae2e9..67606f895f 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader.cpp @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#include "qeglfskmseventreader.h" -#include "qeglfskmsdevice.h" +#include "qeglfskmseventreader_p.h" +#include "qeglfskmsdevice_p.h" #include <QSocketNotifier> #include <QCoreApplication> #include <QLoggingCategory> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader_p.h index 4aa285b0fe..d5738e71cb 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmseventreader_p.h @@ -40,6 +40,17 @@ #ifndef QEGLFSKKMSEVENTREADER_H #define QEGLFSKKMSEVENTREADER_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include "private/qeglfsglobal_p.h" #include <QObject> #include <QThread> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmshelpers.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmshelpers_p.h index c9e5f04a7b..89607c687b 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmshelpers.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmshelpers_p.h @@ -40,6 +40,17 @@ #ifndef QEGLFSKMSHELPERS_H #define QEGLFSKMSHELPERS_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include <QString> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp index 28b6b7df63..8d15449679 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qeglfskmsintegration.h" -#include "qeglfskmsscreen.h" +#include "qeglfskmsintegration_p.h" +#include "qeglfskmsscreen_p.h" #include <QtKmsSupport/private/qkmsdevice_p.h> @@ -55,18 +55,19 @@ QT_BEGIN_NAMESPACE Q_LOGGING_CATEGORY(qLcEglfsKmsDebug, "qt.qpa.eglfs.kms") QEglFSKmsIntegration::QEglFSKmsIntegration() - : m_device(nullptr), - m_screenConfig(new QKmsScreenConfig) + : m_device(nullptr) { } QEglFSKmsIntegration::~QEglFSKmsIntegration() { - delete m_screenConfig; } void QEglFSKmsIntegration::platformInit() { + qCDebug(qLcEglfsKmsDebug, "platformInit: Load Screen Config"); + m_screenConfig = createScreenConfig(); + qCDebug(qLcEglfsKmsDebug, "platformInit: Opening DRM device"); m_device = createDevice(); if (Q_UNLIKELY(!m_device->open())) @@ -79,6 +80,8 @@ void QEglFSKmsIntegration::platformDestroy() m_device->close(); delete m_device; m_device = nullptr; + delete m_screenConfig; + m_screenConfig = nullptr; } EGLNativeDisplayType QEglFSKmsIntegration::platformDisplay() const @@ -167,4 +170,12 @@ QKmsScreenConfig *QEglFSKmsIntegration::screenConfig() const return m_screenConfig; } +QKmsScreenConfig *QEglFSKmsIntegration::createScreenConfig() +{ + QKmsScreenConfig *screenConfig = new QKmsScreenConfig; + screenConfig->loadConfig(); + + return screenConfig; +} + QT_END_NAMESPACE diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration_p.h index e2c37f60fc..8f7b0e3cb6 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration_p.h @@ -42,6 +42,17 @@ #ifndef QEGLFSKMSINTEGRATION_H #define QEGLFSKMSINTEGRATION_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include "private/qeglfsdeviceintegration_p.h" #include <QtCore/QMap> #include <QtCore/QVariant> @@ -77,9 +88,10 @@ public: protected: virtual QKmsDevice *createDevice() = 0; + virtual QKmsScreenConfig *createScreenConfig(); QKmsDevice *m_device; - QKmsScreenConfig *m_screenConfig; + QKmsScreenConfig *m_screenConfig = nullptr; }; QT_END_NAMESPACE diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp index ad8479d9ad..189dacb3a1 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qeglfskmsscreen.h" -#include "qeglfskmsdevice.h" +#include "qeglfskmsscreen_p.h" +#include "qeglfskmsdevice_p.h" #include "qeglfsintegration_p.h" #include <QtCore/QLoggingCategory> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen_p.h index 9f21a9e54b..db0aca0bd2 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen_p.h @@ -42,6 +42,17 @@ #ifndef QEGLFSKMSSCREEN_H #define QEGLFSKMSSCREEN_H +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + #include "private/qeglfsscreen_p.h" #include <QtCore/QList> #include <QtCore/QMutex> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2device.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2device.h index 3926f809c4..3fd024917b 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2device.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2device.h @@ -42,7 +42,7 @@ #ifndef QEGLFSKMSVSP2DEVICE_H #define QEGLFSKMSVSP2DEVICE_H -#include <qeglfskmsdevice.h> +#include <qeglfskmsdevice_p.h> #include <gbm.h> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2integration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2integration.h index a67d05488c..709c1812e7 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2integration.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2integration.h @@ -42,7 +42,7 @@ #ifndef QEGLFSKMSVSP2INTEGRATION_H #define QEGLFSKMSVSP2INTEGRATION_H -#include "qeglfskmsintegration.h" +#include "qeglfskmsintegration_p.h" #include <QtCore/QMap> #include <QtCore/QVariant> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2screen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2screen.cpp index c255bc84b7..981adbd510 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2screen.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2screen.cpp @@ -41,7 +41,7 @@ #include "qeglfskmsvsp2screen.h" #include "qeglfskmsvsp2device.h" -#include <qeglfskmshelpers.h> +#include <qeglfskmshelpers_p.h> #include <QtCore/QLoggingCategory> #include <QtGui/private/qguiapplication_p.h> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2screen.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2screen.h index b3dfa77e1b..a74942d185 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2screen.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qeglfskmsvsp2screen.h @@ -42,7 +42,7 @@ #ifndef QEGLFSKMSVSP2SCREEN_H #define QEGLFSKMSVSP2SCREEN_H -#include "qeglfskmsscreen.h" +#include "qeglfskmsscreen_p.h" #include "qvsp2blendingdevice.h" #include <QtCore/QMutex> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qlinuxmediadevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qlinuxmediadevice.cpp index f77430d7a0..241afdcc31 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qlinuxmediadevice.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qlinuxmediadevice.cpp @@ -39,7 +39,7 @@ #include "qeglfsintegration_p.h" #include "qlinuxmediadevice.h" -#include <qeglfskmshelpers.h> +#include <qeglfskmshelpers_p.h> #include <QtCore/QLoggingCategory> #include <QtCore/QSize> diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp index 132806a2e3..2f00f679b0 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_vsp2/qvsp2blendingdevice.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qvsp2blendingdevice.h" -#include <qeglfskmshelpers.h> +#include <qeglfskmshelpers_p.h> #include <QDebug> #include <QtCore/QLoggingCategory> diff --git a/src/plugins/platforms/linuxfb/qlinuxfbdrmscreen.cpp b/src/plugins/platforms/linuxfb/qlinuxfbdrmscreen.cpp index 1c99ac8cb1..417ca331f9 100644 --- a/src/plugins/platforms/linuxfb/qlinuxfbdrmscreen.cpp +++ b/src/plugins/platforms/linuxfb/qlinuxfbdrmscreen.cpp @@ -399,6 +399,7 @@ QLinuxFbDrmScreen::~QLinuxFbDrmScreen() bool QLinuxFbDrmScreen::initialize() { m_screenConfig = new QKmsScreenConfig; + m_screenConfig->loadConfig(); m_device = new QLinuxFbDevice(m_screenConfig); if (!m_device->open()) return false; |