このページでは

Qt3DRender::QWaitFence Class

class Qt3DRender::QWaitFence

FrameGraphNode 以前は、グラフィックスコマンドストリーム内のフェンスがシグナル状態になるのを待っていました。詳細...

ヘッダー: #include <qwaitfence.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
継承元: Qt3DRender::QFrameGraphNode
ステータス: 非推奨

このクラスは非推奨です。新しいコードでの使用は強く推奨しません。

プロパティ

パブリック関数

QVariant handle() const
Qt3DRender::QWaitFence::HandleType handleType() const
void setHandle(QVariant handle)
void setHandleType(Qt3DRender::QWaitFence::HandleType type)
void setTimeout(quint64 timeout)
void setWaitOnCPU(bool waitOnCPU)
quint64 timeout() const
bool waitOnCPU() const

シグナル

void handleChanged(QVariant handle)
void handleTypeChanged(Qt3DRender::QWaitFence::HandleType handleType)
void timeoutChanged(quint64 timeoutChanged)
void waitOnCPUChanged(bool waitOnCPU)

詳細説明

フェンスを使用すると、GPUとCPUのワークロードを同期させることができます。GPUコマンドは通常、ノンブロッキングです。コマンドが発行されると、コマンドバッファに挿入され、後でGPUによって読み込まれます。場合によっては、ハードウェアによってコマンドが確実に実行されたことが確認できてからでないと、処理を続行したり、特定のコマンドを発行したりできないことがあります。 フェンスは、これを実現するための手段です。これは、Qt3Dでサードパーティ製のエンジンを使用する際に特に重要です。Qt3Dは、他のエンジンのコマンドによるリソースの変更が完了したことが確認できた場合にのみ、共有リソースにアクセスすべきです。

QWaitFenceは、シグナルが送信されるまで待機し、その後で後続のコマンドがコマンドストリームに挿入されるようにするFrameGraphノードです。これはQSetFence と組み合わせて使用でき、待機時間やCPU側でブロックするかどうかを設定するプロパティを備えています。

注: Qt 3D は 、描画呼び出しを発行する前にGPUリソース(テクスチャ、シェーダー、バッファ)をアップロードします。

プロパティのドキュメント

handle : QVariant

QVariant でラップされた、基となるフェンスハンドルを保持します。

アクセス関数:

QVariant handle() const
void setHandle(QVariant handle)

Notifierシグナル:

void handleChanged(QVariant handle)

handleType : HandleType

使用されているハンドルのタイプを指定します。現在、OpenGL フェンス ID のみがサポートされています。

アクセス関数:

Qt3DRender::QWaitFence::HandleType handleType() const
void setHandleType(Qt3DRender::QWaitFence::HandleType type)

通知シグナル:

void handleTypeChanged(Qt3DRender::QWaitFence::HandleType handleType)

timeout : quint64

フェンスがシグナル状態になるまで待機する最大時間をナノ秒単位で指定します。

アクセス関数:

quint64 timeout() const
void setTimeout(quint64 timeout)

通知信号:

void timeoutChanged(quint64 timeoutChanged)

waitOnCPU : bool

フェンスがシグナル状態になるのを待機している間、CPUをブロックするかどうかを指定します。デフォルトでは false です。

アクセス関数:

bool waitOnCPU() const
void setWaitOnCPU(bool waitOnCPU)

通知シグナル:

void waitOnCPUChanged(bool waitOnCPU)

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.