Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.15.0
-
None
-
Raspberry Pi
-
-
7d1debe004cbf3e0a1561dd234fbedab9b2ab3f9 (qt/qtwayland/dev) 96cfbda63a249385eef02e7996098079569a13b8 (qt/qtwayland/5.15)
Description
QT5wayland commit d58008c4310f99d0faebcfb2fd9aa9296b813ecf broke the brcm integration in qt5wayland.
This bug can be fixed by applying this change
--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglintegration.cpp +++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglintegration.cpp @@ -78,6 +78,7 @@ void QWaylandBrcmEglIntegration::initialize(QWaylandDisplay *waylandDisplay) { + m_display = waylandDisplay; m_waylandDisplay = waylandDisplay->wl_display(); waylandDisplay->addRegistryListener(wlDisplayHandleGlobal, this); EGLint major,minor; @@ -111,7 +112,7 @@ QWaylandWindow *QWaylandBrcmEglIntegration::createEglWindow(QWindow *window) { - return new QWaylandBrcmEglWindow(window); + return new QWaylandBrcmEglWindow(window, m_display); } QPlatformOpenGLContext *QWaylandBrcmEglIntegration::createPlatformOpenGLContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share) const--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglintegration.h +++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglintegration.h @@ -93,6 +93,8 @@ struct qt_brcm *m_waylandBrcm = nullptr; EGLDisplay m_eglDisplay = EGL_NO_DISPLAY; + + QWaylandDisplay *m_display = nullptr; }; }--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp +++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp @@ -124,8 +124,8 @@ struct wl_event_queue *m_eventQueue = nullptr; }; -QWaylandBrcmEglWindow::QWaylandBrcmEglWindow(QWindow *window) - : QWaylandWindow(window) +QWaylandBrcmEglWindow::QWaylandBrcmEglWindow(QWindow *window, QWaylandDisplay *display) + : QWaylandWindow(window, display) , m_eglIntegration(static_cast<QWaylandBrcmEglIntegration *>(mDisplay->clientBufferIntegration())) , m_format(window->format()) , m_eventQueue(wl_display_create_queue(mDisplay->wl_display()))--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.h +++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.h @@ -58,7 +58,7 @@ { Q_OBJECT public: - QWaylandBrcmEglWindow(QWindow *window); + QWaylandBrcmEglWindow(QWindow *window, QWaylandDisplay *display); ~QWaylandBrcmEglWindow(); WindowType windowType() const override; void setGeometry(const QRect &rect) override;