QRhiVertexInputBinding Class
頂点入力バインディングを記述します。詳細...
Header: | #include <rhi/qrhi.h> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate) |
qmake: | QT += gui-private |
Since: | Qt 6.6 |
パブリック型
enum | Classification { PerVertex, PerInstance } |
パブリック関数
QRhiVertexInputBinding() | |
QRhiVertexInputBinding(quint32 stride, QRhiVertexInputBinding::Classification cls = PerVertex, quint32 stepRate = 1) | |
QRhiVertexInputBinding::Classification | classification() const |
quint32 | instanceStepRate() const |
void | setClassification(QRhiVertexInputBinding::Classification c) |
void | setInstanceStepRate(quint32 rate) |
void | setStride(quint32 s) |
quint32 | stride() const |
関連する非メンバー
size_t | qHash(const QRhiVertexInputBinding &v, size_t seed = 0) |
bool | operator!=(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b) |
bool | operator==(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b) |
詳細説明
ストライド(バイト単位、4の倍数でなければならない)、分類、およびオプションでインスタンスステップレートを指定します。
例として、以下の入力を持つ頂点シェーダを想定します:
layout(location = 0) in vec4 position; layout(location = 1) in vec2 texcoord;
ここで、3 コンポーネントの頂点位置(x, y, z)
と 2 コンポーネントのテクスチャ座標(u, v)
が、バッファ(または別個のバッファでも可)にノンインターリーブ形式で提供されるとします。2つのバインディングを定義するには、このようにします:
QRhiVertexInputLayout inputLayout; inputLayout.setBindings({ { 3 * sizeof(float) }, { 2 * sizeof(float) } });
インスタンス化は使用されないので、ここではストライドのみが興味深い。バインディング番号は、QRhiVertexInputLayout のバインディングベクタのQRhiVertexInputBinding要素のインデックスで与えられます。
この頂点入力レイアウトを持つグラフィックスパイプラインがバインドされると、頂点入力は、最初に位置、次にテクスチャ座標を持つ単一のバッファがあると仮定して、36頂点を持つ立方体を描画するために次のように設定できます:
const QRhiCommandBuffer::VertexInput vbufBindings[] = { { cubeBuf, 0 }, { cubeBuf, 36 * 3 * sizeof(float) } }; cb->setVertexInput(0, 2, vbufBindings);
i
はsetVertexInput() の第2引数のインデックスで、startBinding + i
で定義されたインデックスが、QRhiVertexInputLayout のbindings
ベクトルの対応するエントリのインデックスと一致することに注意してください。
注: ストライドは常に4の倍数でなければならない。
注: これは互換性保証に制限のあるRHI APIである。詳細はQRhi を参照のこと。
QRhiCommandBuffer::setVertexInput()も参照のこと 。
メンバ型ドキュメント
enum QRhiVertexInputBinding::Classification
入力データの分類を表す。
定数 | 値 | 説明 |
---|---|---|
QRhiVertexInputBinding::PerVertex | 0 | データは頂点単位 |
QRhiVertexInputBinding::PerInstance | 1 | データはインスタンス単位 |
メンバ関数説明
[constexpr noexcept]
QRhiVertexInputBinding::QRhiVertexInputBinding()
デフォルトの頂点入力バインディング記述を構築します。
QRhiVertexInputBinding::QRhiVertexInputBinding(quint32 stride, QRhiVertexInputBinding::Classification cls = PerVertex, quint32 stepRate = 1)
指定されたstride 、分類cls 、インスタンスステップレートstepRate を持つ頂点入力バインディング記述を構築します。
注: QRhi::CustomInstanceStepRate がサポートされていると報告されている場合にのみ、1 以外のstepRate がサポートされます。
QRhiVertexInputBinding::Classification QRhiVertexInputBinding::classification() const
入力データの分類を返します。
setClassification()も参照してください 。
quint32 QRhiVertexInputBinding::instanceStepRate() const
インスタンス・ステップ・レートを返します。
setInstanceStepRate() も参照 。
void QRhiVertexInputBinding::setClassification(QRhiVertexInputBinding::Classification c)
入力データ分類を設定するc 。デフォルトでは、これはPerVertex に設定されています。
classification() も参照して ください。
void QRhiVertexInputBinding::setInstanceStepRate(quint32 rate)
インスタンス・ステップrate を設定します。デフォルトでは 1 に設定されています。
instanceStepRate() も参照して ください。
void QRhiVertexInputBinding::setStride(quint32 s)
ストライドをs に設定します。
stride() も参照 。
quint32 QRhiVertexInputBinding::stride() const
stride をバイト数で返します。
setStride()も参照 。
関連する非メンバ
[noexcept]
size_t qHash(const QRhiVertexInputBinding &v, size_t seed = 0)
seed を計算の種として使用して、v のハッシュ値を返します。
[noexcept]
bool operator!=(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)
2つのQRhiVertexInputBinding オブジェクトa とb の値が等しい場合はfalse
を返し、そうでない場合はtrue
を返す。
[noexcept]
bool operator==(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)
つのQRhiVertexInputBinding オブジェクトa とb の値が等しい場合、true
を返します。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。