Функция glTexSubImage1D
Функция glTexSubImage1D указывает часть существующего одномерного изображения текстуры. Невозможно определить новую текстуру с помощью glTexSubImage1D.
Синтаксис
void WINAPI glTexSubImage1D(
GLenum target,
GLint level,
GLint xoffset,
GLsizei width,
GLenum format,
GLenum type,
const GLvoid *pixels
);
Параметры
-
целевой объект
-
Целевая текстура. Должно быть GL_TEXTURE_1D.
-
level
-
Номер уровня детализации. Уровень 0 — базовый образ. Уровень n — это изображение уменьшения MIP-карты n.
-
xoffset
-
Смещение текселя в направлении x в массиве текстур.
-
width
-
Ширина вложенного изображения текстуры.
-
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 для альфа-канала. Затем каждый компонент умножается на подписанный коэффициент масштабирования 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_LUMINANCE
Каждый элемент является одним значением яркости. Он преобразуется в формат с плавающей запятой, а затем собирается в элемент RGBA, реплика значение света три раза для красного, зеленого и синего, а также подключения 1,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_TEXTURE_1D. |
|
формат не был принятой константой. |
|
Тип не был принятой константой. |
|
тип был GL_BITMAP и формат не был GL_COLOR_INDEX. |
|
уровень был меньше нуля или больше, чем max log2, где максимальное значение было возвращенным значением GL_MAX_TEXTURE_SIZE. |
|
xoffset было меньше b или ширина смещения + была больше wb, где w является GL_TEXTURE_WIDTH, и b — ширина GL_TEXTURE_BORDER измененного изображения текстуры. Обратите внимание, что w включает в себя дважды ширину границы. |
|
ширина была меньше b, где b — ширина границы массива текстур. |
|
граница не была нулевой или 1. |
|
Массив texure не определен предыдущей операцией glTexImage1D . |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd. |
Замечания
Одномерное форматирование для примитива включено с помощью glEnable и glDisable с аргументом GL_TEXTURE_1D. Во время текстурирования часть указанного изображения текстуры сопоставляется с каждым включенным примитивом. Функция glTexSubImage1D используется для указания непрерывного подобраза существующего одномерного изображения текстуры для текстуры.
Тексели, на которые ссылается пиксели, заменяют область существующего массива текстур x индексами xoffset и xoffset + (ширина 1) включительно. Этот регион не может включать любые тексели за пределами диапазона исходно заданного массива текстур.
Указание вложенного изображения с шириной нуля не влияет и не создает ошибку.
Текстирование не действует в режиме цветового индекса.
Как правило, изображения текстур можно представить теми же форматами данных, что и пиксели в команде glDrawPixels , за исключением того, что нельзя использовать GL_STENCIL_INDEX и GL_DEPTH_COMPONENT. Режимы glPixelStore и glPixelTransfer влияют на изображения текстур точно так, как они влияют на glDrawPixels.
Следующие функции извлекают сведения, связанные с glTexSubImage1D:
glIsEnabled с аргументом GL_TEXTURE_1D
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL-библиотеки |
|