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


Функция glCopyTexSubImage2D

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

Синтаксис

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

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

y

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

width

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

height

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

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

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

Коды ошибок

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

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

Комментарии

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

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

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

Если какой-либо из пикселей в заданном прямоугольнике текущего кадра находится за пределами окна чтения, связанного с текущим контекстом отрисовки, то значения, полученные для этих пикселей, не определены. Параметры internalFormat, width, height или border указанного массива текстуры или значения текселя за пределами указанного вложенного изображения текстуры не изменяются.

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

Примечание

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

Texturing не оказывает влияния в режиме цветовых индексов. Функции 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