Функция glCopyTexImage2D
Функция glCopyTexImage2D копирует пиксели из framebuffer в двумерное изображение текстуры.
Синтаксис
void WINAPI glCopyTexImage2D(
GLenum target,
GLint level,
GLenum internalFormat,
GLint x,
GLint y,
GLsizei width,
GLsizei height,
GLint border
);
Параметры
-
target
-
Целевой объект, на который будут изменены данные изображения. Значение должно быть GL_TEXTURE_2D.
-
level
-
Номер уровня детализации. Уровень 0 — это базовый образ. Уровень n — это изображениеn-го сокращения MIP-карты.
-
InternalFormat
-
Внутренний формат и разрешение данных текстуры. Значения 1, 2, 3 и 4 не принимаются для internalFormat. Параметр может принимать одно из следующих символьных значений.
Константа Биты R G Биты Биты B Биты L Bits I Bits GL_ALPHA GL_ALPHA4 4 GL_ALPHA8 8 GL_ALPHA12 12 GL_ALPHA16 16 GL_LUMINANCE GL_LUMINANCE4 4 GL_LUMINANCE8 8 GL_LUMINANCE12 12 GL_LUMINANCE16 16 GL_LUMINANCE_ALPHA GL_LUMINANCE4_ALPHA4 4 4 GL_LUMINANCE6_ALPHA2 2 6 GL_LUMINANCE8_ALPHA8 8 8 GL_LUMINANCE12_ALPHA4 4 12 GL_LUMINANCE12_ALPHA12 12 12 GL_LUMINANCE16_ALPHA16 16 16 GL_INTENSITY GL_INTENSITY4 4 GL_INTENSITY8 8 GL_INTENSITY12 12 GL_INTENSITY16 16 GL_RGB GL_R3_G3_B2 3 3 2 GL_RGB4 4 4 4 GL_RGB5 5 5 5 GL_RGB8 8 8 8 GL_RGB10 10 10 10 GL_RGB12 12 12 12 GL_RGB16 16 16 16 GL_RGBA GL_RGBA2 2 2 2 2 GL_RGBA4 4 4 4 4 GL_RGB5_A1 5 5 5 1 GL_RGBA8 8 8 8 8 GL_RGB10_A2 10 10 10 2 GL_RGBA12 12 12 12 12 GL_RGBA16 16 16 16 16 -
x
-
Координата окна x-плоскости нижнего левого угла прямоугольной области пикселей для копирования.
-
y
-
Координата окна в левом нижнем углу прямоугольной области пикселей для копирования.
-
width
-
Ширина изображения текстуры. Должно быть 2n + 2 * граница для некоторого целого числа n.
-
height
-
Высота изображения текстуры. Должно быть 2n + 2 * граница для некоторого целого числа n.
-
Границы
-
Ширина границы. Значение должно быть равно нулю или 1.
Возвращаемое значение
Эта функция не возвращает значение.
Коды ошибок
Следующие коды ошибок могут быть получены функцией glGetError .
Имя | Значение |
---|---|
|
Target не является допустимым значением. |
|
Значение level было меньше нуля или больше максимального значения log2, где max — это возвращаемое значение GL_MAX_TEXTURE_SIZE. |
|
граница не была равна нулю или 1. |
|
ширина была меньше нуля, больше 2 + GL_MAX_TEXTURE_SIZE или ширина не может быть представлена как 2n + 2 * граница для некоторого целого числа n. |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd. |
Комментарии
Функция glCopyTexImage2D определяет двумерное изображение текстуры, используя пиксели из текущего framebuffer, а не из main памяти, как в случае с glTexImage2D.
Используя уровень MIP-карты, заданный с помощью уровня, массивы текстур определяются как прямоугольник пикселей с левым нижним углом, расположенным по координатам x и y, шириной равной ширине + (2 * граница), а высота равна высоте + (2 * граница). Внутренний формат массива текстур задается с помощью параметра internalFormat .
Функция glCopyTexImage2D обрабатывает пиксели в строке так же, как и glCopyPixels , за исключением того, что перед окончательным преобразованием пикселей все значения компонента пикселей зажимаются в диапазоне [0,1] и преобразуются во внутренний формат текстуры для хранения в массиве текстур. Порядок пикселей определяется с более низкими координатами x и y , соответствующими нижним координатам текстуры s и t . Если какой-либо из пикселей в указанной строке текущего framebuffer находится за пределами окна, связанного с текущим контекстом отрисовки, то их значения не определены.
Нельзя включать вызовы glCopyTexImage2D в списки отображения.
Примечание
Функция glCopyTexImage2D доступна только в OpenGL версии 1.1 или более поздней.
Форматирование не оказывает влияния в режиме цветовых индексов. Функции glPixelStore и glPixelTransfer влияют на изображения текстур точно так же, как они влияют на glDrawPixels.
Следующая функция извлекает сведения, связанные с glCopyTexImage2D:
glIsEnabled с аргументом GL_TEXTURE_2D
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|