Функция glColorSubTableEXT
Функция glColorSubTableEXT указывает часть палитры целевой текстуры, которую необходимо заменить.
Синтаксис
void WINAPI glColorSubTableEXT(
GLenum target,
GLsizei start,
GLsizei count,
GLenum format,
GLenum type,
const GLvoid *data
);
Параметры
-
target
-
Целевая текстура с палитрой, которая будет изменена. Должен быть TEXTURE_1D или TEXTURE_2D.
-
start
-
Начальная запись индекса палитры, изменяемой.
-
count
-
Число записей индекса палитры, которые необходимо изменить, начиная с начала. Параметр count определяет диапазон измененных записей индекса палитры.
-
format
-
Формат пиксельных данных. Принимаются следующие символьные константы.
Значение Значение - GL_RGBA
Каждый пиксель представляет собой группу из четырех компонентов в следующем порядке: красный, зеленый, синий, альфа-канал. Формат RGBA определяется следующим образом: - Функция glColorSubTableEXT преобразует значения с плавающей запятой непосредственно во внутренний формат с неопределенной точностью. Целочисленные значения со знаком сопоставляются линейно с внутренним форматом таким образом, что наиболее положительное представляющее целочисленное значение сопоставляется с 1,0, а наиболее отрицательное из них — с -1,0. Целочисленные данные без знака сопоставляются аналогичным образом: наибольшее целочисленное значение сопоставляется с 1,0, а ноль — с 0,0.
- Функция glColorSubTableEXT умножает полученные значения цвета на GL_c_SCALE и добавляет их в GL_c_BIAS, где c — RED, GREEN, BLUE и ALPHA для соответствующих компонентов цвета. Результаты зажаты в диапазоне [0,1].
- Если GL_MAP_COLOR имеет значение TRUE, glColorSubTableEXT масштабирует каждый компонент цвета в соответствии с размером таблицы подстановки GL_PIXEL_MAP_c_TO_c, а затем заменяет компонент значением, на которое он ссылается в этой таблице; c имеет значение R, G, B или A соответственно.
- Функция glColorSubTableEXT преобразует результирующий цвет RGBA в фрагменты, прикрепляя текущую позицию растра z-координаты и координаты текстуры к каждому пикселю, а затем присваивая координаты окна x и yn-муфрагменту, так чтоx?
=
xr + nmod width
Да? = yr +n / width
где (xr , yr ) — текущая позиция растра. - Эти пиксельные фрагменты обрабатываются так же, как фрагменты, созданные при растеризации точек, линий или многоугольников. Функция glColorSubTableEXT применяет сопоставление текстур, туман и все операции фрагментов перед записью фрагментов в framebuffer.
- GL_RED
Каждый пиксель является одним красным компонентом.
Функция glColorSubTableEXT преобразует этот компонент во внутренний формат так же, как красный компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с зеленым и синим цветом, равным 0,0, а альфа -значение 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_GREEN
Каждый пиксель является одним зеленым компонентом.
Функция glColorSubTableEXT преобразует этот компонент во внутренний формат так же, как зеленый компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным и синим цветом, равным 0,0, а альфа -значение 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_BLUE
Каждый пиксель является одним синим компонентом.
Функция glColorSubTableEXT преобразует этот компонент во внутренний формат так же, как синий компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным и зеленым значением 0,0, а альфа -значение 1.0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_ALPHA
Каждый пиксель является одним альфа-компонентом.
Функция glColorSubTableEXT преобразует этот компонент во внутренний формат так же, как альфа-компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным, зеленым и синим значением 0,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_RGB
Каждый пиксель представляет собой группу из трех компонентов в этом порядке: красный, зеленый, синий.
Функция glColorSubTableEXT преобразует каждый компонент во внутренний формат так же, как красный, зеленый и синий компоненты пикселя RGBA. Три цвета преобразуется в пиксель RGBA с альфа-значением 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_BGR_EXT
Каждый пиксель представляет собой группу из трех компонентов в этом порядке: синий, зеленый, красный.
GL_BGR_EXT предоставляет формат, соответствующий макету памяти для независимых от устройств точечных изображений (DIB) Windows. Таким образом, приложения могут использовать одни и те же данные с вызовами функций Windows и пиксельных функций OpenGL.- GL_BGRA_EXT
Каждый пиксель представляет собой группу из четырех компонентов в таком порядке: синий, зеленый, красный, альфа.
GL_BGRA_EXT предоставляет формат, соответствующий макету памяти независимых от устройств windows растровых изображений (DIB). Таким образом, приложения могут использовать одни и те же данные с вызовами функций Windows и пиксельных функций OpenGL. -
type
-
Тип данных для данных. Принимаются следующие символьные константы: GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT и GL_FLOAT.
В следующей таблице приведено значение допустимых констант для параметра типа .
Значение Значение - GL_UNSIGNED_BYTE
8-разрядное целое число без знака - GL_BYTE
8-разрядное целое число со знаком - GL_UNSIGNED_SHORT
16-разрядное целое число без знака - GL_SHORT
16-разрядное целое число со знаком - GL_UNSIGNED_INT
32-разрядное целое число без знака - GL_INT
32-разрядное целое число - GL_FLOAT
Число одинарной точности с плавающей запятой -
data
-
Указатель на данные текстуры в палитре. Данные обрабатываются как отдельные пиксели записи одноуровневой текстуры для элемента палитры.
Возвращаемое значение
Эта функция не возвращает значение.
Коды ошибок
Следующие коды ошибок могут быть получены функцией glGetError .
Имя | Значение |
---|---|
|
start или count было недопустимым целым числом. |
|
Значение target, format или type не является допустимым. |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd. |
Комментарии
Функция glColorSubTableEXT указывает части текущей палитры целевой текстуры, которые необходимо заменить. В отличие от glColorTableEXT, целевой параметр нельзя указать в качестве прокси-палитры текстур.
Примечание
Функция glColorSubTableEXT — это функция расширения, которая не является частью стандартной библиотеки OpenGL, но является частью расширения GL_EXT_paletted_texture. Чтобы проверка, поддерживает ли ваша реализация OpenGL glColorSubTableEXT, вызовите glGetString(GL_EXTENSIONS). Если возвращается GL_EXT_paletted_texture, поддерживается glColorSubTableEXT . Чтобы получить адрес функции расширения, вызовите wglGetProcAddress.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|