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 |
Instantiated By: | WaylandOutput |
Inherits: | QWaylandObject |
Public Types
enum | Subpixel { SubpixelUnknown, SubpixelNone, SubpixelHorizontalRgb, SubpixelHorizontalBgr, SubpixelVerticalRgb, SubpixelVerticalBgr } |
enum | Transform { TransformNormal, Transform90, Transform180, Transform270, TransformFlipped, …, TransformFlipped270 } |
Properties
|
|
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 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 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().