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


Функция glCopyTexImage1D

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

Синтаксис

void WINAPI glCopyTexImage1D(
   GLenum  target,
   GLint   level,
   GLenum  internalFormat,
   GLint   x,
   GLint   y,
   GLsizei width,
   GLint   border
);

Параметры

target

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

level

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

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

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

width

Ширина изображения текстуры. Должно быть равно нулю или 2n + 2 (граница) для некоторого целого числа n. Высота изображения текстуры составляет 1.

Границы

Ширина границы. Значение должно быть равно нулю или 1.

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

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

Коды ошибок

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

Имя Значение
GL_INVALID_ENUM
Target не является допустимым значением.
GL_INVALID_VALUE
уровень меньше нуля или больше максимального значения log2, где max — это возвращаемое значение GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
граница не была равна нулю или 1.
GL_INVALID_VALUE
ширина меньше нуля, больше 2 + GL_MAX_TEXTURE_SIZE или ширина не может быть представлена как 2n +(граница) для некоторых целочисленных n.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

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

При использовании уровня MIP-карты, заданного с помощью уровня, массивы текстур определяются как строка в пикселях, выравниваемая по левому нижнему углу окна в координатах, заданных x и y, с длиной, равной ширине + 2 * границе. Внутренний формат массива текстур задается с помощью параметра internalFormat .

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

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

Примечание

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

Texturing не оказывает влияния в режиме цветовых индексов. Функции glPixelStore и glPixelTransfer влияют на изображения текстур точно так же, как на glDrawPixels.

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

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

Требования

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

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

glCopyPixels

glCopyTexImage2D

glDrawPixels

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter