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


Функция glGetColorTableEXT

Функция glGetColorTableEXT получает данные таблицы цветов текущей целевой палитры текстур.

Синтаксис

void WINAPI glGetColorTableEXT(
         GLenum target,
         GLenum format,
         GLenum type,
   const GLvoid *data
);

Параметры

target

Целевая текстура, в которую необходимо изменить палитру. Должен быть TEXTURE_1D или TEXTURE_2D.

format

Формат данных в пикселях. Принимаются следующие символьные константы.

Значение Значение
GL_RGBA
Каждый пиксель представляет собой группу из четырех компонентов в следующем порядке: красный, зеленый, синий, альфа. Формат RGBA определяется следующим образом:
  1. Функция glGetColorTableEXT преобразует значения с плавающей запятой непосредственно во внутренний формат с неопределенной точностью. Целочисленные значения со знаком сопоставляются линейно с внутренним форматом, так что наиболее положительное представляющееся целочисленное значение сопоставляется с 1,0, а наиболее отрицательное целочисленное значение сопоставляется с -1,0. Целочисленные данные без знака сопоставляются аналогичным образом: наибольшее целочисленное значение сопоставляется с 1,0, а ноль — с 0,0.
  2. Функция glGetColorTableEXT умножает результирующие значения цвета на GL_c_SCALE и добавляет их в GL_c_BIAS, где c — RED, GREEN, BLUE и ALPHA для соответствующих компонентов цвета. Результаты зажимаются в диапазоне [0,1].
  3. Если GL_MAP_COLOR имеет значение TRUE, то glGetColorTableEXT масштабирует каждый компонент цвета на размер таблицы подстановки GL_PIXEL_MAP_c_TO_c, а затем заменяет компонент значением, на которое он ссылается в этой таблице; c имеет значение R, G, B или A соответственно.
  4. Функция glGetColorTableEXT преобразует результирующие цвета RGBA в фрагменты, прикрепляя координаты Z текущей позиции растра и координаты текстуры к каждому пикселю, а затем присваивая координаты окна x и yn-муфрагменту, например x? = xr + nmod width
    Да? = yr + n/width
    где (xr , yr ) — текущая позиция растра.
  5. Затем эти пиксельные фрагменты обрабатываются так же, как фрагменты, созданные растеризовыванием точек, линий или многоугольников. Функция glGetColorTableEXT применяет сопоставление текстур, туман и все операции фрагментов перед записью фрагментов в framebuffer.
GL_RED
Каждый пиксель является одним красным компонентом.
Функция glGetColorTableEXT преобразует этот компонент во внутренний формат так же, как красный компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с зеленым и синим цветом, равным 0,0, а альфа - в 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_GREEN
Каждый пиксель является одним зеленым компонентом.
Функция glGetColorTableEXT преобразует этот компонент во внутренний формат так же, как зеленый компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным и синим цветом, равным 0,0, а альфа - 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_BLUE
Каждый пиксель является одним синим компонентом.
Функция glGetColorTableEXT преобразует этот компонент во внутренний формат так же, как синий компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным и зеленым цветом, равным 0,0, а альфа - в 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_ALPHA
Каждый пиксель является одним альфа-компонентом.
Функция glGetColorTableEXT преобразует этот компонент во внутренний формат так же, как альфа-компонент пикселя RGBA, а затем преобразует его в пиксель RGBA с красным, зеленым и синим значением 0,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_RGB
Каждый пиксель представляет собой группу из трех компонентов в этом порядке: красный, зеленый, синий.
Функция glGetColorTableEXT преобразует каждый компонент во внутренний формат так же, как красный, зеленый и синий компоненты пикселей RGBA. Три цвета преобразуются в пиксель RGBA с альфа-значением 1,0. После этого преобразования пиксель обрабатывается так же, как если бы он был считан как пиксель RGBA.
GL_BGR_EXT
Каждый пиксель представляет собой группу из трех компонентов в этом порядке: синий, зеленый, красный.
GL_BGR_EXT предоставляет формат, соответствующий макету памяти независимых от устройств растровых изображений (DIB) Microsoft Windows. Таким образом, приложения могут использовать одни и те же данные при вызовах функций Windows и функциях пикселей OpenGL.
GL_BGRA_EXT
Каждый пиксель представляет собой группу из четырех компонентов в таком порядке: синий, зеленый, красный, альфа.
GL_BGRA_EXT предоставляет формат, соответствующий макету памяти независимых от устройств растровых изображений (DIB) Windows. Таким образом, приложения могут использовать одни и те же данные при вызовах функций Windows и функциях пикселей OpenGL.

type

Тип данных для данных. Ниже приведены принятые символические константы и их значения.

Значение Значение
GL_UNSIGNED_BYTE
8-разрядное целое число без знака
GL_BYTE
8-разрядное целое число со знаком
GL_UNSIGNED_SHORT
16-разрядное целое число без знака
GL_SHORT
16-разрядное целое число со знаком
GL_UNSIGNED_INT
32-разрядное целое число без знака
GL_INT
32-разрядное целое число
GL_FLOAT
Число одинарной точности с плавающей запятой

data

Указывает на расположение, в котором должны храниться сведения о возвращаемой цветовой таблице. Каждая запись таблицы цветов хранится так, как если бы это был один пиксель одноэлементной текстуры. Так как все текстуры имеют палитру по умолчанию, glGetColorTableEXT всегда возвращает сведения о палитре, даже если данные текстуры не имеют формат палитры.

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

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

Коды ошибок

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

Имя Значение
GL_INVALID_ENUM
Значение target, format или type не является допустимым значением.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Функция glGetColorTableEXT получает фактические данные таблицы цветов, указанные в параметрах glColorTableEXT и glColorSubTableEXT.

Функция glGetColorTableEXT — это функция расширения, которая не является частью стандартной библиотеки OpenGL, но является частью расширения GL_EXT_paletted_texture. Чтобы проверка, поддерживает ли ваша реализация OpenGL glGetColorTableEXT, вызовите glGetString(GL_EXTENSIONS). Если возвращается GL_EXT_paletted_texture, поддерживается glGetColorTableEXT . Чтобы получить адрес функции расширения, вызовите wglGetProcAddress.

Требования

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

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

glColorSubTableEXT

glColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

wglGetProcAddress