glColorPointer - оголошення масиву кольорів.

C специфікація

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

Параметри

size - вказує кількість компонентів на один колір. Повинен містити значення 3 або 4. Значення за умовчанням 4. type - вказує тип даних кожного компоненту кольору у масиві. Приймаються наступні символічні константи: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT і GL_DOUBLE. Значення за умовчанням GL_FLOAT. stride - вказує зміщення даних між сусідніми кольорами. Якщо stride містить значення 0, вважається, що компоненти у масиві компактно упаковані. Значення за умовчанням 0. pointer - передає вказівник на перший компонент першого кольору у масиві. Значення за умовчанням 0.

Опис

Команда glColorPointer вказує розміщення і формат даних масиву компонентів кольору для використання під час створення малюнку. Параметр size вказує кількість компонентів на колір, і повинен містити значення 3 або 4. Параметр type вказує тип даних кожного компоненту кольору і stride вказує байтове зміщення від одного кольору до наступного, дозволяючи вертексам і атрибутам бути упакованими у один масив або у різних масивах. (Одно-масивне зберігання може бути більш ефективним на деяких реалізаціях; перегляньте glInterleavedArrays). Якщо не нульовий іменований об'єктний буфер прив'язаний до цілі GL_ARRAY_BUFFER (перегляньте glBindBuffer), поки вказаний масив кольору, pointer трактується у якості зміщення байтів у даних об'єктного буферу. Також, пов'язування об'єктного буферу (GL_ARRAY_BUFFER_BINDING) зберігається у якості масиву кольору стану на стороні клієнта (GL_COLOR_ARRAY_BUFFER_BINDING). Коли вказаний масив кольору, параметри size, type, stride і pointer зберігаються у якості стану клієнта, у добавок до поточної прив'язки об'єктного буферу вертексів. Для увімкнення і вимкнення масиву кольорів, викликайте glEnableClientState і glDisableClientState з аргументом GL_COLOR_ARRAY. Якщо увімкнений, масив кольорів використовується коли викликаються наступні команди glDrawArrays, glMultiDrawArrays, glDrawElements, glMultiDrawElements, glDrawRangeElements або glArrayElement.

Нотатки

glColorPointer доступний тільки якщо версія OpenGL являться 1.1 або вище. Масив кольорів за умовчанням являється вимкненим і не використовується коли викликаються команди  glArrayElement, glDrawElements, glDrawRangeElements, glDrawArrays, glMultiDrawArrays або glMultiDrawElements. Виклик glColorPointer не дозволяється між викликами функцій glBegin і відповідного виклику glEnd, але помилка може не генеруватися. Якщо помилка не генерується, операція не визначена. glColorPointer зазвичай реалізовується на клієнтській стороні. Параметри масиву кольорів являється станом клієнтської сторони і отже не зберігається glPushAttrib і glPopAttrib. Замість них використовуйте glPushClientAttrib і glPopClientAttrib.

Помилки

GL_INVALID_VALUE генерується якщо параметр size не містить значення 3 або 4. GL_INVALID_ENUM генерується якщо параметр type не містить допустимого значення. GL_INVALID_VALUE генерується якщо параметр stride містить негативне значення.

Пов'язані параметри

glIsEnabled з аргументом GL_COLOR_ARRAY glGet з аргументом GL_COLOR_ARRAY_SIZE glGet з аргументом GL_COLOR_ARRAY_TYPE glGet з аргументом GL_COLOR_ARRAY_STRIDE glGet з аргументом GL_COLOR_ARRAY_BUFFER_BINDING glGet з аргументом GL_ARRAY_BUFFER_BINDING glGetPointerv з аргументом GL_COLOR_ARRAY_POINTER

Перегляньте також

glArrayElement, glBindBuffer, glColor, glDisableClientState, glDrawArrays, glDrawElements, glDrawRangeElements, glEdgeFlagPointer, glEnableClientState, glFogCoordPointer, glIndexPointer, glInterleavedArrays, glMultiDrawArrays, glMultiDrawElements, glNormalPointer, glPopClientAttrib, glPushClientAttrib, glSecondaryColorPointer, glTexCoordPointer, glVertexAttribPointer, glVertexPointer Оригінал: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glColorPointer.xml