summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-31 14:58:01 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-31 15:42:55 +0200
commit4f86a16f0366cea103b68d2e39e86eb3bbd30734 (patch)
treec3ed84afaf4d35cbba9a88a1fde8a15a1c1336d4 /src/compositor/compositor_api
parentb162e83c498b578523cef3360fa7651cfc23b4a9 (diff)
Enable the HW integration extension by default again
Diffstat (limited to 'src/compositor/compositor_api')
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.cpp25
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.h4
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor_p.h1
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;