Я просматриваю образец кода OpenGL, который я портировал на OpenGL ES 2.0 (на самом деле не так много было сделано), но я не могу не задаться вопросом, для чего предназначена функция glBufferData
. Исходный источник выглядит следующим образом:
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * 2 * 6, quad, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 2, (void *) 0);
Но я могу с успехом упростить его как:
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 2, quad);
То есть я могу опустить функцию glBufferData
, просто используя действительный указатель на квадратный массив в glVertexAttribPointer
.
Итак, может ли кто-нибудь объяснить, для чего предназначена функция glBufferData
? Из того, что я делаю, это кажется излишним, но это должно быть из-за моего серьезного незнания API. На самом деле я пробовал читать документы в khronos.org, но это не помогло мне понять его использование.