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


Функция 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 .

Имя Значение
GL_INVALID_ENUM
Target не является допустимым значением.
GL_INVALID_VALUE
Значение level было меньше нуля или больше максимального значения log2, где max — это возвращаемое значение GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
граница не была равна нулю или 1.
GL_INVALID_VALUE
ширина была меньше нуля, больше 2 + GL_MAX_TEXTURE_SIZE или ширина не может быть представлена как 2n + 2 * граница для некоторого целого числа n.
GL_INVALID_OPERATION
Функция была вызвана между вызовом 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 [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

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

glBegin

glCopyTexImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter