QWaylandCompositor Class

QWaylandCompositorクラスはWaylandディスプレイサーバーを管理します。詳細...

Header: #include <QWaylandCompositor>
CMake: find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)
target_link_libraries(mytarget PRIVATE Qt6::WaylandCompositor)
qmake: QT += waylandcompositor
In QML: WaylandCompositor
Inherits: 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()

詳細説明

QWaylandCompositorはクライアントとの接続を管理し、outputsseats

通常、コンポジターアプリケーションは1つのWaylandCompositor インスタンスを持ち、子として複数の出力を持つことができます。

プロパティ Documentation

[since 6.0] additionalShmFormats : QVector<ShmFormat>

このプロパティは、コンポジターがサポートすると宣伝している追加の wl_shm フォーマットのリストを保持します。

デフォルトでは、必須の ShmFormat_ARGB8888 と ShmFormat_XRGB8888 のみがリストされ、このリストは空になります。

このプロパティは、コンポジターがcreated になる前に設定する必要があります。それ以降の変更は影響しません。

このプロパティは Qt 6.0 で導入されました。

アクセス関数です:

QVector<QWaylandCompositor::ShmFormat> additionalShmFormats() const
void setAdditionalShmFormats(const QVector<QWaylandCompositor::ShmFormat> &additionalShmFormats)

Notifier シグナル:

void additionalShmFormatsChanged()

[read-only] created : const bool

このプロパティは、QWaylandCompositor が初期化されていれば真、そうでなければ偽になります。

アクセス関数:

bool isCreated() const

Notifier シグナル:

void createdChanged()

defaultOutput : QWaylandOutput*

このプロパティには、QWaylandCompositor に追加された出力リストの先頭が格納され、出力が追加されていない場合は null が格納されます。

新しいデフォルト出力を設定すると、その出力が出力リストの先頭に追加され、新しいデフォルトになりますが、以前のデフォルトはリストから削除されません。新しいデフォルト出力がすでに出力リストにあった場合は、リストの先頭に移動します。

アクセス関数

QWaylandOutput *defaultOutput() const
void setDefaultOutput(QWaylandOutput *output)

通知シグナル:

void defaultOutputChanged()

[read-only] 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 がクライアントとの通信に使用するソケット名を保持する。QWaylandCompositorcreated になる前に設定する必要がある。

socketName が空の場合(デフォルト)、代わりに開始引数--wayland-socket-name の内容が使用される。この引数が設定されていない場合、コンポジターはソケット名を探そうとするが、デフォルトではwayland-0 である。

アクセス関数

QByteArray socketName() const
void setSocketName(const QByteArray &name)

Notifier シグナル:

void socketNameChanged(const QByteArray &socketName)

useHardwareIntegrationExtension : bool

このプロパティは、このQWaylandCompositor に対してハードウェア統合拡張を有効にするかどうかを保持する。

このプロパティは、コンポジターがcreated になる前に設定する必要がある。

アクセス関数

bool useHardwareIntegrationExtension() const
void setUseHardwareIntegrationExtension(bool use)

このプロパティは、このコンポジターでハードウェア統合拡張を有効にするかどうかを保持します:

void useHardwareIntegrationExtensionChanged()

メンバ関数ドキュメント

QWaylandCompositor::QWaylandCompositor(QObject *parent = nullptr)

与えられたparent で QWaylandCompositor を構築します。

[override virtual noexcept] QWaylandCompositor::~QWaylandCompositor()

コンポジターを破棄します。QWaylandCompositor

[invokable] void QWaylandCompositor::addSocketDescriptor(int fd)

既にバインドされ、リッスンしているサーバーソケットを参照して、ファイル記述子fd のクライアント接続をリッスンします。

ファイルディスクリプタの所有権は取らないので、必要であれば明示的に閉じる必要がある。

注意: このメソッドは libwayland 1.10.0 以降でのみ利用可能である。それ以前のlibwaylandランタイムに対してビルドされた場合、このメソッドはnoopとなります。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

[virtual] void QWaylandCompositor::create()

QWaylandCompositor を初期化します。サブクラスでこの関数をオーバーライドする場合は、 必ずベースクラスの実装を呼び出してください。

[invokable] void QWaylandCompositor::destroyClient(QWaylandClient *client)

client を破棄します。

注意: この関数はメタオブジェクトシステムおよび QML から呼び出すことができます。Q_INVOKABLE を参照してください。

[invokable] void QWaylandCompositor::destroyClientForSurface(QWaylandSurface *surface)

surface のクライアントを破棄します。

注意: この関数はメタオブジェクトシステムおよび QML から呼び出すことができます。Q_INVOKABLE を参照してください。

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

与えられたbuffer からサーフェスの内容を取得します。デフォルトの実装では、OpenGLコンテキストが現在のスレッドにバインドされている必要があります。これが不可能な場合は、コンポジターのサブクラスでこの関数を再実装し、カスタムロジックを実装してください。デフォルトの実装では、共有メモリーとOpenGLバッファーのみを取り込みます。

注意: 手動で呼び出すのではなく、QWaylandSurfaceGrabber (grabber) を使用してください。

[invokable] QWaylandOutput *QWaylandCompositor::outputFor(QWindow *window) const

与えられたwindow に接続されているQWaylandOutput を返します。

注意: この関数はメタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。

QWaylandSeat *QWaylandCompositor::seatFor(QInputEvent *inputEvent)

与えられた入力イベントの座席を選択するinputEvent 。現在のところ、Qt はシングルシートしかサポートしていません。

[signal] void QWaylandCompositor::surfaceCreated(QWaylandSurface *surface)

このシグナルは、新しいQWaylandSurface インスタンスsurface が生成されたときに発せられます。

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

このシグナルは、client が idid を持つサーフェスを作成したときに発せられます。インターフェースversion も利用可能です。

このシグナルに接続するスロットは、スロットのスコープ内でQWaylandSurface インスタンスを作成し、初期化することができます。そうでない場合は、デフォルトのサーフェスが作成されます。

このシグナルへの接続は、Qt::DirectConnection 接続タイプでなければなりません。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。