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