QWaitFence Class
class Qt3DRender::QWaitFenceFrameGraphNode wird verwendet, um darauf zu warten, dass ein Zaun im Grafikbefehlsstrom signalisiert wird. Mehr...
Kopfzeile: | #include <QWaitFence> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
Vererbt: | Qt3DRender::QFrameGraphNode |
Status: | Veraltet |
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) |
Detaillierte Beschreibung
Fence ermöglicht die Synchronisierung von GPU- und CPU-Arbeitslasten. GPU-Befehle sind in der Regel nicht-blockierend. Wenn sie ausgegeben werden, werden die 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 einen bestimmten Befehl erst dann erteilen, wenn Sie sicher sind, dass ein Befehl von der Hardware ausgeführt wurde. Fences sind eine Möglichkeit, dies zu tun. Dies ist besonders wichtig, wenn 3rd Party Engines mit Qt3D verwendet werden. Qt3D sollte nur dann auf gemeinsam genutzte Ressourcen zugreifen, wenn wir wissen, dass der andere Engine-Befehl mit der Änderung der Ressource fertig ist.
QWaitFence ist ein FrameGraph Knoten, der erzwingt, dass man wartet, 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, um zu konfigurieren, wie lange er warten soll und ob er auf der CPU-Seite blockieren soll.
Hinweis: Qt 3D lädt GPU-Ressourcen (Textur, Shader, Puffer) hoch, bevor Zeichenaufrufe ausgegeben werden.
Dokumentation der Eigenschaften
handle : QVariant
Hält den darunter liegenden Zaungriff in einer QVariant.
Zugriffsfunktionen:
QVariant | handle() const |
void | setHandle(QVariant handle) |
Benachrichtigungssignal:
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
Gibt die maximale Zeitspanne in Nanosekunden an, die gewartet wird, bis der Zaun signalisiert wird.
Zugriffsfunktionen:
quint64 | timeout() const |
void | setTimeout(quint64 timeout) |
Melder-Signal:
void | timeoutChanged(quint64 timeoutChanged) |
waitOnCPU : bool
Gibt an, ob die CPU blockiert werden soll, während sie darauf wartet, dass der Zaun signalisiert wird. In der Voreinstellung ist dies false.
Zugriffsfunktionen:
bool | waitOnCPU() const |
void | setWaitOnCPU(bool waitOnCPU) |
Melder-Signal:
void | waitOnCPUChanged(bool waitOnCPU) |
© 2025 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.