Функция glColorTableEXT
Функция glColorTableEXT задает формат и размер палитры для целевых текстур с палитрой.
Синтаксис
void WINAPI glColorTableEXT(
GLenum target,
GLenum internalFormat,
GLsizei width,
GLenum format,
GLenum type,
const GLvoid *data
);
Параметры
-
target
-
Целевая текстура, в которую необходимо изменить палитру. Должен быть TEXTURE_1D, TEXTURE_2D, PROXY_TEXTURE_1D или PROXY_TEXTURE_2D.
-
InternalFormat
-
Внутренний формат и разрешение палитры. Этот параметр может принимать одно из следующих символьных значений.
Константа Базовый формат Биты R G Биты Биты B Биты GL_R3_G3_B2 GL_RGB 3 3 2 GL_RGB4 GL_RGB 4 4 4 GL_RGB5 GL_RGB 5 5 5 GL_RGB8 GL_RGB 8 8 8 GL_RGB10 GL_RGB 10 10 10 GL_RGB12 GL_RGB 12 12 12 GL_RGB16 GL_RGB 16 16 16 GL_RGBA2 GL_RGBA 2 2 2 2 GL_RGBA4 GL_RGBA 4 4 4 4 GL_RGB5_A1 GL_RGBA 5 5 5 1 GL_RGBA8 GL_RGBA 8 8 8 8 GL_RG10_A2 GL_RGBA 10 10 10 2 GL_RGB12 GL_RGBA 12 12 12 12 GL_RGBA16 GL_RGBA 16 16 16 16 -
width
-
Размер палитры. Для некоторого целого числа n должно быть 2n = 1.
-
format
-
Формат пиксельных данных. Принимаются следующие символьные константы.
Значение Значение - GL_RGBA
Каждый пиксель представляет собой группу из четырех компонентов в этом порядке: красный, зеленый, синий, альфа. Формат RGBA определяется следующим образом: - Функция glColorTableEXT преобразует значения с плавающей запятой непосредственно во внутренний формат с неопределенной точностью. Целочисленные значения со знаком сопоставляются линейно с внутренним форматом таким образом, что наиболее положительное представляющее целочисленное значение сопоставляется с 1,0, а наиболее отрицательное целочисленное значение — с -1,0. Целочисленные данные без знака сопоставляются аналогичным образом: наибольшее целочисленное значение сопоставляется с 1,0, а ноль — с 0,0.
- Функция glColorTableEXT умножает полученные значения цвета на GL_c_SCALE и добавляет их в GL_c_BIAS, где c — RED, GREEN, BLUE и ALPHA для соответствующих компонентов цвета. Результаты зажаты в диапазоне [0,1].
- Если GL_MAP_COLOR имеет значение TRUE, glColorTableEXT масштабирует каждый компонент цвета в соответствии с размером таблицы подстановки GL_PIXEL_MAP_c_TO_c, а затем заменяет компонент значением, на которое он ссылается в этой таблице; c имеет значение R, G, B или A соответственно.
- Функция glColorTableEXT преобразует результирующий цвет RGBA в фрагменты, прикрепляя текущую позицию растра z-координаты и координаты текстуры к каждому пикселю, а затем присваивая координаты окна x и yn-муфрагменту таким образом, чтоx?
=
xr + nmod width
Y? = yr +n / width
где (xr , yr ) — текущая позиция растра. - Эти пиксельные фрагменты обрабатываются так же, как фрагменты, созданные при растеризации точек, линий или многоугольников. Функция glColorTableEXT применяет сопоставление текстур, туман и все операции с фрагментами перед записью фрагментов в framebuffer.
- GL_RED
Каждый пиксель является одним красным компонентом.
Функция glColorTableEXT преобразует этот компонент во внутренний формат так же, как красный компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с зеленым и синим цветом, равным 0,0, а альфа - равным 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_GREEN
Каждый пиксель является одним зеленым компонентом.
Функция glColorTableEXT преобразует этот компонент во внутренний формат так же, как зеленый компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным и синим цветом, равным 0,0, а альфа -значение 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_BLUE
Каждый пиксель является одним синим компонентом.
Функция glColorTableEXT преобразует этот компонент во внутренний формат так же, как синий компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным и зеленым параметрами 0,0, а альфа -значение 1.0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_ALPHA
Каждый пиксель является одним альфа-компонентом.
Функция glColorTableEXT преобразует этот компонент во внутренний формат так же, как альфа-компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным, зеленым и синим значением 0,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.- GL_RGB
Каждый пиксель представляет собой группу из трех компонентов в этом порядке: красный, зеленый, синий.
Функция glColorTableEXT преобразует каждый компонент во внутренний формат так же, как красный, зеленый и синий компоненты пикселя 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 .
Имя | Значение |
---|---|
|
width — недопустимое целое число. |
|
Target, internalFormat, format или type не были принятыми значениями. |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd. |
Комментарии
Текстуры в палитре определяются с помощью палитры цветов и набора данных изображения, который состоит из индексов к цветовым записям палитры (таблица цветов).
Функция glColorTableEXT указывает палитру текстур целевой текстуры. Он принимает данные из памяти и преобразует их так, как если бы каждая запись палитры представляет собой один пиксель объемной текстуры. Функция glColorTableEXT распаковывает и преобразует данные и преобразует их во внутренний формат, максимально соответствующий заданному формату .
Если ширина палитры превышает диапазон цветовых индексов в данных текстуры, некоторые записи палитры не используются. Если ширина палитры меньше диапазона цветовых индексов в данных текстуры, наиболее значительные биты данных текстуры игнорируются и при доступе к палитре используется только соответствующее количество битов в индексе. При указании целевого объекта прокси-сервера с помощью PROXY_TEXTURE_1D или PROXY_TEXTURE_2D размер палитры текстуры прокси-сервера изменяется, а ее параметры задаются, но данные не передаются или к ней не обращаются.
Если целевой параметр GL_PROXY_TEXTURE_1D или GL_PROXY_TEXTURE_2D, а реализация не поддерживает значения , указанные для формата или ширины, glColorTableEXT может не создать запрошенную таблицу цветов. В этом случае таблица цветов пуста, а все полученные параметры будут равны нулю. Вы можете определить, поддерживает ли OpenGL определенный формат и размер таблицы цветов, вызвав glColorTableEXT с целевым прокси-сервером, а затем вызвав glGetColorTableParameterivEXT или glGetColorTableParameterfvEXT , чтобы определить, соответствует ли параметр ширины, заданному glColorTableEXT. Если полученная ширина равна нулю, запрос таблицы цветов с помощью glColorTable завершился ошибкой . Если полученная ширина не равна нулю, можно вызвать glColorTable с реальным целевым объектом с TEXTURE_1D или TEXTURE_2D, чтобы задать таблицу цветов.
Примечание
Функция glColorTableEXT — это функция расширения, которая не является частью стандартной библиотеки OpenGL, но является частью расширения GL_EXT_paletted_texture. Чтобы проверка, поддерживает ли ваша реализация OpenGL glColorTableEXT, вызовите glGetString(GL_EXTENSIONS). Если возвращается GL_EXT_paletted_texture, поддерживается glColorTableEXT . Чтобы получить адрес функции расширения, вызовите wglGetProcAddress.
Чтобы получить фактические данные таблицы цветов, заданные функцией glColorTableEXT , вызовите glGetColorTableEXT. Чтобы получить параметры, такие как ширина и формат, таблицы цветов, указанной функцией glColorTableEXT , вызовите функцию glGetColorTableParameterivEXT или glGetColorTableParameterfvEXT .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|