glVertexPointer - визначення масиву вертексних даних.

C специфікація

void glVertexPointer (GLint size, 
                      GLEnum type, 
                      GLsizei stride, 
                      const GLvoid* poiter) ;

Параметри

size - вказує кількість координат на один вертекс. Повинно мати значення 2, 3 або 4. Значення за умовчанням 4. type - вказує тип даних кожної координати у масиві. Доступні наступні символічні константи GL_SHORT, GL_INT, GL_FLOAT або GL_DOUBLE. Значення за умовчанням GL_FLOAT. stride - вказує байтове зміщення між сусідніми вертексами. Якщо значення stride являється 0, вважається що вертекси щільно упаковані у масиві. Значення за умовчанням 0. pointer - передає вказівник на першу координату у масиві. Значення за умовчанням 0.

Опис

glVertexPointer вказує розміщення і формат даних у масиві координат вертексів для використання під час рендерингу. Параметр size вказує кількість координат на вертекс, і повинен мати значення 2, 3 або 4. Парамтер type вказує тип даних кожної координати, і stride вказує зміщення від одного вертекса до наступного, дозволяючи вертексам і атрибутам бути упакованими у один масив або у різних масивах. (Одно-масивна пам'ять може бути більш ефективною на деяких реалізаціях; перегляньте glInterleavedArrays). Якщо не нульовий іменований об'єктний буфер прив'язаний до цілі GL_ARRAY_BUFFER (перегляньте glBindBuffer) поки вказаний вертексний масив, параметр pointer трактується у якості зміщення байтів у даних об'єтного буферу. Також, зв'язування об'єктного буферу (GL_ARRAY_BUFFER_BINDING) зберігається у якості вертексного масиву у стані клієнтської сторони. (GL_VERTEX_ARRAY_BUFFER_BINDING). Коли вказаний вертексний масив параметри size, type, stride i pointer зберігаються у якості стану клієнтської сторони, у добавок до поточної прив'язки вертексного масиву об'єктного буферу. Для увімкнення чи вимкнення вертексного масиву, викликайте glEnableClientState i glDisableClientState з аргументом GL_VERTEX_ARRAY. Якщо увімкнений, вертексний масив використовується коли викликаються glArrayElement, glDrawArrays, glMultiDrawArrays, glDrawElements, glMultiDrawElements або glDrawRangeElements.

Примітка

glVertexPointer доступний тільки якщо версія OpenGL являється 1.1 або вищою. Вертексні масиви за умовчанням вимкнені і не використовуються коли викликаються функції glArrayElement, glDrawElements, glDrawRangeElements, glDrawArrays, glMultiDrawArrays або glMultoDrawElements. Виконання glVertexPointer не дозволяється між викликами glBegin і відповідного glEnd, але помилка може не генеруватись. Якщо жодна помилка не генерується, операція не визначена. glVertexPointer зазвичай реалізовується на клієнтській стороні. Параметри вертексного масиву являються клієнтським станом і отже не зберігаються функціями glPushAttrib i glPopAttrib. Використовуйте glPushClientAttrib i glPopClientAttrib.

Помилки

GL_INVALID_VALUE генерується коли параметр size не містить значення 2, 3 або 4. GL_INVALID_ENUM генерується коли type не містить допустимого значення. GL_INVALID_VALUE генерується коли stride містить негативне значення.

Пов'язані параметри

glIsEnabled з аргументом GL_VERTEX_ARRAY glGet з аргументом GL_VERTEX_ARRAY_SIZE glGet з аргументом GL_VERTEX_ARRAY_TYPE glGet з аргументом GL_VERTEX_ARRAY_STRIDE glGet з аргументом GL_VERTEX_ARRAY_BUFFER_BINDING glGet з аргументом GL_ARRAY_BUFFER_BINDING glGetPointerv з аргументом GL_VERTEX_ARRAY_POINTER

Перегляньте також

glArrayElement, glBindBuffer, glColorPointer, glDisableClientState, glDrawArrays, glDrawElements, glDrawRangeElements, glEdgeFlagPointer, glEnableClientState, glFogCoordPointer,glIndexPointer, glInterleavedArrays, glMultiDrawArrays, glMultiDrawElements, glNormalPointer, glPopClientAttrib, glPushClientAttrib, glSecondaryColorPointer, glTexCoordPointer, glVertex, glVertexAttribPointer Оригінал: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glVertexPointer.xml