Поскольку мы используем OpenGL 4.5 или поддерживаем расширение GL_ARB_direct_state_access
, у нас есть новая функция _2 _ а>.
Эта функция имеет такую же сигнатуру, что и glGenBuffers
, но указывает:
возвращает
n
ранее неиспользованные имена буферов вbuffers
, каждое из которых представляет новый объект буфера, инициализированный, как если бы он был привязан к неуказанной цели
glGenBuffers
имеет следующую спецификацию:
Имена объектов буфера, возвращаемые вызовом
glGenBuffers
, не возвращаются при последующих вызовах, если они не были сначала удалены с помощьюglDeleteBuffers
.
Таким образом, любое имя буфера, возвращаемое glCreateBuffers
, никогда не будет использоваться снова само по себе, но может быть использовано glGenBuffers
.
Кажется, что glCreateBuffers
всегда будет создавать новые буферные объекты и возвращать их имена, а glGenBuffers
будет создавать новые буферы только в том случае, если нет предыдущих буферов, которые были удалены с тех пор.
Какие преимущества дает добавление этой функции?
Когда мне следует использовать glCreateBuffers
вместо glGenBuffers
?
P.S.
Я думаю, это означает все glCreate*
функции, добавленные GL_ARB_direct_state_access
glGenBuffers
никогда не будет создавать новые буферы. - person Ben Voigt   schedule 05.08.2015glBindBuffer
, имеет смысл - person RamblingMad   schedule 05.08.2015glBindBuffer
, потому что инициализация, как если бы он был привязан к неуказанной цели, не очень полезен. Возможно, есть разница в том, какие операции разрешены до вызоваglBindBuffer
. - person Ben Voigt   schedule 05.08.2015glVertexArray*Buffer[s]
- person RamblingMad   schedule 05.08.2015