File indexing completed on 2024-05-12 04:00:24

0001 /*
0002     SPDX-FileCopyrightText: 2013 Martin Gräßlin <mgraesslin@kde.org>
0003     SPDX-FileCopyrightText: 2023 David Redondo <kde@david-redondo.de>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #pragma once
0009 
0010 #include "logging.h"
0011 
0012 #include <qwayland-wayland.h>
0013 
0014 #include <QSize>
0015 #include <QWaylandClientExtensionTemplate>
0016 
0017 #include <memory>
0018 
0019 class ShmBuffer : public QtWayland::wl_buffer
0020 {
0021 public:
0022     ShmBuffer(::wl_buffer *buffer);
0023     ~ShmBuffer();
0024 };
0025 
0026 class Shm : public QWaylandClientExtensionTemplate<Shm>, public QtWayland::wl_shm
0027 {
0028 public:
0029     static Shm *instance();
0030     ~Shm();
0031     std::unique_ptr<ShmBuffer> createBuffer(const QImage &image);
0032 
0033 private:
0034     Shm(QObject *parent);
0035 };