QWaitFence Class

class Qt3DRender::QWaitFence

FrameGraphNode 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

Ö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.