Auf dieser Seite

Qt3DRender::QWaitFence Class

class Qt3DRender::QWaitFence

FrameGraphNode diente dazu, darauf zu warten, dass ein Fence im Grafikbefehlsstrom signalisiert wurde. Mehr...

Überschrift: #include <qwaitfence.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
Erbt von: Qt3DRender::QFrameGraphNode
Status: Veraltet

Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Eigenschaften

Öffentliche Funktionen

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

Signale

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

Ausführliche Beschreibung

Fences ermöglichen die Synchronisation von GPU- und CPU-Workloads. GPU-Befehle sind in der Regel nicht blockierend. Bei ihrer Ausgabe werden Befehle in Befehlspuffer eingefügt, die zu einem späteren Zeitpunkt von der GPU gelesen werden. In manchen Fällen möchten Sie die Verarbeitung fortsetzen oder bestimmte Befehle erst dann ausführen, wenn Sie sicher sind, dass ein Befehl von der Hardware ausgeführt wurde. Fences bieten hierfür eine Möglichkeit. Dies ist besonders wichtig bei der Verwendung von Engines von Drittanbietern mit Qt3D. Qt3D sollte erst dann auf gemeinsam genutzte Ressourcen zugreifen, wenn sicher ist, dass die Befehle der anderen Engine die Änderung der Ressource abgeschlossen haben.

QWaitFence ist ein FrameGraph-Knoten, der erzwingt, dass gewartet wird, bis er signalisiert wird, bevor nachfolgende Befehle in den Befehlsstrom eingefügt werden. Er kann dann in Verbindung mit „ QSetFence “ verwendet werden und enthält Eigenschaften, mit denen konfiguriert werden kann, wie lange gewartet werden soll und ob auf der CPU-Seite blockiert werden soll.

Hinweis: „ Qt 3D “ lädt GPU-Ressourcen (Texturen, Shader, Puffer) hoch, bevor Zeichenaufrufe ausgegeben werden.

Dokumentation zu den Eigenschaften

handle : QVariant

Enthält das zugrunde liegende Fence-Handle, das in ein „ QVariant “ verpackt ist.

Zugriffsfunktionen:

QVariant handle() const
void setHandle(QVariant handle)

Notifier-Signal:

void handleChanged(QVariant handle)

handleType : HandleType

Gibt den Typ des verwendeten Handles an. Derzeit werden nur OpenGL-Fence-IDs unterstützt.

Zugriffsfunktionen:

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

Notifier-Signal:

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

timeout : quint64

Legt die maximale Wartezeit in Nanosekunden fest, bis das Fence-Signal ausgelöst wird.

Zugriffsfunktionen:

quint64 timeout() const
void setTimeout(quint64 timeout)

Benachrichtigungssignal:

void timeoutChanged(quint64 timeoutChanged)

waitOnCPU : bool

Gibt an, ob die CPU blockiert werden soll, während darauf gewartet wird, dass das Fence-Signal ausgelöst wird. Standardmäßig ist dieser Wert auf „false“ gesetzt.

Zugriffsfunktionen:

bool waitOnCPU() const
void setWaitOnCPU(bool waitOnCPU)

Notifier-Signal:

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.