После установки массива дополнительных атрибутов вершины size, type, normal ized, stride и pointer сохраняются в клиентском состоянии OpenGL.
Чтобы открыть или запретить доступ к массиву дополнительных атрибутов вершин, функции glEnableVertexAttribArrayARB и glDisableVertexAttribArrayARB вызываются с аргументом index. При использовании массива дополнительных атрибутов вершины он используется в функциях glDrawArrays, glDrawElements, glDrawRangeElements, gl ArrayElement, glMulti DrawEl ements, glMulti DrawArrays.
Приложение Б. Справочник функций API
Примечания По умолчанию массив дополнительных атрибутов вершины недоступен и не участвует в вызовах функций glDrawArrays, glDrawElements, glDrawRangeElements, glArrayElement, glMultiDrawElements, glMultiDrawArrays.
Выполнение функции gl VertexAttribPointerARB между соответствующими вызовами gl Begin и gl End не разрешается, но не всегда при этом возникает ошибка. Если ошибка не возникает, результат выполнения функции не определен.
Функция gl VertexAttribPointerARB обычно реализована в клиенте OpenGL.
Параметры массива дополнительных атрибутов вершины являются частью клиентского состояния, и поэтому функции glPushAttrib и glPopAttrib с ними не работают. Вместо этого следует использовать функции glPushClientAttrib и gl PopCl ientAttrib.
Ошибки
GL_INVALI D_VALUE возникает в следующих случаях:
□ значение index больше или равно GL_MAX_VERTEX_ATTRIBS_ARB;
□ значение si ze не равно 1, 2, 3 или 4;
□ значение stride отрицательное.
GL_INVALID_ENUM возникает, если type содержит некорректное значение.
Соответствующие GET-функции
glGetVertexAttribARB с аргументом index.
glGetVertexAttribPointerARB с аргументом index.
glGet с аргументом GL_MAX_VERTEX_ATTRIBS_ARB.
Смотри также
gl ArrayEl ement, gl Bi ndAttri bLocati onARB, gl Di sabl eVertexAttri bArrayARB, gl DrawArrays, gl DrawEl ements, gl DrawRangeEl ements, gl Enabl eVertexAttri bArrayARB, glMultiDrawArrays, glMultiDrawElements, glPopClientAttrib, gl PushCl ientAttri b, gl VertexAttri bARB