File indexing completed on 2024-05-19 05:32:40

0001 /*
0002     SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
0003     SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 #pragma once
0008 
0009 #include <QRegion>
0010 
0011 #include "qwayland-server-wayland.h"
0012 
0013 namespace KWin
0014 {
0015 class RegionInterface : public QtWaylandServer::wl_region
0016 {
0017 public:
0018     static RegionInterface *get(wl_resource *native);
0019     explicit RegionInterface(wl_resource *resource);
0020 
0021     QRegion region() const;
0022 
0023 protected:
0024     void region_destroy_resource(Resource *resource) override;
0025     void region_destroy(Resource *resource) override;
0026     void region_add(Resource *resource, int32_t x, int32_t y, int32_t width, int32_t height) override;
0027     void region_subtract(Resource *resource, int32_t x, int32_t y, int32_t width, int32_t height) override;
0028 
0029 private:
0030     QRegion m_region;
0031 };
0032 
0033 } // namespace KWin