diff options
author | Samuel Rødal <samuel.rodal@digia.com> | 2012-11-07 16:20:20 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-08 22:47:42 +0100 |
commit | ede6412104c3cd9d9f30c62d90fa33a23bd58c68 (patch) | |
tree | 24b4d3b1b5640c169936d22b33300ab40b34e8f9 /src | |
parent | e24c8d1266fcf42292b48a7dc119dd5f3a217989 (diff) |
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 <shawn.rutledge@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbconnection.h | 2 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbintegration.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
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); |