Функция glTexImage1D

Функция glTexImage1D указывает одномерное изображение текстуры.

Синтаксис

void WINAPI glTexImage1D(
         GLenum  target,
         GLint   level,
         GLint   internalformat,
         GLsizei width,
         GLint   border,
         GLint   format,
         GLenum  type,
   const GLvoid  *pixels
);

Параметры

целевой объект

Целевая текстура. Должно быть GL_TEXTURE_1D.

level

Номер уровня детализации. Уровень 0 — базовый уровень образа. Уровень n — это изображение уменьшения MIP-карты n.

internalformat

Указывает количество компонентов цвета в текстуре. Должно быть 1, 2, 3 или 4 или одна из следующих символьных констант: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12 или GL_RGBA16.

width

Ширина изображения текстуры. Должно быть 2n + 2( граница ) для некоторых целых чисел n. Высота изображения текстуры составляет 1.

Границы

Ширина границы. Должно быть либо 0, либо 1.

format

Формат данных пикселей. Это может предположить одно из девяти символьных значений.

Значение Значение
GL_COLOR_INDEX
Каждый элемент является одним значением, цветовым индексом. Он преобразуется в фиксированную точку (с неопределенным числом 0 битов справа от двоичной точки), сдвигается влево или вправо в зависимости от значения и знака GL_INDEX_SHIFT и добавляется в GL_INDEX_OFFSET (см. glPixelTransfer). Результирующий индекс преобразуется в набор цветовых компонентов с помощью GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B и GL_PIXEL_MAP_I_TO_A таблиц и зажат в диапазоне [0,1].
GL_RED
Каждый элемент является одним красным компонентом. Он преобразуется в плавающую точку и собирается в элемент RGBA путем подключения 0,0 для зеленой и синей и 1.0 для альфа-канала. Затем каждый компонент умножается на подписанный коэффициент масштабирования GL_c_SCALE, добавляется в подписанный GL_c_BIAS смещения и зажата к диапазону [0,1] (см . glPixelTransfer).
GL_GREEN
Каждый элемент является одним зеленым компонентом. Он преобразуется в плавающую точку и собирается в элемент RGBA путем подключения 0,0 для красного и синего, а также 1,0 для альфа.0. Затем каждый компонент умножается на подписанный коэффициент масштабирования GL_c_SCALE, добавляется в подписанный предвзятость GL_c_BIAS и зажата к диапазону [0,1] (см. glPixelTransfer).
GL_BLUE
Каждый элемент является одним синим компонентом. Он преобразуется в плавающую точку и собирается в элемент RGBA путем подключения 0,0 для красного и зеленого цвета и 1,0 для альфа.0. Затем каждый компонент умножается на подписанный коэффициент масштабирования GL_c_SCALE, добавляется в подписанный GL_c_BIAS смещения и зажата к диапазону [0,1] (см . glPixelTransfer).
GL_ALPHA
Каждый элемент является одним красным компонентом. Он преобразуется в плавающую точку и собирается в элемент RGBA путем подключения 0,0 для красного, зеленого и синего. Затем каждый компонент умножается на подписанный коэффициент масштабирования GL_c_SCALE, добавляется в подписанный предвзятость GL_c_BIAS и зажата к диапазону [0,1] (см. glPixelTransfer).
GL_RGB
Каждый элемент является тройным RGB. Он преобразуется в плавающую точку и собирается в элемент RGBA путем подключения 1.0 для альфа-канала. Затем каждый компонент умножается на подписанный коэффициент масштабирования GL_c_SCALE, добавляется в подписанный GL_c_BIAS смещения и зажата к диапазону [0,1] (см . glPixelTransfer).
GL_RGBA
Каждый элемент является полным элементом RGBA. Он преобразуется в плавающую точку. Затем каждый компонент умножается на подписанный коэффициент масштабирования GL_c_SCALE, добавляется в подписанный GL_c_BIAS смещения и зажата к диапазону [0,1] (см . glPixelTransfer).
GL_BGR_EXT
Каждый пиксель представляет собой группу трех компонентов в этом порядке: синий, зеленый, красный.
GL_BGR_EXT предоставляет формат, соответствующий макету памяти для точечных изображений, независимых от устройств Windows (DIOB). Таким образом, приложения могут использовать те же данные с вызовами функций Windows и вызовами функции OpenGL.
GL_BGRA_EXT
Каждый пиксель представляет собой группу из четырех компонентов в этом порядке: синий, зеленый, красный, альфа.
GL_BGRA_EXT предоставляет формат, соответствующий макету памяти независимых от устройств устройств (DIB). Таким образом, приложения могут использовать те же данные с вызовами функций Windows и вызовами функции OpenGL.
GL_LUMINANCE
Каждый элемент является одним значением яркости. Он преобразуется в плавающую точку, а затем собирается в элемент RGBA, реплика значение света три раза для красного, зеленого и синего, а также прикрепляя 1,0 для альфа.0. Затем каждый компонент умножается на подписанный коэффициент масштабирования GL_c_SCALE, добавляется в подписанный предвзятость GL_c_BIAS и зажата к диапазону [0,1] (см. glPixelTransfer).
GL_LUMINANCE_ALPHA
Каждый элемент — это пара luminance/alpha. Он преобразуется в плавающую точку, а затем собирается в элемент RGBA, реплика значение света три раза для красного, зеленого и синего. Затем каждый компонент умножается на подписанный коэффициент масштабирования GL_c_SCALE, добавляется в подписанный GL_c_BIAS смещения и зажата к диапазону [0,1] (см . glPixelTransfer).

type

Тип данных пиксельных данных. Принимаются следующие символьные значения: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT и GL_FLOAT.

Пикселей

Указатель на данные изображения в памяти.

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

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

Коды ошибок

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

Имя Значение
GL_INVALID_ENUM
целевой объект не был GL_TEXTURE.
GL_INVALID_ENUM
Формат не был принятой константой формата . Принимаются только константы форматирования, отличные от GL_STENCIL_INDEX и GL_DEPTH_COMPONENT. См. описание параметра формата для списка возможных значений.
GL_INVALID_ENUM
Тип не был константой типа .
GL_INVALID_ENUM
тип был GL_BITMAP и формат не был GL_COLOR_INDEX.
GL_INVALID_VALUE
уровень был меньше нуля или больше, чем max log2, где максимальное значение было возвращаемым значением GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
internalformat не был 1, 2, 3 или 4.
GL_INVALID_VALUE
ширина была меньше нуля или больше 2 + GL_MAX_TEXTURE_SIZE, или она не может быть представлена как 2n + 2(граница) для некоторого целочисленного значения n.
GL_INVALID_VALUE
граница не была 0 или 1.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Замечания

Функция glTexImage1D указывает одномерное изображение текстуры. Текстурирование сопоставляет часть указанного изображения текстуры с каждым графическим примитивом, для которого включена текстура. Одномерное форматирование включено и отключено с помощью glEnable и glDisable с аргументом GL_TEXTURE_1D.

Изображения текстур определяются с помощью glTexImage1D. Аргументы описывают параметры изображения текстуры, такие как ширина, ширина границы, число подробных сведений (см . glTexParameter) и количество предоставленных компонентов цвета. Последние три аргумента описывают способ представления изображения в памяти. Эти аргументы идентичны форматам пикселей, используемым для glDrawPixels.

Данные считываются из пикселей в виде последовательности подписанных или неподписанных байтов, шортов или длин, а также значений с плавающей запятой с одной точностью в зависимости от типа. Эти значения группируются в наборы из одного, двух, трех или четырех значений в зависимости от формата для формирования элементов. Если тип GL_BITMAP, данные считаются строкой неподписанных байтов (и формат должен быть GL_COLOR_INDEX). Каждый байт данных обрабатывается как восемь 1-разрядных элементов с упорядочением битов, определяемыми GL_UNPACK_LSB_FIRST (см. glPixelStore).

Изображение текстуры может содержать до четырех компонентов для каждого элемента текстуры в зависимости от компонентов. Однокомпонентное изображение текстуры использует только красный компонент цвета RGBA, извлеченный из пикселей. Изображение с двумя компонентами использует значения R и A. На изображении с тремя компонентами используются значения R, G и B. Изображение с четырьмя компонентами использует все компоненты RGBA.

Текстирование не действует в режиме цветового индекса.

Изображение текстуры можно представить теми же форматами данных, что и пиксели в команде glDrawPixels , за исключением того, что нельзя использовать GL_STENCIL_INDEX и GL_DEPTH_COMPONENT. Режимы glPixelStore и glPixelTransfer влияют на изображения текстур точно так, как они влияют на glDrawPixels.

Изображение текстуры с нулевой шириной указывает на пустую текстуру. Если текстура NULL указана для уровня детализации 0, она как если бы текстура была отключена.

Следующие функции извлекают сведения, связанные с glTexImageID:

glGetTexImage

glIsEnabled с аргументом GL_TEXTURE_1D

Требования

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

См. также

glBegin

glCopyPixels

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnd

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage1D

glTexSubImage2D

glTexParameter