VBOs com std :: vector
Eu escrevi um carregador de modelos em C ++ e OpenGL. Eu useistd::vector
s para armazenar meus dados de vértice, mas agora quero passar paraglBufferData()
, no entanto, os tipos de dados são totalmente diferentes. Quero saber se há uma maneira de converter entrestd::vector
para o documentadoconst GLvoid *
paraglBufferData()
.
typedef struct
{
float x, y, z;
float nx, ny, nz;
float u, v;
}
Vertex;
vector<Vertex> vertices;
glBufferData () callglBufferData(GL_ARRAY_BUFFER, vertices.size() * 3 * sizeof(float), vertices, GL_STATIC_DRAW);
Eu recebo o seguinte erro (esperado):
error: cannot convert ‘std::vector<Vertex>’ to ‘const GLvoid*’ in argument passing
Como converter o vetor em um tipo compatível comglBufferData()
?
NB. Não me importo com a alocação correta de memória no momento;vertices.size() * 3 * sizeof(float)
provavelmente ocorrerá um segfault, mas quero resolver o erro de tipo primeir