QMemoryBarrier Class
class Qt3DRender::QMemoryBarrierメモリバリアを配置するクラス。さらに...
ヘッダー | #include <QMemoryBarrier> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
QML で | MemoryBarrier |
を継承しています: | Qt3DRender::QFrameGraphNode |
ステータス | 非推奨 |
パブリックな型
enum | Operation { None, ElementArray, Uniform, TextureFetch, ShaderImageAccess, …, All } |
flags | Operations |
詳細な説明
Qt3DRender::QMemoryBarrier FrameGraphノードは、レンダリングの特定の時間に特定のメモリバリアを配置するために使用されます。これは、GPU 上の描画コマンドと計算コマンドを適切に同期させるために必要です。
バリアは、前のコマンドによって発行されたメモリ操作の順序を定義します。つまり、command1 が次の command2 で頂点アトリビュートバッファとして使用されるバッファを操作している場合、メモリバリアは command1 の後に配置され、頂点アトリビュートバッファに適切なバリアタイプを設定する必要があります。
QMemoryBarrierノードがFrameGraphブランチで見つかると、たとえそれらがブランチの深い部分で定義されていたとしても、描画や計算コマンドの前にバリアが実行されます。
OpenGLレンダリングについては、このページでメモリモデルについて詳しく説明しています。
メンバー型ドキュメント
enum QMemoryBarrier::Operation
flags QMemoryBarrier::Operations
この enum 型は、クリアされるバッファのタイプを記述します。
定数 | 値 |
---|---|
Qt3DRender::QMemoryBarrier::None | 0 |
Qt3DRender::QMemoryBarrier::ElementArray | (1 << 1) |
Qt3DRender::QMemoryBarrier::Uniform | (1 << 2) |
Qt3DRender::QMemoryBarrier::TextureFetch | (1 << 3) |
Qt3DRender::QMemoryBarrier::ShaderImageAccess | (1 << 4) |
Qt3DRender::QMemoryBarrier::Command | (1 << 5) |
Qt3DRender::QMemoryBarrier::PixelBuffer | (1 << 6) |
Qt3DRender::QMemoryBarrier::TextureUpdate | (1 << 7) |
Qt3DRender::QMemoryBarrier::BufferUpdate | (1 << 8) |
Qt3DRender::QMemoryBarrier::FrameBuffer | (1 << 9) |
Qt3DRender::QMemoryBarrier::TransformFeedback | (1 << 10) |
Qt3DRender::QMemoryBarrier::AtomicCounter | (1 << 11) |
Qt3DRender::QMemoryBarrier::ShaderStorage | (1 << 12) |
Qt3DRender::QMemoryBarrier::QueryBuffer | (1 << 13) |
Qt3DRender::QMemoryBarrier::VertexAttributeArray | (1 << 0) |
Qt3DRender::QMemoryBarrier::All | 0xFFFFFFFF |
Operations 型はQFlags<Operation> の typedef です。これは、Operation 値の OR の組み合わせを格納します。
© 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.