Поделиться через


Функция glColorPointer

Функция glColorPointer определяет массив цветов.

Синтаксис

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

Параметры

size

Количество компонентов на цвет. Значение должно быть равно 3 или 4.

type

Тип данных каждого компонента цвета в цветовом массиве. Допустимые типы данных указываются со следующими константами: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT или GL_DOUBLE.

Шаг

Смещение байтов между последовательными цветами. Если шаг равен нулю, цвета плотно упаковываются в массив.

Указатель

Указатель на первый компонент первого элемента цвета в цветовом массиве.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_INVALID_VALUE
размер не был 3 или 4.
GL_INVALID_ENUM
Type не является допустимым значением.
GL_INVALID_VALUE
шаг илисчетчик был отрицательным.

Комментарии

Функция glColorPointer определяет расположение и формат данных массива цветовых компонентов, используемых при отрисовке. Параметр stride определяет смещение байтов от одного цвета к другому, позволяя упаковывать атрибуты вершин в одном массиве или хранить их в отдельных массивах. В некоторых реализациях хранение атрибутов вершин в одном массиве может быть более эффективным, чем использование отдельных массивов.

Включив массив цветов, указав константу GL_COLOR_ARRAY с помощью glEnableClientState. При вызове glArrayElement, glDrawElements или glDrawArrays используется включенный таким образом массив цветов. По умолчанию цветовой массив отключен. Вызовы glColorPointer не могут быть введены в отображаемых списках.

При указании цветового массива с помощью glColorPointer значения всех параметров цветового массива функции сохраняются в клиентском состоянии, и вы можете кэшировать статические элементы массива. Так как параметры массива цветов находятся в клиентском состоянии, значения параметров glPushAttrib и glPopAttrib не сохраняются и не восстанавливаются.

Хотя указание массива цветов в парах glBegin и glend не приводит к ошибке, результаты не определены.

Следующие функции извлекают сведения, связанные с функцией glColorPointer :

glIsEnabled с аргументом GL_COLOR_ARRAY

glGet с аргументом GL_COLOR_ARRAY_SIZE

glGet с аргументом GL_COLOR_ARRAY_TYPE

glGet с аргументом GL_COLOR_ARRAY_STRIDE

glGet с аргументом GL_COLOR_ARRAY_COUNT

glGetPointerv с аргументом GL_COLOR_ARRAY_POINTER

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glArrayElement

glBegin

glDrawArrays

glEdgeFlagPointer

glEnableClientState

glEnd

glGet

glGetString

glGetPointerv

glIndexPointer

glIsEnabled

glNormalPointer

glPopAttrib

glPushAttrib

glTexCoordPointer

glVertexPointer