Auf dieser Seite

QRhiVertexInputBinding Class

Beschreibt eine Vertex-Eingabebindung. Mehr...

Header: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
Seit: Qt 6.6

Öffentliche Typen

enum Classification { PerVertex, PerInstance }

Öffentliche Funktionen

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 &key, size_t seed = 0)
bool operator!=(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)
bool operator==(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)

Detaillierte Beschreibung

Legt den Schritt (in Byte, muss ein Vielfaches von 4 sein), die Klassifizierung und optional die Instanzschrittrate fest.

Nehmen wir als Beispiel einen Vertex-Shader mit den folgenden Eingaben:

layout(location = 0) in vec4 position;
layout(location = 1) in vec2 texcoord;

Nehmen wir nun außerdem an, dass 3-komponentige Vertex-Positionen (x, y, z) und 2-komponentige Texturkoordinaten (u, v) in einem nicht-interleaved Format in einem Puffer (oder sogar in separaten Puffern) bereitgestellt werden. Die Definition von zwei Bindungen könnte dann wie folgt erfolgen:

QRhiVertexInputLayout inputLayout;
inputLayout.setBindings({
    { 3 * sizeof(float) },
    { 2 * sizeof(float) }
});

Da keine Instanzierung verwendet wird, ist hier nur der Stride von Interesse. Die Bindungsnummer ergibt sich aus dem Index des Elements „QRhiVertexInputBinding“ im Bindungsvektor von „ QRhiVertexInputLayout “.

Sobald eine Grafikpipeline mit diesem Vertex-Eingabe-Layout gebunden ist, könnten die Vertex-Eingaben wie folgt eingerichtet werden, um einen Würfel mit 36 Vertexen zu zeichnen, vorausgesetzt, wir haben einen einzigen Puffer, in dem zuerst die Positionen und dann die Texturkoordinaten stehen:

const QRhiCommandBuffer::VertexInput vbufBindings[] = {
    { cubeBuf, 0 },
    { cubeBuf, 36 * 3 * sizeof(float) }
};
cb->setVertexInput(0, 2, vbufBindings);

Beachten Sie, dass der durch ` startBinding + i` definierte Index, wobei ` i ` der Index im zweiten Argument von ` setVertexInput()` ist, mit dem Index des entsprechenden Eintrags im Vektor ` bindings ` von ` QRhiVertexInputLayout` übereinstimmt.

Hinweis: Der Schritt muss immer ein Vielfaches von 4 sein.

Hinweis: Hierbei handelt es sich um eine RHI-API mit eingeschränkten Kompatibilitätsgarantien; weitere Informationen finden Sie unter QRhi.

Siehe auch QRhiCommandBuffer::setVertexInput().

Dokumentation zu Mitgliedstypen

enum QRhiVertexInputBinding::Classification

Beschreibt die Klassifizierung der Eingabedaten.

KonstanteWertBeschreibung
QRhiVertexInputBinding::PerVertex0Die Daten beziehen sich auf jeden Knoten
QRhiVertexInputBinding::PerInstance1Die Daten beziehen sich auf die Instanzen

Dokumentation der Member-Funktionen

[constexpr noexcept default] QRhiVertexInputBinding::QRhiVertexInputBinding()

Erstellt eine Standardbeschreibung für die Verknüpfung von Vertex-Eingaben.

QRhiVertexInputBinding::QRhiVertexInputBinding(quint32 stride, QRhiVertexInputBinding::Classification cls = PerVertex, quint32 stepRate = 1)

Erstellt eine Beschreibung der Vertex-Eingabebindung mit dem angegebenen stride, der Klassifizierung cls und der Instanz-Schrittrate stepRate.

Hinweis: Ein Wert für „ stepRate “ , der nicht 1 ist, wird nur unterstützt, wenn „ QRhi::CustomInstanceStepRate “ als unterstützt gemeldet wird.

QRhiVertexInputBinding::Classification QRhiVertexInputBinding::classification() const

Gibt die Klassifizierung der Eingabedaten zurück.

Siehe auch „ setClassification()“.

quint32 QRhiVertexInputBinding::instanceStepRate() const

Gibt die Schrittfrequenz der Instanz zurück.

Siehe auch „ setInstanceStepRate()“.

void QRhiVertexInputBinding::setClassification(QRhiVertexInputBinding::Classification c)

Legt die Klassifizierung der Eingabedaten fest: c. Standardmäßig ist hier „ PerVertex “ eingestellt.

Siehe auch „ classification()“.

void QRhiVertexInputBinding::setInstanceStepRate(quint32 rate)

Legt den Instanzschritt rate fest. Standardmäßig ist dieser Wert auf 1 gesetzt.

Siehe auch instanceStepRate().

void QRhiVertexInputBinding::setStride(quint32 s)

Setzt den Schritt auf „ s “.

Siehe auch stride().

quint32 QRhiVertexInputBinding::stride() const

Gibt den Schritt in Byte zurück.

Siehe auch ` setStride()`.

Verwandte Nicht-Mitglieder

[noexcept] size_t qHash(const QRhiVertexInputBinding &key, size_t seed = 0)

Gibt den Hash-Wert für „ key “ zurück, wobei „ seed “ als Startwert für die Berechnung verwendet wird.

[noexcept] bool operator!=(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)

Gibt „ false “ zurück, wenn die Werte in den beiden „ QRhiVertexInputBinding “-Objekten „ a “ und „ b “ gleich sind; andernfalls wird „ true “ zurückgegeben.

[noexcept] bool operator==(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)

Gibt „ true “ zurück, wenn die Werte in den beiden „ QRhiVertexInputBinding “-Objekten „ a “ und „ b “ identisch sind.

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