VBOs con std :: vector
He escrito un cargador de modelos en C ++ y OpenGL. He usadostd::vector
s para almacenar mis datos de vértice, pero ahora quiero pasarlos aglBufferData()
, sin embargo, los tipos de datos son muy diferentes. Quiero saber si hay una manera de convertir entrestd::vector
a la @ documentaconst GLvoid *
paraglBufferData()
.
typedef struct
{
float x, y, z;
float nx, ny, nz;
float u, v;
}
Vertex;
vector<Vertex> vertices;
glBufferData () llame aglBufferData(GL_ARRAY_BUFFER, vertices.size() * 3 * sizeof(float), vertices, GL_STATIC_DRAW);
Recibo el siguiente error (esperado):
error: cannot convert ‘std::vector<Vertex>’ to ‘const GLvoid*’ in argument passing
¿Cómo puedo convertir el vector a un tipo compatible conglBufferData()
?
NÓTESE BIEN. No me importa la asignación correcta de memoria en este momento; @vertices.size() * 3 * sizeof(float)
o más probable es que @ sea predeterminado, pero primero quiero resolver el error de tipo.