diff options
author | Samuel Rødal <samuel.rodal@digia.com> | 2013-04-19 08:59:28 +0200 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@digia.com> | 2013-04-23 14:18:41 +0200 |
commit | bbc20f045dbce61fc77dec2af895f348c3a3501e (patch) | |
tree | e8e55f293a82b619c3b8dc98534484fae2d0cd40 /src/plugins/platforms/qwayland-xcomposite-egl | |
parent | 755fac09a8656545c272528e531ba4732154ae3c (diff) | |
download | qtwayland-bbc20f045dbce61fc77dec2af895f348c3a3501e.tar.gz |
Fixed client being blocked in xcomposite integrations.
There's no need to wait for a sync until a frame has been rendered. As
it was the client ended up waiting for a sync that never came.
Change-Id: I41828d76ae62f1fa13f15bc050a16dd8e384fff4
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'src/plugins/platforms/qwayland-xcomposite-egl')
-rw-r--r-- | src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.cpp | 23 | ||||
-rw-r--r-- | src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.h | 6 |
2 files changed, 0 insertions, 29 deletions
diff --git a/src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.cpp b/src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.cpp index c7053b51..f1768991 100644 --- a/src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.cpp +++ b/src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.cpp @@ -66,7 +66,6 @@ QWaylandXCompositeEGLWindow::QWaylandXCompositeEGLWindow(QWindow *window, QWayla , m_xWindow(0) , m_config(q_configFromGLFormat(glxIntegration->eglDisplay(), window->format(), true, EGL_WINDOW_BIT | EGL_PIXMAP_BIT)) , m_surface(0) - , m_waitingForSync(false) { } @@ -137,14 +136,6 @@ void QWaylandXCompositeEGLWindow::createEglSurface() (uint32_t)m_xWindow, size); attach(m_buffer, 0, 0); - - m_waitingForSync = true; - struct wl_callback *callback = wl_display_sync(m_glxIntegration->waylandDisplay()->wl_display()); - wl_callback_add_listener(callback,&m_callback_listener,&m_waitingForSync); - - m_glxIntegration->waylandDisplay()->flushRequests(); - while (m_waitingForSync) - m_glxIntegration->waylandDisplay()->blockingReadEvents(); } void QWaylandXCompositeEGLWindow::requestActivateWindow() @@ -155,17 +146,3 @@ void QWaylandXCompositeEGLWindow::requestActivateWindow() QWaylandWindow::requestActivateWindow(); } - -const struct wl_callback_listener QWaylandXCompositeEGLWindow::m_callback_listener = { - QWaylandXCompositeEGLWindow::done -}; - -void QWaylandXCompositeEGLWindow::done(void *data, - struct wl_callback *callback, - uint32_t time) -{ - Q_UNUSED(time); - bool *waitingForSync = static_cast<bool *>(data); - *waitingForSync=false; - wl_callback_destroy(callback); -} diff --git a/src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.h b/src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.h index 895ac28f..98f0ed73 100644 --- a/src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.h +++ b/src/plugins/platforms/qwayland-xcomposite-egl/qwaylandxcompositeeglwindow.h @@ -71,12 +71,6 @@ private: Window m_xWindow; EGLConfig m_config; EGLSurface m_surface; - - bool m_waitingForSync; - static const struct wl_callback_listener m_callback_listener; - static void done(void *data, - struct wl_callback *wl_callback, - uint32_t time); }; QT_END_NAMESPACE |