QRhiVertexInputLayout Class

描述顶点着色器消耗的顶点输入布局。更多

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

公共函数

QRhiVertexInputLayout()
const QRhiVertexInputAttribute *attributeAt(qsizetype index) const
qsizetype attributeCount() const
const QRhiVertexInputBinding *bindingAt(qsizetype index) const
qsizetype bindingCount() const
const QRhiVertexInputAttribute *cbeginAttributes() const
const QRhiVertexInputBinding *cbeginBindings() const
const QRhiVertexInputAttribute *cendAttributes() const
const QRhiVertexInputBinding *cendBindings() const
void setAttributes(std::initializer_list<QRhiVertexInputAttribute> list)
void setAttributes(InputIterator first, InputIterator last)
void setBindings(std::initializer_list<QRhiVertexInputBinding> list)
void setBindings(InputIterator first, InputIterator last)
size_t qHash(const QRhiVertexInputLayout &key, size_t seed = 0)
bool operator!=(const QRhiVertexInputLayout &a, const QRhiVertexInputLayout &b)
bool operator==(const QRhiVertexInputLayout &a, const QRhiVertexInputLayout &b)

详细说明

顶点输入布局由QRhiVertexInputBindingQRhiVertexInputAttribute 集合定义。

举例来说,假设我们有一个包含 3 个顶点位置和 2 个 UV 坐标交错的缓冲区(x,y,z,u,v ),顶点着色器希望位置和 UV 位于输入位置 0 和 1,稍后将使用setVertexInput() 在绑定点 0 绑定顶点缓冲区:

QRhiVertexInputLayout inputLayout;
inputLayout.setBindings({
    { 5 * sizeof(float) }
});
inputLayout.setAttributes({
    { 0, 0, QRhiVertexInputAttribute::Float3, 0 },
    { 0, 1, QRhiVertexInputAttribute::Float2, 3 * sizeof(float) }
});

注意: 这是一个 RHI API,兼容性保证有限,详情请参见QRhi

成员函数文档

[constexpr noexcept] QRhiVertexInputLayout::QRhiVertexInputLayout()

构造一个空的顶点输入布局描述。

const QRhiVertexInputAttribute *QRhiVertexInputLayout::attributeAt(qsizetype index) const

返回给定index 的属性。

qsizetype QRhiVertexInputLayout::attributeCount() const

返回属性的数量。

const QRhiVertexInputBinding *QRhiVertexInputLayout::bindingAt(qsizetype index) const

返回给定index 的绑定。

qsizetype QRhiVertexInputLayout::bindingCount() const

返回绑定的数量。

const QRhiVertexInputAttribute *QRhiVertexInputLayout::cbeginAttributes() const

返回指向属性列表第一项的常量迭代器。

const QRhiVertexInputBinding *QRhiVertexInputLayout::cbeginBindings() const

返回指向绑定列表中第一个项目的常量迭代器。

const QRhiVertexInputAttribute *QRhiVertexInputLayout::cendAttributes() const

返回一个常量迭代器,指向属性列表中的最后一项。

const QRhiVertexInputBinding *QRhiVertexInputLayout::cendBindings() const

返回一个常量迭代器,指向绑定列表中的最后一个项目。

void QRhiVertexInputLayout::setAttributes(std::initializer_list<QRhiVertexInputAttribute> list)

设置指定list 中的属性。

template <typename InputIterator> void QRhiVertexInputLayout::setAttributes(InputIterator first, InputIterator last)

使用迭代器firstlast 设置属性。

void QRhiVertexInputLayout::setBindings(std::initializer_list<QRhiVertexInputBinding> list)

设置指定list 中的绑定。

template <typename InputIterator> void QRhiVertexInputLayout::setBindings(InputIterator first, InputIterator last)

使用迭代器firstlast 设置绑定。

相关非会员

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

返回key 的哈希值,使用seed 作为计算的种子。

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

如果两个QRhiVertexInputLayout 对象ab 中的值相等,则返回false ;否则返回true

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

如果两个QRhiVertexInputLayout 对象ab 中的值相等,则返回true

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