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/hardware_integration | |
parent | b162e83c498b578523cef3360fa7651cfc23b4a9 (diff) | |
download | qtwayland-4f86a16f0366cea103b68d2e39e86eb3bbd30734.tar.gz |
Enable the HW integration extension by default again
Change-Id: I8b0f5bd6e8ec179ab3de87228fa7569870778a8f
Diffstat (limited to 'src/compositor/hardware_integration')
3 files changed, 144 insertions, 0 deletions
diff --git a/src/compositor/hardware_integration/hardware_integration.pri b/src/compositor/hardware_integration/hardware_integration.pri index 68cbd4c5..2737a6f0 100644 --- a/src/compositor/hardware_integration/hardware_integration.pri +++ b/src/compositor/hardware_integration/hardware_integration.pri @@ -4,6 +4,7 @@ isEmpty(QT_WAYLAND_GL_CONFIG):QT_WAYLAND_GL_CONFIG = $$(QT_WAYLAND_GL_CONFIG) CONFIG += wayland-scanner WAYLANDSERVERSOURCES += \ ../extensions/server-buffer-extension.xml \ + ../extensions/hardware-integration.xml \ HEADERS += \ hardware_integration/qwlclientbufferintegration_p.h \ @@ -12,6 +13,7 @@ isEmpty(QT_WAYLAND_GL_CONFIG):QT_WAYLAND_GL_CONFIG = $$(QT_WAYLAND_GL_CONFIG) hardware_integration/qwlserverbufferintegration_p.h \ hardware_integration/qwlserverbufferintegrationfactory_p.h \ hardware_integration/qwlserverbufferintegrationplugin_p.h \ + hardware_integration/qwlhwintegration_p.h \ SOURCES += \ hardware_integration/qwlclientbufferintegration.cpp \ @@ -20,6 +22,7 @@ isEmpty(QT_WAYLAND_GL_CONFIG):QT_WAYLAND_GL_CONFIG = $$(QT_WAYLAND_GL_CONFIG) hardware_integration/qwlserverbufferintegration.cpp \ hardware_integration/qwlserverbufferintegrationfactory.cpp \ hardware_integration/qwlserverbufferintegrationplugin.cpp \ + hardware_integration/qwlhwintegration.cpp \ DEFINES += QT_COMPOSITOR_WAYLAND_GL } else { diff --git a/src/compositor/hardware_integration/qwlhwintegration.cpp b/src/compositor/hardware_integration/qwlhwintegration.cpp new file mode 100644 index 00000000..84cbf580 --- /dev/null +++ b/src/compositor/hardware_integration/qwlhwintegration.cpp @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtWaylandCompositor module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qwlhwintegration_p.h" + +#include <QtCompositor/QWaylandCompositor> + +QT_BEGIN_NAMESPACE + +namespace QtWayland { + +HardwareIntegration::HardwareIntegration(QWaylandCompositor *compositor) + : QWaylandExtensionTemplate<HardwareIntegration>(compositor) + , qt_hardware_integration(compositor->display(), 1) +{ +} + +void HardwareIntegration::setClientBufferIntegration(const QString &name) +{ + m_client_buffer_integration = name; +} +void HardwareIntegration::setServerBufferIntegration(const QString &name) +{ + m_server_buffer_integration = name; +} + +void HardwareIntegration::hardware_integration_bind_resource(Resource *resource) +{ + if (m_client_buffer_integration.size()) + send_client_backend(resource->handle, m_client_buffer_integration); + if (m_server_buffer_integration.size()) + send_server_backend(resource->handle, m_server_buffer_integration); +} + +} + +QT_END_NAMESPACE diff --git a/src/compositor/hardware_integration/qwlhwintegration_p.h b/src/compositor/hardware_integration/qwlhwintegration_p.h new file mode 100644 index 00000000..d3077ef5 --- /dev/null +++ b/src/compositor/hardware_integration/qwlhwintegration_p.h @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtWaylandCompositor module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QWLHWINTEGRATION_P_H +#define QWLHWINTEGRATION_P_H + +#include <QtCompositor/private/qwayland-server-hardware-integration.h> + +#include <QtCompositor/QWaylandExtension> + +#include <QtCore/QString> + +QT_BEGIN_NAMESPACE + +class QWaylandCompositor; + +namespace QtWayland { + +class HardwareIntegration : public QWaylandExtensionTemplate<HardwareIntegration>, public QtWaylandServer::qt_hardware_integration +{ +public: + HardwareIntegration(QWaylandCompositor *compositor); + + void setClientBufferIntegration(const QString &name); + void setServerBufferIntegration(const QString &name); + +protected: + void hardware_integration_bind_resource(Resource *resource); + +private: + QString m_client_buffer_integration; + QString m_server_buffer_integration; +}; + +} + +QT_END_NAMESPACE +#endif |