@Marcelo: мне это нравится.

исал загрузчик моделей на C ++ и OpenGL. Я использовалstd::vectors, чтобы сохранить мои данные вершин, но теперь я хочу передать ихglBufferData()Однако типы данных сильно отличаются. Я хочу знать, есть ли способ конвертировать междуstd::vector к документированномуconst GLvoid * заglBufferData().

Тип вершины
typedef struct
{
    float x, y, z;
    float nx, ny, nz;
    float u, v;
}
Vertex;

vector<Vertex> vertices;
вызов glBufferData ()
glBufferData(GL_ARRAY_BUFFER, vertices.size() * 3 * sizeof(float), vertices, GL_STATIC_DRAW);

Я получаю следующую (ожидаемую) ошибку:

error: cannot convert ‘std::vector<Vertex>’ to ‘const GLvoid*’ in argument passing

Как я могу преобразовать вектор в тип, совместимый сglBufferData()?

NB. Я не забочусь о правильном распределении памяти в данный момент;vertices.size() * 3 * sizeof(float) будет, скорее всего, segfault, но я хочу сначала решить ошибку типа.

Ответы на вопрос(2)

Ваш ответ на вопрос