From 6119d12d7d7d63b00891e7fa21a5fab6751fb062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 6 Sep 2011 16:44:59 +0200 Subject: Fixed tst_QGL::partialGLWidgetUpdates. Change-Id: Ie37051e28b199b5d159f5be05be41efbd17fdf08 Reviewed-on: http://codereview.qt.nokia.com/4273 Reviewed-by: Qt Sanity Bot Reviewed-by: Gunnar Sletta --- src/plugins/platforms/xcb/qxcbintegration.cpp | 33 +++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp index 41650efcdb..3d181dcf0c 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -125,15 +125,43 @@ QPlatformWindow *QXcbIntegration::createPlatformWindow(QWindow *window) const class QEGLXcbPlatformContext : public QEGLPlatformContext { public: - QEGLXcbPlatformContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share, EGLDisplay display) + QEGLXcbPlatformContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share, + EGLDisplay display, QXcbConnection *c) : QEGLPlatformContext(glFormat, share, display) + , m_connection(c) { + Q_XCB_NOOP(m_connection); + } + + void swapBuffers(QPlatformSurface *surface) + { + Q_XCB_NOOP(m_connection); + QEGLPlatformContext::swapBuffers(surface); + Q_XCB_NOOP(m_connection); + } + + bool makeCurrent(QPlatformSurface *surface) + { + Q_XCB_NOOP(m_connection); + bool ret = QEGLPlatformContext::makeCurrent(surface); + Q_XCB_NOOP(m_connection); + return ret; + } + + void doneCurrent() + { + Q_XCB_NOOP(m_connection); + QEGLPlatformContext::doneCurrent(); + Q_XCB_NOOP(m_connection); } EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface) { return static_cast(surface)->eglSurface()->surface(); } + +private: + QXcbConnection *m_connection; }; #endif @@ -143,7 +171,8 @@ QPlatformOpenGLContext *QXcbIntegration::createPlatformOpenGLContext(QOpenGLCont #if defined(XCB_USE_GLX) return new QGLXContext(screen, context->format(), context->shareHandle()); #elif defined(XCB_USE_EGL) - return new QEGLXcbPlatformContext(context->format(), context->shareHandle(), screen->connection()->egl_display()); + return new QEGLXcbPlatformContext(context->format(), context->shareHandle(), + screen->connection()->egl_display(), screen->connection()); #elif defined(XCB_USE_DRI2) return new QDri2Context(context->format(), context->shareHandle()); #endif -- cgit v1.2.3