Функция glCopyTexSubImage2D

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

Синтаксис

void WINAPI glCopyTexSubImage2D(
   GLenum  target,
   GLint   level,
   GLint   xoffset,
   GLint   yoffset,
   GLint   x,
   GLint   y,
   GLsizei width,
   GLsizei height
);

Параметры

target

Целевой объект, на который будут изменены данные изображения. Должно иметь значение GL_TEXTURE_2D.

level

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

xoffset

Смещение текселя в направлении x в массиве текстур.

yoffset

Смещение текселя в направлении y в массиве текстур.

x

Координаты x-плоскости окна нижнего левого угла строки пикселей, копируемых.

y

Координаты плоскости окна в левом нижнем углу строки пикселей, копируемых.

width

Ширина вложенного изображения изображения текстуры. Указание вложенного изображения текстуры с нулевой шириной не влияет.

height

Высота вложенного изображения изображения текстуры. Указание вложенного изображения текстуры с нулевой шириной не влияет.

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

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

Коды ошибок

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

Имя Значение
GL_INVALID_ENUM
Целевой объект не был допустимым значением.
GL_INVALID_VALUE
уровень был меньше нуля или больше , чем log2 (max), где максимальное значение возвращается GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
xoffset было меньше границы или (xoffsetwidth + ) было больше (wborder + ), yoffset было меньше границы, или (yoffsetheight + ) было больше (hborder + ), где w GL_TEXTURE_WIDTH и граница GL_TEXTURE_BORDER. Обратите внимание, что w включает в себя дважды ширину границы .
GL_INVALID_VALUE
ширина была меньше границы или y была меньше границы, где граница — ширина границы массива текстур.
GL_INVALID_OPERATION
Массив текстур не был определен предыдущей операцией glTexImage1D .
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Remarks

Функция glCopyTexSubImage2D заменяет прямоугольную часть двумерного изображения текстуры пикселями из текущего кадра, а не из основной памяти, как в случае glTexSubImage2D.

Прямоугольник пикселей, начинающийся с координат x и y, а также ширина и высота размеров заменяет часть массива текстуры индексами xoffset через xoffset + (ширина - 1) с индексами yoffset через yoffset + (ширина - 1) на уровне mipmap, заданном на уровне. Прямоугольник назначения в массиве текстур не может содержать тексели за пределами исходно указанного массива текстур.

Функция glCopyTexSubImage2D обрабатывает пиксели в строке так же, как glCopyPixels, за исключением того, что до окончательного преобразования пикселей все значения компонентов пикселей зажаты в диапазоне [0,1] и преобразуются во внутренний формат текстуры для хранения в массиве текстур. Порядок пикселей определяется с помощью более низких координат x , соответствующих более низким координатам текстуры. Если любой из пикселей в указанной строке текущего framebuffer находится за пределами окна, связанного с текущим контекстом отрисовки, их значения не определены.

Если любой из пикселей в указанном прямоугольнике текущего кадра находится за пределами окна чтения, связанного с текущим контекстом отрисовки, то значения, полученные для этих пикселей, не определены. Изменения не вносятся во внутренний формат, ширину, высоту или границу указанного массива текстур или значения текселя за пределами указанного вложенного изображения текстуры.

В отображаемых списках нельзя включать вызовы glCopyTexSubImage2D .

Примечание

Функция glCopyTexSubImage2D доступна только в OpenGL версии 1.1 или более поздней.

Текстирование не действует в режиме цветового индекса. Функции glPixelStore и glPixelTransfer влияют на изображения текстур точно так, как они влияют на способ рисования пикселей с помощью glDrawPixels.

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

glGetTexImage

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

Требования

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

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

glBegin

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter