Смотри также
gl Bi ndAttri bLocationARB, glVertex,glVertexAttribPoi nterARB
g I VertexAttri b Poi nter ARB Название
gl VertexAttri bPoi nterARB - задает массив дополнительных атрибутов вершин.
Прототип функции
void glVertexAttribPointerAREK GLuint index,
GLint size,
GLenum type.
GLboolean normalized,
GLsizei stride.
const GLvoid *pointer)
Параметры
i ndex Индекс дополнительного атрибута вершины, который будет изменяться.
si ze Количество значений каждого элемента массива дополни тельных атрибутов вершины. Допустимые значения 1, 2, 3 или 4.
type Тип данных каждого компонента массива. Допустимые зна чения: GL_BYTE, GL_UNSIGNED_BYTE, GL_SH0RT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GLJLOAT, GL_D0UBLE.
normalized Флаг, определяющий, должны ли значения с фиксирован ной запятой быть нормализованы (GL_TRUE) или непосредственно преобразованы (GL_FALSE).
stride Разница в байтах между смежными атрибутами. Если этот параметр равен 0 (значение по умолчанию), считается, что значения расположены в массиве без промежутков.
poi nter Указатель на первый компонент первого атрибута в массиве.
Описание
Функция glVertexAttribPointerARB задает адрес и формат данных массива значений дополнительного атрибута вершины. В параметре size указывается количество компонентов каждого атрибута - 1, 2, 3 или 4. Параметр type задает тип данных каждого компонента, astride - расстояние между атрибутами, благодаря чему значения атрибутов могут быть перемешаны с другими значениями или, наоборот, храниться в отдельном массиве. При значении normalize, равном GL_TRUE, целочисленные значения преобразуются в значения с плавающей запятой и приводятся к диапазону [-1, 1] для знаковых и [0, 1] для беззнаковых переменных. В противном случае целочисленные значения преобразуются в значения с плавающей запятой без нормализации.
После установки массива дополнительных атрибутов вершины size, type, normalized, stride и pointer сохраняются в клиентском состоянии OpenGL.
Чтобы открыть или запретить доступ к массиву дополнительных атрибутов вершин, функции glEnableVertexAttribArrayARB и glDisableVertexAttribArrayARB вызываются с аргументом index. При использовании массива дополнительных атрибутов вершины он используется в функциях gl DrawArrays, gl DrawEl ements, gl DrawRangeEl ements, glArrayElement, glMultiDrawElements, glMulti DrawArrays.
Примечания
По умолчанию массив дополнительных атрибутов вершины недоступен и не участвует в вызовах функций gl DrawArrays, gl DrawEl ements, gl DrawRangeEl ements, gl ArrayEl ement, glMultiDrawElements, gl Multi DrawArrays.
Выполнение функции gl VertexAttri bPoi nterARB между соответствующими вызовами gl Begin и gl End не разрешается, но не всегда при этом возникает ошибка. Если ошибка не возникает, результат выполнения функции не определен. Функция gl VertexAttri bPoi nterARB обычно реализована в клиенте OpenGL. Параметры массива дополнительных атрибутов вершины являются частью клиентского состояния, и поэтому функции glPushAttrib и glPopAttrib с ними не работают. Вместо этого следует использовать функции gl PushCl i entAttri b и glPopClientAttrib.