glIndexPointer - визначає масив колірних індексів.
C-специфікація
void glIndexPointer (GLenum type, GLsizei stride, const void * pointer) ;
Параметри
type вказує тип даних для кожного колірного індексу у масиві. Приймаються наступні символічні константи: GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT і GL_DOUBLE. Значення за умовчанням являється GL_FLOAT.
stride вказує зміщення байтів між сусідніми колірними індексами. Якщо stride містить значення 0, вважається, що колірні індекси компакно упаковані в масиві. Значення за умовчанням 0.
pointer параметр передає вказівник на пергий колірний індекс масиву. Значення за умовчанням являється 0.
Опис
Функція glIndexPointer вказує розміщення і формат даних масиву колірних індексів, які необхідно викоритстовувати під час створення зображення. Параметр type вказує тип даних кожного колірного індексу і параметр stride вказує байтове зміщення від одного колірного індексу до іншого, дозволяючи вертексам і атрибутам упаковуватися в один масив або зберігати у різних масивах.
Якщо ненульовий іменований об'єктний буфер прив'язаний до цілі GL_ARRAY_BUFFER (перегляньте glBindBuffer) поки вказаний колір-індексний масив, параметр pointer трактується у якості байтового зміщення у збережених даних об'єктного буферу. Також, зв'язування об'єктного буферу (GL_ARRAY_BUFFER_BINDING) зберігається у якості вертексного масиву колірних індексів на стороні стану клієнта (GL_INDEX_ARRAY_BUFFER_BINDING).
Коли вказаний масив колірного індексу, параметри type, stride і pointer зберігаються у якості стану на стороні клієнта, в додатку до поточного буфера вертексного масиву.
Для увімкнення і вимкнення масиву колірного індексу, викликайте функцію glEnableClientState і glDisableClientState з аргументом GL_INDEX_ARRAY. Якщо увімкнено, колір-індексний масив використовується під час виклику функцій glDrawArrays, glMultiDrawArrays, glDrawElements, glMultiDrawElements, glDrawRangeElements або glArrayElement.
Нотатки
Функція glIndexPointer доступна у системі OpenGL версії 1.1 або вище.
Колірні індекси не підтримуються для перехресних форматів вертексних масивів (перегляньте glInterleavedArrays).
За умовчанням колір-індексні масиви являються вимкненими і не використовуються під час виклику функцій glArrayElement, glDrawElement, glDrawRangeElements, glDrawArrays, glMultiDrawArrays або glMultiDrawElements.
Виклик функції glIndexPointer не дозволений між функціями glBegin і відповідною їй glEnd, але помилка може не генеруватися. Якщо помилка не генерується, результат невизначений.
Функція glIndexPointer зазвичай реалізовується на стороні клієнта.
Параметри масиву колірних індексів являються станом на стороні клієнта і отже не зберігаються або використовуються при виклику функцій glPushAttrib і glPopAttrib. Використовуйте glPushClientAttrib і glPopClientAttrib.
Помилки
GL_INVALID_ENUM генерується якщо параметр type не містить доступного значення.
GL_INVALID_VALUE генерується якщо параметр stride містить негативне значення.
Пов'язані параметри
glIsEnabled з аргументом GL_INDEX_ARRAY
glGet з аргументом GL_INDEX_ARRAY_TYPE
glGet з аргументом GL_INDEX_ARRAY_STRIDE
glGet з аргументом GL_INDEX_ARRAY_BUFFER_BINDING
glGet з аргументом GL_ARRAY_BUFFER_BINDING
glGetPointerv з аргументом GL_INDEX_ARRAY_POINTER
Перегляньте також
glArrayElement, glBindBuffer, glColorPointer, glDisableClientState, glDrawArrays, glDrawElements, glDrawRangeElements, glEdgeFlagPointer, glEnableClientState, glFogCoordPointer, glIndex, glInterleavedArrays, glMultiDrawArrays, glMultiDrawElements, glNormalPointer, glPopClientAttrib, glPushClientAttrib, glSecondaryColorPointer, glTexCoordPointer, glVertexAttribPointer, glVertexPointer
Оригінал
https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glIndexPointer.xml