Какие типы контейнеров может принимать glBufferData () помимо массива? - PullRequest
0 голосов
/ 14 января 2012

У меня есть вопрос относительно метода OpenGL glBufferData (). Могу ли я передать данные вершин в структурах, таких как std :: vector, std :: list, или это должен быть классический ([]) массив чисел?

Ответы [ 2 ]

2 голосов
/ 14 января 2012

Вы должны передать классический массив в glBufferData () (API OpenGL определен в C).Однако вы можете использовать std :: vector <>, преобразовав его в массив с &v[0] (также см. Преобразование между C ++ std :: vector и C array без копирования ).

1 голос
/ 14 января 2012

Это в основном нуждается в массиве.Вы должны быть в состоянии использовать std::vector, так как он требует непрерывного хранения.Большинство других, включая std::list, не будут работать.Для std::list это должно было бы быть написано, чтобы следовать указателям, и знать достаточно о внутренностях, чтобы иметь возможность находить указатели - но это, вероятно, варьируется между реализациями и может даже изменяться, передавая различные флаги с той же реализацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...