QWaylandCompositor 类
QWaylandCompositor 类管理 Wayland 显示服务器。 更多...
头文件 | #include <QWaylandCompositor> |
CMake | find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor) target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor) |
qmake | QT += waylandcompositor |
由以下类实例化 | WaylandCompositor |
继承自 | QWaylandObject |
属性
|
|
公共函数
QWaylandCompositor(QObject *parent = nullptr) | |
virtual | ~QWaylandCompositor() override |
void | addSocketDescriptor(int fd) |
QVector<QWaylandCompositor::ShmFormat> | additionalShmFormats() const |
virtual void | create() |
QWaylandOutput * | defaultOutput() const |
QWaylandSeat * | defaultSeat() const |
void | destroyClient(QWaylandClient *client) |
void | destroyClientForSurface(QWaylandSurface *surface) |
virtual void | grabSurface(QWaylandSurfaceGrabber *grabber, const QWaylandBufferRef &buffer) |
bool | isCreated() const |
QWaylandOutput * | outputFor(QWindow *window) const |
bool | retainedSelectionEnabled() const |
QWaylandSeat * | seatFor(QInputEvent *inputEvent) |
void | setAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats) |
void | setDefaultOutput(QWaylandOutput *output) |
void | setRetainedSelectionEnabled(bool enabled) |
void | setSocketName(const QByteArray &name) |
void | setUseHardwareIntegrationExtension(bool use) |
QByteArray | socketName() const |
bool | useHardwareIntegrationExtension() const |
信号
void | additionalShmFormatsChanged() |
void | createdChanged() |
void | defaultOutputChanged() |
void | defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice) |
void | retainedSelectionChanged(bool retainedSelection) |
void | socketNameChanged(const QByteArray &socketName) |
void | surfaceCreated(QWaylandSurface *surface) |
void | surfaceRequested(QWaylandClient *client, uint id, int version) |
void | useHardwareIntegrationExtensionChanged() |
属性文档
[since 6.0]
additionalShmFormats : QVector<ShmFormat>
此属性保存了合成器声明的支持wl_shm格式的列表。
默认情况下,只有必需的ShmFormat_ARGB8888和ShmFormat_XRGB8888被列出,此列表为空。
必须在创建合成器之前设置此属性。后续更改将没有任何效果。
此属性是在Qt 6.0中引入的。
访问函数
QVector<QWaylandCompositor::ShmFormat> | additionalShmFormats() const |
void | setAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats) |
通知信号
void | additionalShmFormatsChanged() |
[只读]
created : const bool
如果QWaylandCompositor已被初始化,则此属性为真,否则为假。
访问函数
bool | isCreated() const |
通知信号
void | createdChanged() |
defaultOutput : QWaylandOutput*
此属性包含添加到QWaylandCompositor中的输出列表中的第一个元素,如果没有添加任何输出,则为null。
设置新的默认输出将其添加到输出列表中,使其成为新的默认值,但之前的默认值不会被从列表中移除。如果新的默认输出已经位于输出列表中,则将其移动到列表的开始位置。
访问函数
QWaylandOutput * | defaultOutput() const |
void | setDefaultOutput(QWaylandOutput *output) |
通知信号
void | defaultOutputChanged() |
[只读]
defaultSeat : QWaylandSeat* const
此属性包含此QWaylandCompositor的默认座位。
访问函数
QWaylandSeat * | defaultSeat() const |
通知信号
void | defaultSeatChanged(QWaylandSeat *newDevice, QWaylandSeat *oldDevice) |
retainedSelection : bool
此属性表示是否启用了保留选择。
访问函数
bool | retainedSelectionEnabled() const |
void | setRetainedSelectionEnabled(bool enabled) |
通知信号
void | retainedSelectionChanged(bool retainedSelection) |
socketName : QByteArray
该属性保存了由 QWaylandCompositor 用于与客户端通信的套接字名称。必须在创建 QWaylandCompositor 之前设置此属性。
如果 socketName 为空(默认情况),则使用 start 参数 --wayland-socket-name
的内容。如果未设置参数,则合成器尝试查找套接字名称,默认为 wayland-0
。
访问函数
QByteArray | socketName() const |
void | setSocketName(const QByteArray &name) |
通知信号
void | socketNameChanged(const QByteArray &socketName) |
useHardwareIntegrationExtension : bool
该属性保存是否应为此 QWaylandCompositor 启用硬件集成扩展。
必须在创建合成器之前设置此属性。
访问函数
bool | useHardwareIntegrationExtension() const |
void | setUseHardwareIntegrationExtension(bool use) |
通知信号
void | useHardwareIntegrationExtensionChanged() |
成员函数文档
QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)
使用给定的 parent 构造 QWaylandCompositor。
[覆盖虚函数 noexcept]
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.在芬兰及其它国家和地区的商标。所有其他商标均为其各自所有者的财产。