Поделиться через


Функция glVertexPointer

Функция glVertexPointer определяет массив данных вершин.

Синтаксис

void WINAPI glVertexPointer(
         GLint   size,
         GLenum  type,
         GLsizei stride,
   const GLvoid  *pointer
);

Параметры

size

Количество координат на вершину. Значение параметра size должно быть равно 2, 3 или 4.

type

Тип данных каждой координаты в массиве с использованием следующих символьных констант: GL_SHORT, GL_INT, GL_FLOAT и GL_DOUBLE.

Шаг

Смещение байтов между последовательными вершинами. Если шаг равен нулю, вершины плотно упаковываются в массив.

Указатель

Указатель на первую координату первой вершины в массиве.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_INVALID_VALUE
размер не был 2, 3 или 4.
GL_INVALID_ENUM
Тип не является допустимым значением.
GL_INVALID_VALUE
шаг илисчетчик был отрицательным.

Комментарии

Функция glVertexPointer указывает расположение и данные массива координат вершин для использования при отрисовке. Параметр size указывает количество координат на вершину. Параметр type указывает тип данных каждой координаты вершины. Параметр stride определяет смещение байтов от одной вершины к другой, позволяя упаковывать вершины и атрибуты в одном массиве или хранить в отдельных массивах. В некоторых реализациях хранение вершин и атрибутов в одном массиве может быть более эффективным, чем использование отдельных массивов (см. glInterleavedArrays).

Массив вершин включается при указании константы GL_VERTEX_ARRAY с помощью glEnableClientState. Если этот параметр включен, glDrawArrays, glDrawElements и glArrayElement используют массив вершин. По умолчанию массив вершин отключен.

Невозможно включить glVertexPointer в списки отображения.

При указании массива вершин с помощью glVertexPointer значения всех параметров массива вершин функции сохраняются в клиентском состоянии, а статические элементы массива можно кэшировать. Так как параметры массива вершин находятся в состоянии на стороне клиента, их значения не сохраняются и не восстанавливаются с помощью glPushAttrib и glPopAttrib.

Хотя при вызове glVertexPointer в парах glBegin и glEnd ошибка не создается, результаты не определены.

Следующие функции извлекают сведения, связанные с glVertexPointer:

glGet с аргументом GL_VERTEX_ARRAY_SIZE

glGet с аргументом GL_VERTEX_ARRAY_STRIDE

glGet с аргументом GL_VERTEX_ARRAY_COUNT

glGet с аргументом GL_VERTEX_ARRAY_TYPE

glGetPointerv с аргументом GL_VERTEX_ARRAY_POINTER

glIsEnabled с аргументом GL_VERTEX_ARRAY

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glArrayElement

glColorPointer

glDrawArrays

glEdgeFlagPointer

glEnableClientState

glGetPointerv

glGetString

glIndexPointer

glIsEnabled

glNormalPointer

glTexCoordPointer