KWin
Loading...
Searching...
No Matches
outputconfiguration.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2021 Xaver Hugl <xaver.hugl@gmail.com>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9#pragma once
10
11#include "kwin_export.h"
12
13#include "output.h"
14
15#include <QPoint>
16#include <QSize>
17
18namespace KWin
19{
20
21class IccProfile;
22
23class KWIN_EXPORT OutputChangeSet
24{
25public:
26 std::optional<std::weak_ptr<OutputMode>> mode;
27 std::optional<bool> enabled;
28 std::optional<QPoint> pos;
29 std::optional<double> scale;
30 std::optional<OutputTransform> transform;
31 std::optional<OutputTransform> manualTransform;
32 std::optional<uint32_t> overscan;
33 std::optional<Output::RgbRange> rgbRange;
34 std::optional<VrrPolicy> vrrPolicy;
35 std::optional<bool> highDynamicRange;
36 std::optional<uint32_t> sdrBrightness;
37 std::optional<bool> wideColorGamut;
38 std::optional<Output::AutoRotationPolicy> autoRotationPolicy;
39 std::optional<QString> iccProfilePath;
40 std::optional<std::shared_ptr<IccProfile>> iccProfile;
41 std::optional<std::optional<double>> maxPeakBrightnessOverride;
42 std::optional<std::optional<double>> maxAverageBrightnessOverride;
43 std::optional<std::optional<double>> minBrightnessOverride;
44 std::optional<double> sdrGamutWideness;
45};
46
47class KWIN_EXPORT OutputConfiguration
48{
49public:
50 std::shared_ptr<OutputChangeSet> changeSet(Output *output);
51 std::shared_ptr<OutputChangeSet> constChangeSet(Output *output) const;
52
53private:
54 QMap<Output *, std::shared_ptr<OutputChangeSet>> m_properties;
55};
56
57}
std::optional< bool > wideColorGamut
std::optional< std::optional< double > > minBrightnessOverride
std::optional< uint32_t > sdrBrightness
std::optional< VrrPolicy > vrrPolicy
std::optional< std::weak_ptr< OutputMode > > mode
std::optional< std::shared_ptr< IccProfile > > iccProfile
std::optional< double > sdrGamutWideness
std::optional< Output::RgbRange > rgbRange
std::optional< QPoint > pos
std::optional< double > scale
std::optional< std::optional< double > > maxPeakBrightnessOverride
std::optional< uint32_t > overscan
std::optional< bool > highDynamicRange
std::optional< std::optional< double > > maxAverageBrightnessOverride
std::optional< OutputTransform > manualTransform
std::optional< bool > enabled
std::optional< Output::AutoRotationPolicy > autoRotationPolicy
std::optional< QString > iccProfilePath
std::optional< OutputTransform > transform