diff options
Diffstat (limited to 'src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp')
-rw-r--r-- | src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp index 20cc8bd9f..e4da26133 100644 --- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp +++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp @@ -132,13 +132,16 @@ void QWaylandEglWindow::updateSurface(bool create) m_resize = true; } - } else if (create) { - m_waylandEglWindow = wl_egl_window_create(object(), sizeWithMargins.width(), sizeWithMargins.height()); + } else if (create && wl_surface::isInitialized()) { + ::wl_surface *wlSurface = wl_surface::object(); + m_waylandEglWindow = wl_egl_window_create(wlSurface, sizeWithMargins.width(), sizeWithMargins.height()); } - if (!m_eglSurface && create) { + if (!m_eglSurface && m_waylandEglWindow && create) { EGLNativeWindowType eglw = (EGLNativeWindowType) m_waylandEglWindow; m_eglSurface = eglCreateWindowSurface(m_clientBufferIntegration->eglDisplay(), m_eglConfig, eglw, 0); + if (Q_UNLIKELY(m_eglSurface == EGL_NO_SURFACE)) + qWarning("QtWayland: Could not create EGL surface (EGL error 0x%x)\n", eglGetError()); } } } |