diff --git a/src/plugins/platforms/wayland/gl_integration/wayland_egl/qwaylandglcontext.cpp b/src/plugins/platforms/wayland/gl_integration/wayland_egl/qwaylandglcontext.cpp index f2671ae2fbd75b309d3fe9edfc233983e4a921ef..e0af14ae5de8195b1a487cbfdc50ec65c1343323 100644 --- a/src/plugins/platforms/wayland/gl_integration/wayland_egl/qwaylandglcontext.cpp +++ b/src/plugins/platforms/wayland/gl_integration/wayland_egl/qwaylandglcontext.cpp @@ -49,7 +49,6 @@ #include <QtGui/QPlatformOpenGLContext> #include <QtGui/QSurfaceFormat> -#include <QtCore/QMutex> QWaylandGLContext::QWaylandGLContext(EGLDisplay eglDisplay, const QSurfaceFormat &format, QPlatformOpenGLContext *share) : QPlatformOpenGLContext() @@ -85,13 +84,8 @@ void QWaylandGLContext::doneCurrent() eglMakeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); } -// lock to sync with QWaylandDisplay event loop ( defined in qwaylanddisplay.cpp ) -extern QMutex g_waylandLock; - void QWaylandGLContext::swapBuffers(QPlatformSurface *surface) { - QMutexLocker l(&g_waylandLock); - EGLSurface eglSurface = static_cast<QWaylandEglWindow *>(surface)->eglSurface(); eglSwapBuffers(m_eglDisplay, eglSurface); } diff --git a/src/plugins/platforms/wayland/qwaylanddisplay.cpp b/src/plugins/platforms/wayland/qwaylanddisplay.cpp index b1b1d33571ee85b46a12d24a2ab53b0a8568ad08..bf21e0b46db5890e7c4fab2dbbd2784c989a6703 100644 --- a/src/plugins/platforms/wayland/qwaylanddisplay.cpp +++ b/src/plugins/platforms/wayland/qwaylanddisplay.cpp @@ -70,11 +70,6 @@ #include <stdio.h> #include <errno.h> -#include <QMutex> - -// lock used to syncronize swap-buffers with the display-event-loop -QMutex g_waylandLock; - #include <QtCore/QDebug> struct wl_surface *QWaylandDisplay::createSurface(void *handle) @@ -184,32 +179,27 @@ void QWaylandDisplay::flushRequests() void QWaylandDisplay::readEvents() { - if (g_waylandLock.tryLock()) - { - fd_set fds; - FD_ZERO(&fds); - FD_SET(mFd, &fds); - - fd_set nds; - FD_ZERO(&nds); - fd_set rs = fds; - fd_set ws = nds; - fd_set es = nds; - timeval timeout; - - timeout.tv_sec = 0; - timeout.tv_usec = 0; - - int ret = ::select(mFd+1, &rs, &ws, &es, &timeout ); - - if (ret <= 0) { - g_waylandLock.unlock(); - return; - } - - wl_display_iterate(mDisplay, WL_DISPLAY_READABLE); - g_waylandLock.unlock(); + fd_set fds; + FD_ZERO(&fds); + FD_SET(mFd, &fds); + + fd_set nds; + FD_ZERO(&nds); + fd_set rs = fds; + fd_set ws = nds; + fd_set es = nds; + timeval timeout; + + timeout.tv_sec = 0; + timeout.tv_usec = 0; + + int ret = ::select(mFd+1, &rs, &ws, &es, &timeout ); + + if (ret <= 0) { + return; } + + wl_display_iterate(mDisplay, WL_DISPLAY_READABLE); } void QWaylandDisplay::blockingReadEvents()