<分区>
我有一个 vertex
结构,它存储一个顶点在二维平面中的位置,可以变换它的位置,还可以用来生成顶点以形成几何形状。我需要一个函数调用的参数来确定我需要多少这个结构我尝试使用数组但是这不起作用因为数组只接受常量变量并且我尝试了 vector 但是当我为顶点生成缓冲区时我不能使用 vector ,因为“没有从 vector 到 const void 的转换”这是函数。
void Sprite::init(Type mode, int verticesNum, float scale) {
//generate buffer if it hasn't been generated
if (_vboID == 0) {
glGenBuffers(1, &_vboID);
}
//make vector of structs using verticesNum as how many vertices are needed
std::vector<Vertex> vertexData(verticesNum);
if (mode == Type::CIRCLE) {
for (int i = verticesNum; i < verticesNum; i++) {
float angle = (M_PI / 180) * i;
vertexData[i].setPosition(cos(angle)*scale, sin(angle)*scale);
}
}
//Tell opengl to bind our vertex buffer object
glBindBuffer(GL_ARRAY_BUFFER, _vboID);
//Upload the data to the GPU
//this line is where i get the error as it can't use vertex data
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), /*right here*/vertexData/*to be more specific*/, GL_STATIC_DRAW);
//Unbind the buffer
glBindBuffer(GL_ARRAY_BUFFER, 0);
}