File indexing completed on 2024-05-19 05:32:46
0001 /* 0002 SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #pragma once 0008 0009 #include "kwin_export.h" 0010 0011 #include <QObject> 0012 #include <memory> 0013 0014 namespace KWin 0015 { 0016 class Display; 0017 class ViewporterInterfacePrivate; 0018 0019 /** 0020 * The ViewporterInterface is an extension that allows clients to crop and scale surfaces. 0021 * 0022 * The ViewporterInterface extensions provides a way for Wayland clients to crop and scale their 0023 * surfaces. This effectively breaks the direct connection between the buffer and the surface size. 0024 * 0025 * ViewporterInterface corresponds to the Wayland interface @c wp_viewporter. 0026 */ 0027 class KWIN_EXPORT ViewporterInterface : public QObject 0028 { 0029 Q_OBJECT 0030 0031 public: 0032 explicit ViewporterInterface(Display *display, QObject *parent = nullptr); 0033 ~ViewporterInterface() override; 0034 0035 private: 0036 std::unique_ptr<ViewporterInterfacePrivate> d; 0037 }; 0038 0039 } // namespace KWin