Qt3DRender::QMemoryBarrier Class
class Qt3DRender::QMemoryBarrierメモリバリアを設置するクラス。詳細...
| ヘッダー: | #include <qmemorybarrier.h> |
| 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上の描画コマンドと演算コマンドを適切に同期させるために必要です。
このバリアは、先行するコマンドによって発行されるメモリ操作の順序を定義します。つまり、コマンド1が、後続のコマンド2で頂点属性バッファとして使用されるバッファを操作している場合、メモリバリアはコマンド1の後に配置し、頂点属性バッファに適したバリアタイプを設定する必要があります。
FrameGraphの分岐内で QMemoryBarrier ノードが検出されると、たとえそれらの描画コマンドや演算コマンドが分岐のより深い位置で定義されていたとしても、そのバリアはそれらの実行前に適用されます。
OpenGLレンダリングについては、このページでメモリモデルに関する詳細情報を提供しています
メンバ型のドキュメント
enum QMemoryBarrier::Operation
flags QMemoryBarrier::Operations
この列挙型は、クリア対象となるバッファの種類を表します。
| 定数 | 値 |
|---|---|
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)を格納します。
© 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.