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


Функция 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 определяется следующим образом:
  1. Функция glColorSubTableEXT преобразует значения с плавающей запятой непосредственно во внутренний формат с неопределенной точностью. Целочисленные значения со знаком сопоставляются линейно с внутренним форматом таким образом, что наиболее положительное представляющее целочисленное значение сопоставляется с 1,0, а наиболее отрицательное из них — с -1,0. Целочисленные данные без знака сопоставляются аналогичным образом: наибольшее целочисленное значение сопоставляется с 1,0, а ноль — с 0,0.
  2. Функция glColorSubTableEXT умножает полученные значения цвета на GL_c_SCALE и добавляет их в GL_c_BIAS, где c — RED, GREEN, BLUE и ALPHA для соответствующих компонентов цвета. Результаты зажаты в диапазоне [0,1].
  3. Если GL_MAP_COLOR имеет значение TRUE, glColorSubTableEXT масштабирует каждый компонент цвета в соответствии с размером таблицы подстановки GL_PIXEL_MAP_c_TO_c, а затем заменяет компонент значением, на которое он ссылается в этой таблице; c имеет значение R, G, B или A соответственно.
  4. Функция glColorSubTableEXT преобразует результирующий цвет RGBA в фрагменты, прикрепляя текущую позицию растра z-координаты и координаты текстуры к каждому пикселю, а затем присваивая координаты окна x и yn-муфрагменту, так чтоx? = xr + nmod width
    Да? = yr +n / width
    где (xr , yr ) — текущая позиция растра.
  5. Эти пиксельные фрагменты обрабатываются так же, как фрагменты, созданные при растеризации точек, линий или многоугольников. Функция 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 .

Имя Значение
GL_INVALID_VALUE
start или count было недопустимым целым числом.
GL_INVALID_ENUM
Значение target, format или type не является допустимым.
GL_INVALID_VALUE
Функция была вызвана между вызовом 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 [только классические приложения]
Заголовок
Gl.h

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

glBegin

glColorTableEXT

glEnd

glGetColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

glGetString

wglGetProcAddress