diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-31 14:58:01 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-31 15:42:55 +0200 |
commit | 4f86a16f0366cea103b68d2e39e86eb3bbd30734 (patch) | |
tree | c3ed84afaf4d35cbba9a88a1fde8a15a1c1336d4 /src/compositor/compositor_api | |
parent | b162e83c498b578523cef3360fa7651cfc23b4a9 (diff) |
Enable the HW integration extension by default again
Change-Id: I8b0f5bd6e8ec179ab3de87228fa7569870778a8f
Diffstat (limited to 'src/compositor/compositor_api')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.cpp | 25 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.h | 4 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor_p.h | 1 |
3 files changed, 29 insertions, 1 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp index f798539e2..526738e11 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.cpp +++ b/src/compositor/compositor_api/qwaylandcompositor.cpp @@ -57,9 +57,9 @@ #include "hardware_integration/qwlclientbufferintegrationfactory_p.h" #include "hardware_integration/qwlserverbufferintegration_p.h" #include "hardware_integration/qwlserverbufferintegrationfactory_p.h" +#include "hardware_integration/qwlhwintegration_p.h" #include "extensions/qwaylandwindowmanagerextension.h" -#include "extensions/qwlhwintegration_p.h" #include "qwaylandxkb.h" #include "qwaylandshmformathelper.h" @@ -130,6 +130,7 @@ public: QWaylandCompositorPrivate::QWaylandCompositorPrivate(QWaylandCompositor *compositor) : display(wl_display_create()) #if defined (QT_COMPOSITOR_WAYLAND_GL) + , use_hw_integration_extension(true) , client_buffer_integration(0) , server_buffer_integration(0) #endif @@ -243,6 +244,9 @@ void QWaylandCompositorPrivate::initializeHardwareIntegration() { #ifdef QT_COMPOSITOR_WAYLAND_GL Q_Q(QWaylandCompositor); + if (use_hw_integration_extension) + hw_integration.reset(new QtWayland::HardwareIntegration(q)); + loadClientBufferIntegration(); loadServerBufferIntegration(); @@ -568,4 +572,23 @@ QWaylandInputDevice *QWaylandCompositor::inputDeviceFor(QInputEvent *inputEvent) return dev; } +bool QWaylandCompositor::useHardwareIntegrationExtension() const +{ + Q_D(const QWaylandCompositor); + return d->use_hw_integration_extension; +} + +void QWaylandCompositor::setUseHardwareIntegrationExtension(bool use) +{ + Q_D(QWaylandCompositor); + if (use == d->use_hw_integration_extension) + return; + + if (d->initialized) + qWarning("Setting QWaylandCompositor::useHardwareIntegrationExtension after initialization has no effect"); + + d->use_hw_integration_extension = use; + useHardwareIntegrationExtensionChanged(); +} + QT_END_NAMESPACE diff --git a/src/compositor/compositor_api/qwaylandcompositor.h b/src/compositor/compositor_api/qwaylandcompositor.h index ddc6db11f..4e65e95f4 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.h +++ b/src/compositor/compositor_api/qwaylandcompositor.h @@ -74,6 +74,7 @@ class Q_COMPOSITOR_EXPORT QWaylandCompositor : public QObject, public QWaylandEx Q_PROPERTY(bool retainedSelection READ retainedSelectionEnabled WRITE setRetainedSelectionEnabled) Q_PROPERTY(QWaylandOutputSpace *primaryOutputSpace READ primaryOutputSpace WRITE setPrimaryOutputSpace NOTIFY primaryOutputSpaceChanged) Q_PROPERTY(QWaylandOutput *primaryOutput READ primaryOutput NOTIFY primaryOutputChanged) + Q_PROPERTY(bool useHardwareIntegrationExtension READ useHardwareIntegrationExtension WRITE setUseHardwareIntegrationExtension NOTIFY useHardwareIntegrationExtensionChanged) public: QWaylandCompositor(QObject *parent = 0); @@ -121,6 +122,8 @@ public: QWaylandInputDevice *inputDeviceFor(QInputEvent *inputEvent); + bool useHardwareIntegrationExtension() const; + void setUseHardwareIntegrationExtension(bool use); public Q_SLOTS: void cleanupGraphicsResources(); void processWaylandEvents(); @@ -135,6 +138,7 @@ Q_SIGNALS: void primaryOutputChanged(); void outputSpacesChanged(); + void useHardwareIntegrationExtensionChanged(); protected: virtual void retainedSelectionReceived(QMimeData *mimeData); virtual QWaylandOutput *createOutput(QWaylandOutputSpace *outputSpace, diff --git a/src/compositor/compositor_api/qwaylandcompositor_p.h b/src/compositor/compositor_api/qwaylandcompositor_p.h index 8bc5a5000..b93422378 100644 --- a/src/compositor/compositor_api/qwaylandcompositor_p.h +++ b/src/compositor/compositor_api/qwaylandcompositor_p.h @@ -125,6 +125,7 @@ protected: QList<QWaylandClient *> clients; #ifdef QT_COMPOSITOR_WAYLAND_GL + bool use_hw_integration_extension; QScopedPointer<QtWayland::HardwareIntegration> hw_integration; QScopedPointer<QtWayland::ClientBufferIntegration> client_buffer_integration; QScopedPointer<QtWayland::ServerBufferIntegration> server_buffer_integration; |