Qt3DRender::QWaitFence Class
class Qt3DRender::QWaitFenceFrameGraphNode 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
- handle : QVariant
- handleType : HandleType
- timeout : quint64
- waitOnCPU : bool
Ö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.