QWaylandCompositor 类

QWaylandCompositor 类管理 Wayland 显示服务器。 更多...

头文件 #include <QWaylandCompositor>
CMakefind_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmakeQT += waylandcompositor
由以下类实例化 WaylandCompositor
继承自 QWaylandObject

属性

公共函数

QWaylandCompositor(QObject *parent = nullptr)
virtual~QWaylandCompositor() override
voidaddSocketDescriptor(int fd)
QVector<QWaylandCompositor::ShmFormat>additionalShmFormats() const
virtual voidcreate()
QWaylandOutput *defaultOutput() const
QWaylandSeat *defaultSeat() const
voiddestroyClient(QWaylandClient *client)
voiddestroyClientForSurface(QWaylandSurface *surface)
virtual voidgrabSurface(QWaylandSurfaceGrabber *grabber, const QWaylandBufferRef &buffer)
boolisCreated() const
QWaylandOutput *outputFor(QWindow *window) const
boolretainedSelectionEnabled() const
QWaylandSeat *seatFor(QInputEvent *inputEvent)
voidsetAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats)
voidsetDefaultOutput(QWaylandOutput *output)
voidsetRetainedSelectionEnabled(bool enabled)
voidsetSocketName(const QByteArray &name)
voidsetUseHardwareIntegrationExtension(bool use)
QByteArraysocketName() const
booluseHardwareIntegrationExtension() const

信号

voidadditionalShmFormatsChanged()
voidcreatedChanged()
voiddefaultOutputChanged()
voiddefaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)
voidretainedSelectionChanged(bool retainedSelection)
voidsocketNameChanged(const QByteArray &socketName)
voidsurfaceCreated(QWaylandSurface *surface)
voidsurfaceRequested(QWaylandClient *client, uint id, int version)
voiduseHardwareIntegrationExtensionChanged()

详细描述

QWaylandCompositor管理对客户端的连接,以及不同的输出座位

通常,合成器应用程序将有一个单一的WaylandCompositor实例,该实例可以有多个输出作为子元素。

属性文档

[since 6.0] additionalShmFormats : QVector<ShmFormat>

此属性保存了合成器声明的支持wl_shm格式的列表。

默认情况下,只有必需的ShmFormat_ARGB8888和ShmFormat_XRGB8888被列出,此列表为空。

必须在创建合成器之前设置此属性。后续更改将没有任何效果。

此属性是在Qt 6.0中引入的。

访问函数

QVector<QWaylandCompositor::ShmFormat>additionalShmFormats() const
voidsetAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats)

通知信号

voidadditionalShmFormatsChanged()

[只读] created : const bool

如果QWaylandCompositor已被初始化,则此属性为真,否则为假。

访问函数

boolisCreated() const

通知信号

voidcreatedChanged()

defaultOutput : QWaylandOutput*

此属性包含添加到QWaylandCompositor中的输出列表中的第一个元素,如果没有添加任何输出,则为null。

设置新的默认输出将其添加到输出列表中,使其成为新的默认值,但之前的默认值不会被从列表中移除。如果新的默认输出已经位于输出列表中,则将其移动到列表的开始位置。

访问函数

QWaylandOutput *defaultOutput() const
voidsetDefaultOutput(QWaylandOutput *output)

通知信号

voiddefaultOutputChanged()

[只读] defaultSeat : QWaylandSeat* const

此属性包含此QWaylandCompositor的默认座位。

访问函数

QWaylandSeat *defaultSeat() const

通知信号

voiddefaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice)

retainedSelection : bool

此属性表示是否启用了保留选择。

访问函数

boolretainedSelectionEnabled() const
voidsetRetainedSelectionEnabled(bool enabled)

通知信号

voidretainedSelectionChanged(bool retainedSelection)

socketName : QByteArray

该属性保存了由 QWaylandCompositor 用于与客户端通信的套接字名称。必须在创建 QWaylandCompositor 之前设置此属性。

如果 socketName 为空(默认情况),则使用 start 参数 --wayland-socket-name 的内容。如果未设置参数,则合成器尝试查找套接字名称,默认为 wayland-0

访问函数

QByteArraysocketName() const
voidsetSocketName(const QByteArray &name)

通知信号

voidsocketNameChanged(const QByteArray &socketName)

useHardwareIntegrationExtension : bool

该属性保存是否应为此 QWaylandCompositor 启用硬件集成扩展。

必须在创建合成器之前设置此属性。

访问函数

booluseHardwareIntegrationExtension() const
voidsetUseHardwareIntegrationExtension(bool use)

通知信号

voiduseHardwareIntegrationExtensionChanged()

成员函数文档

QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)

使用给定的 parent 构造 QWaylandCompositor。

[覆盖虚函数 noexcept] QWaylandCompositor::~QWaylandCompositor()

销毁 QWaylandCompositor

[可调用] void QWaylandCompositor::addSocketDescriptor(int fd)

在文件描述符 fd 上监听客户端连接,该文件描述符引用一个已绑定并正在监听的服务器套接字。

不拥有文件描述符;如果需要,必须显式关闭。

注意:此方法仅适用于 libwayland 1.10.0 或更高版本。如果针对旧版本的 libwayland 运行时构建,则此方法为空操作(noop)。

注意:此函数可通过元对象系统以及从 QML 调用。请参阅 Q_INVOKABLE

[虚函数] void QWaylandCompositor::create()

初始化 QWaylandCompositor。如果您在子类中重写此函数,请确保调用基类实现。

[可调用] void QWaylandCompositor::destroyClient(QWaylandClient *client)

销毁 client

注意:此函数可通过元对象系统以及从 QML 调用。请参阅 Q_INVOKABLE

[可调用] void QWaylandCompositor::destroyClientForSurface(QWaylandSurface *surface)

销毁 surface 的客户端。

注意:此函数可通过元对象系统以及从 QML 调用。请参阅 Q_INVOKABLE

[虚函数] void QWaylandCompositor::grabSurface(QWaylandSurfaceGrabber *grabber, const QWaylandBufferRef &buffer)

从给定的缓冲区中抓取表面内容。默认实现需要将OpenGL上下文绑定到当前线程才能工作。如果这不可能,请在您的合成器子类中重新实现此函数来实现自定义逻辑。默认实现仅抓取共享内存和OpenGL缓冲区,请在您的合成器子类中重新实现以处理更多缓冲区类型。

注意:您不应该手动调用此函数,而是使用QWaylandSurfaceGrabber抓取器)。

[可调用] QWaylandOutput *QWaylandCompositor::outputFor(QWindow *window) const

返回连接到给定窗口QWaylandOutput

注意:此函数可通过元对象系统以及从 QML 调用。请参阅 Q_INVOKABLE

QWaylandSeat *QWaylandCompositor::seatFor(QInputEvent *inputEvent)

为给定的输入事件inputEvent选择座位。目前,Qt只支持单个座位。

[信号] void QWaylandCompositor::surfaceCreated(QWaylandSurface *surface)

当创建了一个新的QWaylandSurface实例surface时,发出此信号。

[信号] void QWaylandCompositor::surfaceRequested(QWaylandClient *client, uint id, int version)

client使用id id创建了一个新表面时,发出此信号。接口version也可用。

连接到此信号的槽可能会在槽的作用域内创建和初始化一个QWaylandSurface实例。否则会创建一个默认表面。

连接到此信号的连接类型必须是Qt::DirectConnection

© 2024 The Qt Company Ltd. 本文档中的文档贡献版权属于各自的拥有者。本提供的文档是在自由软件基金会发布的GNU自由文档许可证版本1.3的条款下授予的。Qt及其相应徽标是The Qt Company Ltd.在芬兰及其它国家和地区的商标。所有其他商标均为其各自所有者的财产。