Как получить длину VBO для отображения всех вершин при использовании glDrawArrays ()? - PullRequest
1 голос
/ 04 июня 2010

Я создаю VBO в функции и хочу только вернуть идентификатор VBO.

Я использую glDrawArrays в другой функции, и я хочу, чтобы она рисовала все вершины в VBO без необходимости передавать число вершин. VBO также содержит данные координат текстуры.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 04 июня 2010

Вам нужно вернуть его, извините. Данные о VBO могут находиться где-то далеко от вашего ЦП и иметь медленный доступ к ним, поэтому вам нужно локально хранить любые данные, которые вам нужны.

1 голос
/ 04 июня 2010

Возможно, это может быть бесполезно для вашего приложения, вы можете использовать glGetBufferParameteriv с аргументом GL_BUFFER_SIZE: он возвращает количество байтов объекта буфера.

Трудно сказать, что это решение, поскольку вы должны знать внутренний формат элемента буфера (и, действительно, его размер в байтах), чтобы иметь количество элементов, составляющих объект буфера.

Конечно, лучшее решение - хранить большую часть информации в классе, представляющем объект буфера, но, как я понимаю из вашего вопроса, это трудно реализовать.

...