C++ - OpenGL - glBufferData with std::vector

C++ - OpenGL - glBufferData with std::vector

本文关键字:std vector glBufferData OpenGL C++ with      更新时间:2023-10-16

我想使用函数glBufferData来填充一些索引/顶点。但是我有我的数组在std::vector和glBufferData只允许char*.

glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(m_indicesEBO), m_indicesEBO, GL_STATIC_DRAW);

如何在这里使用std::vector ?

答案如下:

glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(m_indicesEBO), &m_indicesEBO.front(), GL_STATIC_DRAW);

使用。front()

将指针指向vector的开头

您可以这样做,假设m_indicesEBO是std::向量。

glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_indicesEBO.size() * sizeof(<data type>), &m_indicesEBO[0], GL_STATIC_DRAW);