- Qt 6.8
- Qt Wayland Compositor
- C++ Classes
- QWaylandOutput
- Qt Wayland Compositor | Commercial or GPLv3

# QWaylandOutput Class

The QWaylandOutput class represents a displayable area managed by the compositor. More...

Header: | `#include <QWaylandOutput>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)` `target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)`
qmake: | `QT += waylandcompositor`
In QML: | WaylandOutput
Inherits: | QWaylandObject

- List of all members, including inherited members

## Public Types

enum | Subpixel { SubpixelUnknown, SubpixelNone, SubpixelHorizontalRgb, SubpixelHorizontalBgr, SubpixelVerticalRgb, SubpixelVerticalBgr }
enum | Transform { TransformNormal, Transform90, Transform180, Transform270, TransformFlipped, …, TransformFlipped270 }

## Properties

- availableGeometry : QRect
- geometry : const QRect
- manufacturer : QString
- model : QString
- physicalSize : QSize
- position : QPoint

- scaleFactor : int
- sizeFollowsWindow : bool
- subpixel : QWaylandOutput::Subpixel
- transform : QWaylandOutput::Transform
- window : QWindow*

## Public Functions

| QWaylandOutput(QWaylandCompositor *compositor, QWindow *window)
virtual | ~QWaylandOutput() override
void | addMode(const QWaylandOutputMode &mode, bool preferred = false)
QRect | availableGeometry() const
QWaylandCompositor * | compositor() const
QWaylandOutputMode | currentMode() const
void | frameStarted()
QRect | geometry() const
QString | manufacturer() const
QString | model() const
QList<QWaylandOutputMode> | modes() const
QSize | physicalSize() const
QPoint | position() const
int | scaleFactor() const
void | sendFrameCallbacks()
void | setAvailableGeometry(const QRect &availableGeometry)
void | setCurrentMode(const QWaylandOutputMode &mode)
void | setManufacturer(const QString &manufacturer)
void | setModel(const QString &model)
void | setPhysicalSize(const QSize &size)
void | setPosition(const QPoint &pt)
void | setScaleFactor(int scale)
void | setSizeFollowsWindow(bool follow)
void | setSubpixel(const QWaylandOutput::Subpixel &subpixel)
void | setTransform(const QWaylandOutput::Transform &transform)
void | setWindow(QWindow *window)
bool | sizeFollowsWindow() const
QWaylandOutput::Subpixel | subpixel() const
QWaylandOutput::Transform | transform() const
virtual void | update()
QWindow * | window() const

## Signals

void | availableGeometryChanged()
void | compositorChanged()
void | geometryChanged()
void | manufacturerChanged()
void | modelChanged()
void | physicalSizeChanged()
void | positionChanged()
void | scaleFactorChanged()
void | sizeFollowsWindowChanged()
void | subpixelChanged()
void | transformChanged()
void | windowChanged()

## Static Public Members

QWaylandOutput * | fromResource(wl_resource *resource)

## Detailed Description

The QWaylandOutput manages a rectangular area within bounds of the compositor's geometry, to use it for displaying client content. This could, for instance, be a screen managed by the WaylandCompositor.

The class corresponds to the `wl_output` interface in the Wayland protocol.

## Member Type Documentation

### enum QWaylandOutput::Subpixel

This enum type is used to specify the subpixel arrangement of a QWaylandOutput.

Constant | Value | Description
--- | --- | ---
`QWaylandOutput::SubpixelUnknown` | `0` | The subpixel arrangement is not set.
`QWaylandOutput::SubpixelNone` | `1` | There are no subpixels.
`QWaylandOutput::SubpixelHorizontalRgb` | `2` | The subpixels are arranged horizontally in red, green, blue order.
`QWaylandOutput::SubpixelHorizontalBgr` | `3` | The subpixels are arranged horizontally in blue, green, red order.
`QWaylandOutput::SubpixelVerticalRgb` | `4` | The subpixels are arranged vertically in red, green, blue order.
`QWaylandOutput::SubpixelVerticalBgr` | `5` | The subpixels are arranged vertically in blue, green, red order.

See also QWaylandOutput::subpixel.

### enum QWaylandOutput::Transform

* * This enum type is used to specify the orientation of a QWaylandOutput. * *

Constant | Value | Description
--- | --- | ---
`QWaylandOutput::TransformNormal` | `0` | The orientation is normal. *
`QWaylandOutput::Transform90` | `1` | The orientation is rotated 90 degrees. *
`QWaylandOutput::Transform180` | `2` | The orientation is rotated 180 degrees. *
`QWaylandOutput::Transform270` | `3` | The orientation is rotated 270 degrees. *
`QWaylandOutput::TransformFlipped` | `4` | The orientation is mirrored. *
`QWaylandOutput::TransformFlipped90` | `5` | The orientation is mirrored, and rotated 90 degrees. *
`QWaylandOutput::TransformFlipped180` | `6` | The orientation is mirrored, and rotated 180 degrees. *
`QWaylandOutput::TransformFlipped270` | `7` | The orientation is mirrored, and rotated 270 degrees. * *

See also QWaylandOutput::transform.

## Property Documentation

### availableGeometry : QRect

This property holds the geometry of the QWaylandOutput available for displaying content. The available geometry is in output coordinates space, starts from 0,0 and it's as big as the output by default.

Access functions:

QRect | availableGeometry() const
void | setAvailableGeometry(const QRect &availableGeometry)

Notifier signal:

void | availableGeometryChanged()

See also QWaylandOutput::currentMode and QWaylandOutput::geometry.

### `[read-only]` geometry : const QRect

This property holds the geometry of the QWaylandOutput.

Access functions:

QRect | geometry() const

Notifier signal:

void | geometryChanged()

See also QWaylandOutput::currentMode.

### manufacturer : QString

This property holds a textual description of the manufacturer of the display managed by this QWaylandOutput.

Access functions:

QString | manufacturer() const
void | setManufacturer(const QString &manufacturer)

Notifier signal:

void | manufacturerChanged()

### model : QString

This property holds a textual description of the model of the display managed by this QWaylandOutput.

Access functions:

QString | model() const
void | setModel(const QString &model)

Notifier signal:

void | modelChanged()

### physicalSize : QSize

This property holds the physical size of the QWaylandOutput in millimeters.

Access functions:

QSize | physicalSize() const
void | setPhysicalSize(const QSize &size)

Notifier signal:

void | physicalSizeChanged()

See also QWaylandOutput::geometry and QWaylandOutput::currentMode.

### position : QPoint

This property holds the position of this QWaylandOutput in the compositor's coordinate system.

Access functions:

QPoint | position() const
void | setPosition(const QPoint &pt)

Notifier signal:

void | positionChanged()

### scaleFactor : int

This property holds the factor by which the QWaylandCompositor scales surface buffers before they are displayed. This is used on high density output devices where unscaled content would be too small to be practical. The client can in turn set the scale factor of its buffer to match the output if it prefers to provide high resolution content that is suitable for the output device.

The default is 1 (no scaling).

Access functions:

int | scaleFactor() const
void | setScaleFactor(int scale)

Notifier signal:

void | scaleFactorChanged()

### sizeFollowsWindow : bool

This property controls whether the size of the QWaylandOutput matches the size of its window.

If this property is true, all modes previously added are replaced by a mode that matches window size and screen refresh rate.

The default is false.

Access functions:

bool | sizeFollowsWindow() const
void | setSizeFollowsWindow(bool follow)

Notifier signal:

void | sizeFollowsWindowChanged()

### subpixel : QWaylandOutput::Subpixel

This property holds the subpixel arrangement of this QWaylandOutput. The default is QWaylandOutput::SubpixelUnknown.

Access functions:

QWaylandOutput::Subpixel | subpixel() const
void | setSubpixel(const QWaylandOutput::Subpixel &subpixel)

Notifier signal:

void | subpixelChanged()

### transform : QWaylandOutput::Transform

This property holds the transformation that the QWaylandCompositor applies to a surface to compensate for the orientation of the QWaylandOutput.

The default is QWaylandOutput::TransformNormal.

Access functions:

QWaylandOutput::Transform | transform() const
void | setTransform(const QWaylandOutput::Transform &transform)

Notifier signal:

void | transformChanged()

### window : QWindow*

This property holds the QWindow for this QWaylandOutput.

Access functions:

QWindow * | window() const
void | setWindow(QWindow *window)

Notifier signal:

void | windowChanged()

## Member Function Documentation

### QWaylandOutput::QWaylandOutput(QWaylandCompositor *compositor, QWindow *window)

Constructs a QWaylandOutput in compositor and with the specified window. The create() function must be called on the compositor before constructing a QWaylandOutput for it.

The QWaylandOutput object is initialized later, in reaction to an event. At this point it is added as an output for the compositor. If it is the first QWaylandOutput object created for this compositor, it becomes the default output.

### `[override virtual noexcept]` QWaylandOutput::~QWaylandOutput()

Destroys the QWaylandOutput.

### void QWaylandOutput::addMode(const QWaylandOutputMode &mode, bool preferred = false)

Adds the mode mode to the output and mark it as preferred if preferred is `true`. Please note there can only be one preferred mode.

### QWaylandCompositor *QWaylandOutput::compositor() const

Returns the compositor for this QWaylandOutput.

Note: Getter function for property compositor.

### QWaylandOutputMode QWaylandOutput::currentMode() const

Returns the output's size in pixels and refresh rate in mHz. If the current mode is not set it will return an invalid mode.

See also setCurrentMode(), QWaylandOutput::modes, and QWaylandOutputMode.

### void QWaylandOutput::frameStarted()

Informs QWaylandOutput that a frame has started.

### `[static]` QWaylandOutput *QWaylandOutput::fromResource(wl_resource *resource)

Returns the QWaylandOutput corresponding to resource.

### QList<QWaylandOutputMode> QWaylandOutput::modes() const

Returns the list of modes.

### void QWaylandOutput::sendFrameCallbacks()

Sends pending frame callbacks.

### void QWaylandOutput::setCurrentMode(const QWaylandOutputMode &mode)

Sets the current mode. The mode mode must have been previously added.

See also currentMode(), QWaylandOutput::modes, and QWaylandOutputMode.

### `[virtual]` void QWaylandOutput::update()

Schedules a QEvent::UpdateRequest to be delivered to the QWaylandOutput's window.

See also QWindow::requestUpdate().