File indexing completed on 2024-05-19 16:34:01

0001 /*
0002     KWin - the KDE window manager
0003     This file is part of the KDE project.
0004 
0005     SPDX-FileCopyrightText: 2021 Xaver Hugl <xaver.hugl@gmail.com>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 #pragma once
0010 
0011 #include "kwin_export.h"
0012 
0013 #include "output.h"
0014 
0015 #include <QPoint>
0016 #include <QSize>
0017 
0018 namespace KWin
0019 {
0020 
0021 class KWIN_EXPORT OutputChangeSet
0022 {
0023 public:
0024     std::weak_ptr<OutputMode> mode;
0025     bool enabled;
0026     QPoint pos;
0027     float scale;
0028     Output::Transform transform;
0029     uint32_t overscan;
0030     Output::RgbRange rgbRange;
0031     RenderLoop::VrrPolicy vrrPolicy;
0032 };
0033 
0034 class KWIN_EXPORT OutputConfiguration
0035 {
0036 public:
0037     std::shared_ptr<OutputChangeSet> changeSet(Output *output);
0038     std::shared_ptr<OutputChangeSet> constChangeSet(Output *output) const;
0039 
0040 private:
0041     QMap<Output *, std::shared_ptr<OutputChangeSet>> m_properties;
0042 };
0043 
0044 }