Функция glGetTexImage
Функция glGetTexImage возвращает изображение текстуры.
Синтаксис
void WINAPI glGetTexImage(
GLenum target,
GLint level,
GLenum format,
GLenum type,
GLvoid *pixels
);
Параметры
-
target
-
Указывает, какая текстура должна быть получена. GL_TEXTURE_1D и GL_TEXTURE_2D принимаются.
-
level
-
Номер уровня детализации нужного изображения. Уровень 0 — это базовый уровень образа. Уровень n — это изображениеn-го сокращения MIP-карты.
-
format
-
Формат пикселей для возвращаемых данных. Поддерживаемые форматы: GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, GL_BGR_EXT, GL_BGRA_EXT и GL_LUMINANCE_ALPHA.
-
type
-
Тип пикселя для возвращаемых данных. Поддерживаемые типы: GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT и GL_FLOAT.
-
пиксели
-
Возвращает изображение текстуры. Должен быть указателем на массив типа, заданного типом .
Возвращаемое значение
Эта функция не возвращает значение.
Коды ошибок
Следующие коды ошибок могут быть получены функцией glGetError .
Имя | Значение |
---|---|
|
Целевой объект, формат или тип не были принятыми значениями. |
|
уровень меньше нуля или больше , чем в журнале2 (max), где max — возвращаемое значение GL_MAX_TEXTURE_SIZE. |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd . |
Комментарии
Функция glGetTexImage возвращает изображение текстуры в пиксели. Параметр target указывает, является ли требуемое изображение текстуры указанным в glTexImage1D(GL_TEXTURE_1D) или glTexImage2D(GL_TEXTURE_2D)). Параметр level задает номер уровня детализации нужного изображения. Параметры format и type определяют формат и тип требуемого массива изображений. Описание допустимых значений для параметров формата и типа соответственно см. в разделах glTexImage1D и glDrawPixels.
Операции glGetTexImage лучше всего понять, рассматривая выбранное внутреннее четырехкомпонентное изображение текстуры как цветовой буфер RGBA размера изображения. Затем семантика glGetTexImage идентична семантике glReadPixels , вызываемой с тем же форматом и типом, где для x и y задано значение 0, ширина — ширина изображения текстуры (включая границу, если она была указана), высота — один для одномерных изображений или высота изображения текстуры (включая границу, Значение , если один из них указан) для двухтоковых изображений.
Так как внутреннее изображение текстуры является изображением RGBA, форматы пикселей GL_COLOR_INDEX, GL_STENCIL_INDEX и GL_DEPTH_COMPONENT не принимаются, а GL_BITMAP типа пикселей не принимаются.
Если выбранное изображение текстуры не содержит четыре компонента, применяются следующие сопоставления. Однокомпонентные текстуры обрабатываются как буферы RGBA с красным значением, равным однокомпонентным значениям, а для зеленого, синего и альфа-канала задано нулевое значение.
Двухкомпонентные текстуры обрабатываются как буферы RGBA: красный — значение нуля компонента, альфа — значение компонента 1, а зеленый и синий — равным нулю. Наконец, трехкомпонентные текстуры обрабатываются как буферы RGBA с красным цветом, равным нулю, зеленым — компонентом 1, синим — компонентом 2, а альфа — нулевым.
Чтобы определить требуемый размер пикселей, используйте glGetTexLevelParameter для определения размеров внутреннего изображения текстуры, а затем масштабируйте требуемое количество пикселей по размеру хранилища, необходимого для каждого пикселя, в зависимости от формата и типа. Обязательно учитывайте параметры хранения пикселей, особенно GL_PACK_ALIGNMENT.
Если возникает ошибка, содержимое пикселей не изменяется.
Следующие функции извлекают сведения, связанные с glGetTexImage:
glGet с аргументами GL_PACK_ALIGNMENT и другие
glGetTexLevelParameter с аргументом GL_TEXTURE_WIDTH
glGetTexLevelParameter с аргументом GL_TEXTURE_HEIGHT
glGetTexLevelParameter с аргументом GL_TEXTURE_BORDER
glGetTexLevelParameter с аргументом GL_TEXTURE_COMPONENTS
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|