Класс QWaitFence
класс Qt3DRender::QWaitFenceУзел графа кадров используется для ожидания сигнала барьера в потоке команд графического процессора. Подробнее...
| Заголовок: | #include <QWaitFence> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С момента: | Qt 5.13 |
| Наследует: | Qt3DRender::QFrameGraphNode |
Свойства
- handle : QVariant
- handleType : HandleType
- timeout : quint64
- waitOnCPU : bool
Открытые функции
| 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) |
Подробное описание
Барьер позволяет синхронизировать рабочие нагрузки графического процессора и центрального процессора. Команды графического процессора, как правило, неблокирующие. При вызове команды добавляются в буферы команд, которые будут считываться графическим процессором в более позднее время. В некоторых случаях необходимо продолжить обработку или выполнить определенную команду только тогда, когда вы уверены, что команда была выполнена аппаратным обеспечением. Барьеры — это способ сделать это. Это особенно важно при использовании сторонних движков с Qt3D, Qt3D должен обращаться к общим ресурсам только тогда, когда мы знаем, что другие команды движка закончили модификацию ресурса.
QWaitFence — это узел графа кадров, который будет заставлять ожидать, пока он не станет сигнализированным, прежде чем последующие команды будут добавлены в поток команд. Затем его можно использовать совместно с QSetFence и содержит свойства для настройки того, как долго нужно ждать и нужно ли блокировать сторону центрального процессора.
Примечание: Qt 3D загружает ресурсы графического процессора (текстуры, шейдеры, буферы) перед вызовом команд отрисовки.
Документация по свойствам
handle : QVariant
Содержит базовый дескриптор барьера, заключенный в QVariant.
Функции доступа:
| QVariant | handle() const |
| void | setHandle(QVariant handle) |
Сигнал уведомления:
| void | handleChanged(QVariant handle) |
handleType : HandleType
Указывает тип используемого дескриптора. В настоящее время поддерживаются только идентификаторы барьеров OpenGL.
Функции доступа:
| 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
Указывает, следует ли блокировать центральный процессор во время ожидания сигнализации барьера. По умолчанию это false.
Функции доступа:
| bool | waitOnCPU() const |
| void | setWaitOnCPU(bool waitOnCPU) |
Сигнал уведомления:
| void | waitOnCPUChanged(bool waitOnCPU) |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qt3drender-qwaitfence.html