다음을 통해 공유


glTexSubImage2D 함수

glTexSubImage2D 함수는 기존 1차원 텍스처 이미지의 일부를 지정합니다. glTexSubImage2D사용하여 새 텍스처를 정의할 수 없습니다.

구문

void WINAPI glTexSubImage2D(
         GLenum  target,
         GLint   level,
         GLint   xoffset,
         GLint   yoffset,
         GLsizei width,
         GLsizei height,
         GLenum  format,
         GLenum  type,
   const GLvoid  *pixels
);

매개 변수

target

대상 텍스처입니다. GL_TEXTURE_2D 합니다.

level

세부 정보 수준 번호입니다. 수준 0은 기본 이미지입니다. 수준 n은 n번째 Mipmap 감소 이미지입니다.

xoffset

텍스처 배열 내 x 방향의 텍셀 오프셋입니다.

yoffset

텍스처 배열 내의 y 방향에 있는 텍셀 오프셋입니다.

width

텍스처 하위 이미지의 너비입니다.

height

텍스처 하위 이미지의 높이입니다.

format

픽셀 데이터의 형식입니다. 다음 기호 값 중 하나를 가정할 수 있습니다.

의미
GL_COLOR_INDEX
각 요소는 단일 값, 색 인덱스입니다. 고정 소수점 형식(이진 지점의 오른쪽에 지정된 0비트 수 포함)으로 변환되고, GL_INDEX_SHIFT 값 및 부호에 따라 왼쪽 또는 오른쪽으로 이동하고, GL_INDEX_OFFSET 추가됩니다(glPixelTransfer 참조). 결과 인덱스는 GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B 및 GL_PIXEL_MAP_I_TO_A 테이블을 사용하여 색 구성 요소 집합으로 변환되고 범위 [0,1]로 고정됩니다.
GL_RED
각 요소는 단일 빨간색 구성 요소입니다. 부동 소수점 형식으로 변환되고 녹색과 파란색의 경우 0.0, 알파의 경우 1.0을 연결하여 RGBA 요소로 어셈블됩니다. 그런 다음 각 구성 요소에 부호 있는 배율 인수 GL_c_SCALE 곱하고 서명된 바이어스 GL_c_BIAS 추가하고 [0,1] 범위로 고정합니다(glPixelTransfer 참조).
GL_GREEN
각 요소는 단일 녹색 구성 요소입니다. 빨강과 파랑의 경우 0.0, 알파의 경우 1.0을 연결하여 부동 소수점 형식으로 변환되고 RGBA 요소로 어셈블됩니다. 그런 다음 각 구성 요소에 부호 있는 배율 인수 GL_c_SCALE 곱하고 부호 있는 바이어스 GL_c_BIAS 추가하고 [0,1] 범위(glPixelTransfer 참조)로 고정합니다.
GL_BLUE
각 요소는 단일 파란색 구성 요소입니다. 빨강 및 녹색의 경우 0.0, 알파의 경우 1.0을 연결하여 부동 소수점 형식으로 변환되고 RGBA 요소로 어셈블됩니다. 그런 다음 각 구성 요소에 부호 있는 배율 인수 GL_c_SCALE 곱하고 서명된 바이어스 GL_c_BIAS 추가하고 [0,1] 범위로 고정합니다(glPixelTransfer 참조).
GL_ALPHA
각 요소는 단일 알파 구성 요소입니다. 부동 소수점 형식으로 변환되고 빨강, 녹색 및 파랑에 대해 0.0을 연결하여 RGBA 요소로 어셈블됩니다. 그런 다음 각 구성 요소에 부호 있는 배율 인수 GL_c_SCALE 곱하고 부호 있는 바이어스 GL_c_BIAS 추가하고 [0,1] 범위(glPixelTransfer 참조)로 고정합니다.
GL_RGB
각 요소는 RGB 트리플입니다. 알파용 1.0을 연결하여 부동 소수점 형식으로 변환되고 RGBA 요소로 어셈블됩니다. 그런 다음 각 구성 요소에 부호 있는 배율 인수 GL_c_SCALE 곱하고 서명된 바이어스 GL_c_BIAS 추가하고 [0,1] 범위로 고정합니다(glPixelTransfer 참조).
GL_RGBA
각 요소는 완전한 RGBA 요소입니다. 부동 소수점으로 변환됩니다. 그런 다음 각 구성 요소에 부호 있는 배율 인수 GL_c_SCALE 곱하고 서명된 바이어스 GL_c_BIAS 추가하고 [0,1] 범위로 고정합니다(glPixelTransfer 참조).
GL_LUMINANCE
각 요소는 단일 광도 값입니다. 부동 소수점 형식으로 변환된 다음, 빨강, 녹색 및 파랑에 대해 광도 값을 세 번 복제본(replica) 알파에 대해 1.0을 연결하여 RGBA 요소로 어셈블됩니다. 그런 다음 각 구성 요소에 부호 있는 배율 인수 GL_c_SCALE 곱하고 부호 있는 바이어스 GL_c_BIAS 추가하고 [0,1] 범위(glPixelTransfer 참조)로 고정합니다.
GL_LUMINANCE_ALPHA
각 요소는 광도/알파 쌍입니다. 부동 소수점 형식으로 변환된 다음, 빨강, 녹색 및 파랑에 대해 광도 값을 세 번 복제본(replica) RGBA 요소로 어셈블됩니다. 그런 다음 각 구성 요소에 부호 있는 배율 인수 GL_c_SCALE 곱하고 서명된 바이어스 GL_c_BIAS 추가하고 [0,1] 범위로 고정합니다(glPixelTransfer 참조).

type

픽셀 데이터의 데이터 형식입니다. GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT 및 GL_FLOAT 기호화된 값이 허용됩니다.

픽셀

메모리의 이미지 데이터에 대한 포인터입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

오류 코드

다음 오류 코드는 glGetError 함수에서 검색할 수 있습니다.

이름 의미
GL_INVALID_ENUM
대상이 GL_TEXTURE_2D 않았습니다.
GL_INVALID_ENUM
형식 이 허용된 상수가 아닙니다.
GL_INVALID_ENUM
형식 이 허용된 상수가 아닙니다.
GL_INVALID_ENUM
형식 이 GL_BITMAP 형식 이 GL_COLOR_INDEX 않았습니다.
GL_INVALID_VALUE
수준이 0보다 작거나 log2 max보다 큽니다. 여기서 max 는 반환된 GL_MAX_TEXTURE_SIZE 값입니다.
GL_INVALID_VALUE
xoffset이 -b보다 작거나 xoffset + 너비가 w - b보다 크거나 yoffset이 -b보다 작거나 yoffset + 높이가 h - b보다 크거나, 여기서 w는 GL_TEXTURE_WIDTH, h는 GL_TEXTURE_HEIGHT, b는 수정되는 텍스처 이미지의 GL_TEXTURE_BORDER 너비입니다.
wh에는 테두리 너비의 두 배가 포함됩니다.
GL_INVALID_VALUE
너비가 b보다 작습니다. 여기서 b는 텍스처 배열의 테두리 너비입니다.
GL_INVALID_VALUE
테두리 가 0 또는 1이 아닙니다.
GL_INVALID_OPERATION
텍스처 배열은 이전 glTexImage2D 작업으로 정의되지 않았습니다.
GL_INVALID_OPERATION
glBegin 호출과 glEnd에 대한 해당 호출 사이에 함수가 호출되었습니다.

설명

기본 형식에 대한 2차원 텍스처링은 인수 GL_TEXTURE_2D glEnable 및 glDisable을 사용하여 사용하도록 설정됩니다. 텍스처를 사용하는 동안 지정된 텍스처 이미지의 일부가 활성화된 각 기본 형식에 매핑됩니다. glTexSubImage2D 함수를 사용하여 텍스처링을 위해 기존 2차원 텍스처 이미지의 연속 하위 이미지를 지정합니다.

픽셀에서 참조하는 텍셀은 기존 텍스처 배열의 영역을 xoffset 및 xoffset + (width 1)의 x 인덱스 및 yoffset 및 yoffset + (높이 1)의 y 인덱스로 바꿉니다. 이 영역에는 원래 지정된 텍스처 배열의 범위를 벗어난 텍셀이 포함될 수 없습니다.

너비가 0인 하위 이미지를 지정해도 아무 효과가 없으며 오류가 발생하지 않습니다.

텍스처링이 색 인덱스 모드에는 영향을 주지 않습니다.

일반적으로 텍스처 이미지는 GL_STENCIL_INDEX 및 GL_DEPTH_COMPONENT 사용할 수 없다는 점을 제외하고 glDrawPixels 명령의 픽셀과 동일한 데이터 형식으로 나타낼 수 있습니다. glPixelStore glPixelTransfer 모드는 glDrawPixels에 영향을 미치는 방식으로 텍스처 이미지에 정확히 영향을 줍니다.

다음 함수는 glTexSubImage2D관련된 정보를 검색합니다.

glGetTexImage

인수 GL_TEXTURE_2D glIsEnabled

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Gl.h
라이브러리
Opengl32.lib
DLL
Opengl32.dll

참고 항목

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnable

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexSubImage1D

glTexImage2D

glTexParameter