11#include <kwin_export.h> 
   28class OutputConfiguration;
 
   29class ColorTransformation;
 
   76    QSizeF map(
const QSizeF &size) 
const;
 
   77    QSize map(
const QSize &size) 
const;
 
   82    QRectF map(
const QRectF &rect, 
const QSizeF &bounds) 
const;
 
   83    QRect map(
const QRect &rect, 
const QSize &bounds) 
const;
 
   88    QPointF map(
const QPointF &point, 
const QSizeF &bounds) 
const;
 
   89    QPoint map(
const QPoint &point, 
const QSize &bounds) 
const;
 
  100    QMatrix4x4 toMatrix() 
const;
 
  103    Kind m_kind = Kind::Normal;
 
 
  113    Q_DECLARE_FLAGS(Flags, Flag)
 
  115    OutputMode(
const QSize &size, uint32_t refreshRate, Flags flags = {});
 
  119    uint32_t refreshRate() 
const;
 
  124    const uint32_t m_refreshRate;
 
 
  134    Q_PROPERTY(QRect geometry READ geometry NOTIFY geometryChanged)
 
  135    Q_PROPERTY(qreal devicePixelRatio READ scale NOTIFY scaleChanged)
 
  136    Q_PROPERTY(QString name READ name CONSTANT)
 
  137    Q_PROPERTY(QString manufacturer READ manufacturer CONSTANT)
 
  138    Q_PROPERTY(QString model READ model CONSTANT)
 
  139    Q_PROPERTY(QString serialNumber READ serialNumber CONSTANT)
 
  155        HighDynamicRange = 1 << 4,
 
  156        WideColorGamut = 1 << 5,
 
  157        AutoRotation = 1 << 6,
 
 
  161    Q_DECLARE_FLAGS(Capabilities, Capability)
 
  187    explicit Output(QObject *parent = 
nullptr);
 
  196    QRect mapFromGlobal(
const QRect &rect) 
const;
 
  201    QRectF mapFromGlobal(
const QRectF &rect) 
const;
 
  206    QRectF mapToGlobal(
const QRectF &rect) 
const;
 
  208    Q_INVOKABLE QPointF mapToGlobal(
const QPointF &pos) 
const;
 
  209    Q_INVOKABLE QPointF mapFromGlobal(
const QPointF &pos) 
const;
 
  214    QString name() 
const;
 
  224    bool isEnabled() 
const;
 
  229    QRect geometry() 
const;
 
  234    QRectF geometryF() 
const;
 
  244    QRectF rectF() 
const;
 
  249    uint32_t refreshRate() 
const;
 
  255    bool isInternal() 
const;
 
  265    QSize physicalSize() 
const;
 
  268    QSize pixelSize() 
const;
 
  269    QSize modeSize() 
const;
 
  271    QString eisaId() 
const;
 
  276    QString manufacturer() 
const;
 
  280    QString model() 
const;
 
  284    QString serialNumber() 
const;
 
  293    void inhibitDirectScanout();
 
  294    void uninhibitDirectScanout();
 
  296    bool directScanoutInhibited() 
const;
 
  306    static std::chrono::milliseconds dimAnimationTime();
 
  314    QSize orientateSize(
const QSize &size) 
const;
 
  319    QString description() 
const;
 
  320    Capabilities capabilities() 
const;
 
  321    const Edid &edid() 
const;
 
  322    QList<std::shared_ptr<OutputMode>> modes() 
const;
 
  323    std::shared_ptr<OutputMode> currentMode() 
const;
 
  325    virtual void setDpmsMode(
DpmsMode mode);
 
  327    uint32_t overscan() 
const;
 
  332    bool isPlaceholder() 
const;
 
  333    bool isNonDesktop() 
const;
 
  335    bool wideColorGamut() 
const;
 
  336    bool highDynamicRange() 
const;
 
  337    uint32_t sdrBrightness() 
const;
 
  339    std::shared_ptr<IccProfile> iccProfile() 
const;
 
  340    QString iccProfilePath() 
const;
 
  344    QByteArray mstPath() 
const;
 
  346    virtual bool setGammaRamp(
const std::shared_ptr<ColorTransformation> &transformation);
 
  347    virtual bool setChannelFactors(
const QVector3D &rgb);
 
  349    virtual bool updateCursorLayer();
 
  351    std::optional<double> maxPeakBrightness() 
const;
 
  352    std::optional<double> maxAverageBrightness() 
const;
 
  353    double minBrightness() 
const;
 
  354    std::optional<double> maxPeakBrightnessOverride() 
const;
 
  355    std::optional<double> maxAverageBrightnessOverride() 
const;
 
  356    std::optional<double> minBrightnessOverride() 
const;
 
  358    double sdrGamutWideness() 
const;
 
  438        bool internal = 
false;
 
  439        bool placeholder = 
false;
 
  440        bool nonDesktop = 
false;
 
  444        double minBrightness = 0;
 
 
  453        QList<std::shared_ptr<OutputMode>> 
modes;
 
  457        bool enabled = 
false;
 
  458        uint32_t overscan = 0;
 
  460        bool wideColorGamut = 
false;
 
  461        bool highDynamicRange = 
false;
 
  462        uint32_t sdrBrightness = 200;
 
  470        double sdrGamutWideness = 0;
 
 
  474    void setInformation(
const Information &information);
 
  475    void setState(
const State &state);
 
  480    int m_directScanoutCount = 0;
 
 
  486    return QRect(QPoint(0, 0), 
geometry().size());
 
 
  491    return QRectF(QPointF(0, 0), 
geometryF().size());
 
 
  498Q_DECLARE_OPERATORS_FOR_FLAGS(KWin::Output::Capabilities)
 
void outputChange(const QRegion &damagedRegion)
void colorDescriptionChanged()
Q_ENUM(AutoRotationPolicy)
void currentModeChanged()
void highDynamicRangeChanged()
void autoRotationPolicyChanged()
void sdrBrightnessChanged()
virtual RenderLoop * renderLoop() const =0
void capabilitiesChanged()
void iccProfilePathChanged()
void aboutToChange(OutputChangeSet *changeSet)
void sdrGamutWidenessChanged()
void brightnessMetadataChanged()
void aboutToTurnOff(std::chrono::milliseconds time)
void wideColorGamutChanged()
Information m_information
virtual ~OutputMode()=default
QDebug & operator<<(QDebug &s, const KWin::DrmConnector *obj)
std::shared_ptr< OutputMode > currentMode
QList< std::shared_ptr< OutputMode > > modes
std::shared_ptr< IccProfile > iccProfile
std::optional< double > maxAverageBrightnessOverride
std::optional< double > minBrightnessOverride
std::optional< double > maxPeakBrightnessOverride