From ede6412104c3cd9d9f30c62d90fa33a23bd58c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 7 Nov 2012 16:20:20 +0100 Subject: Report threaded rendering support in xcb when using event reader thread. Threaded rendering had issues due to bugs in xcb before xcb_poll_for_queued_event() was added. Now xcb_poll_for_queued_event() is resolved at runtime and if present xcb events are received on a separate thread. Change-Id: I05420c8c9f9a20f41ce0f86ed255bc8b295e7fe5 Reviewed-by: Shawn Rutledge Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/plugins/platforms/xcb/qxcbconnection.h | 2 ++ src/plugins/platforms/xcb/qxcbintegration.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h index f466928360..c67acb3218 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.h +++ b/src/plugins/platforms/xcb/qxcbconnection.h @@ -376,6 +376,8 @@ public: bool hasXRandr() const { return has_randr_extension; } bool hasInputShape() const { return has_input_shape; } + bool supportsThreadedRendering() const { return m_reader->isRunning(); } + xcb_timestamp_t getTimestamp(); private slots: diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp index 2ffe53c04b..22e5386937 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -214,7 +214,7 @@ bool QXcbIntegration::hasCapability(QPlatformIntegration::Capability cap) const #else case OpenGL: return false; #endif - case ThreadedOpenGL: return false; + case ThreadedOpenGL: return m_connections.at(0)->supportsThreadedRendering(); case WindowMasks: return true; case MultipleWindows: return true; default: return QPlatformIntegration::hasCapability(cap); -- cgit v1.2.3