QRhiVertexInputBinding Class
Describe un enlace de entrada de vértice. Más...
| Cabecera: | #include <rhi/qrhi.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate) |
| qmake: | QT += gui-private |
| Desde: | Qt 6.6 |
Tipos Públicos
| enum | Classification { PerVertex, PerInstance } |
Funciones Públicas
| 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 |
No miembros relacionados
| 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) |
Descripción detallada
Especifica el stride (en bytes, debe ser múltiplo de 4), la clasificación y opcionalmente la tasa de paso de instancia.
Como ejemplo, supongamos un sombreador de vértices con las siguientes entradas:
layout(location = 0) in vec4 position; layout(location = 1) in vec2 texcoord;
Supongamos también que las posiciones de vértice de 3 componentes (x, y, z) y las coordenadas de textura de 2 componentes (u, v) se proporcionan en un formato no intercalado en un búfer (o incluso en búferes separados). La definición de dos bindings podría hacerse así:
QRhiVertexInputLayout inputLayout; inputLayout.setBindings({ { 3 * sizeof(float) }, { 2 * sizeof(float) } });
En este caso sólo interesa el stride, ya que no se utiliza instanciación. El número de vinculación viene dado por el índice del elemento QRhiVertexInputBinding en el vector de vinculaciones de QRhiVertexInputLayout.
Una vez que un pipeline gráfico con esta disposición de entrada de vértices está enlazado, las entradas de vértices podrían configurarse como la siguiente para dibujar un cubo con 36 vértices, suponiendo que tenemos un único buffer con primero las posiciones y luego las coordenadas de textura:
const QRhiCommandBuffer::VertexInput vbufBindings[] = { { cubeBuf, 0 }, { cubeBuf, 36 * 3 * sizeof(float) } }; cb->setVertexInput(0, 2, vbufBindings);
Observa cómo el índice definido por startBinding + i, donde i es el índice en el segundo argumento de setVertexInput(), coincide con el índice de la entrada correspondiente en el vector bindings del QRhiVertexInputLayout.
Nota: el stride debe ser siempre múltiplo de 4.
Nota: se trata de una API RHI con garantías de compatibilidad limitadas, véase QRhi para más detalles.
Véase también QRhiCommandBuffer::setVertexInput().
Documentación de tipos de miembros
enum QRhiVertexInputBinding::Classification
Describe la clasificación de los datos de entrada.
| Constante | Valor | Descripción |
|---|---|---|
QRhiVertexInputBinding::PerVertex | 0 | Los datos son por vértice |
QRhiVertexInputBinding::PerInstance | 1 | Los datos son por instancia |
Documentación de las funciones miembro
[constexpr noexcept] QRhiVertexInputBinding::QRhiVertexInputBinding()
Construye una descripción de enlace de entrada de vértice por defecto.
QRhiVertexInputBinding::QRhiVertexInputBinding(quint32 stride, QRhiVertexInputBinding::Classification cls = PerVertex, quint32 stepRate = 1)
Construye una descripción de enlace de entrada de vértice con la especificación stride, la clasificación cls, y la tasa de paso de instancia stepRate.
Nota: stepRate distinto de 1 sólo se admite cuando se informa de que se admite QRhi::CustomInstanceStepRate.
QRhiVertexInputBinding::Classification QRhiVertexInputBinding::classification() const
Devuelve la clasificación de los datos de entrada.
Véase también setClassification().
quint32 QRhiVertexInputBinding::instanceStepRate() const
Devuelve la velocidad de paso de la instancia.
Véase también setInstanceStepRate().
void QRhiVertexInputBinding::setClassification(QRhiVertexInputBinding::Classification c)
Establece la clasificación de los datos de entrada c. Por defecto se establece en PerVertex.
Véase también classification().
void QRhiVertexInputBinding::setInstanceStepRate(quint32 rate)
Establece el paso de instancia rate. Por defecto es 1.
Véase también instanceStepRate().
void QRhiVertexInputBinding::setStride(quint32 s)
Establece el stride en s.
Véase también stride().
quint32 QRhiVertexInputBinding::stride() const
Devuelve la longitud en bytes.
Véase también setStride().
No miembros relacionados
[noexcept] size_t qHash(const QRhiVertexInputBinding &key, size_t seed = 0)
Devuelve el valor hash para key, utilizando seed para sembrar el cálculo.
[noexcept] bool operator!=(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)
Devuelve false si los valores de los dos objetos QRhiVertexInputBinding a y b son iguales; en caso contrario devuelve true.
[noexcept] bool operator==(const QRhiVertexInputBinding &a, const QRhiVertexInputBinding &b)
Devuelve true si los valores de los dos objetos QRhiVertexInputBinding a y b son iguales.
© 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.