C ++ - OpenGL - 带有std :: vector的glBufferData

时间:2015-07-11 09:35:49

标签: c++ opengl vector

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

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

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

2 个答案:

答案 0 :(得分:1)

你可以这样做,假设m_indicesEBO是std :: vector。

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

答案 1 :(得分:0)

答案显示HERE是:

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

使用.front()

指向矢量开头的指针