다음을 통해 공유


glColorTableEXT 함수

glColorTableEXT 함수는 대상 팔레트 텍스처에 대한 색상표의 형식과 크기를 지정합니다.

구문

void WINAPI glColorTableEXT(
         GLenum  target,
         GLenum  internalFormat,
         GLsizei width,
         GLenum  format,
         GLenum  type,
   const GLvoid  *data
);

매개 변수

대상

색상표를 변경할 대상 텍스처입니다. TEXTURE_1D, TEXTURE_2D, PROXY_TEXTURE_1D 또는 PROXY_TEXTURE_2D 합니다.

internalFormat

색상표의 내부 형식 및 해상도입니다. 이 매개 변수는 다음 기호 값 중 하나를 가정할 수 있습니다.

상수 기본 형식 R 비트 G 비트 B 비트 비트 수
GL_R3_G3_B2 GL_RGB 3 3 2
GL_RGB4 GL_RGB 4 4 4
GL_RGB5 GL_RGB 5 5 5
GL_RGB8 GL_RGB 8 8 8
GL_RGB10 GL_RGB 10 10 10
GL_RGB12 GL_RGB 12 12 12
GL_RGB16 GL_RGB 16 16 16
GL_RGBA2 GL_RGBA 2 2 2 2
GL_RGBA4 GL_RGBA 4 4 4 4
GL_RGB5_A1 GL_RGBA 5 5 5 1
GL_RGBA8 GL_RGBA 8 8 8 8
GL_RG10_A2 GL_RGBA 10 10 10 2
GL_RGB12 GL_RGBA 12 12 12 12
GL_RGBA16 GL_RGBA 16 16 16 16

width

색상표의 크기입니다. 일부 정수 n의 경우 2n = 1이어야 합니다.

format

픽셀 데이터의 형식입니다. 다음과 같은 기호 상수가 허용됩니다.

의미
GL_RGBA
각 픽셀은 빨강, 녹색, 파랑, 알파의 네 가지 구성 요소로 구성된 그룹입니다. RGBA 형식은 다음과 같은 방식으로 결정됩니다.
  1. glColorTableEXT 함수는 부동 소수점 값을 지정되지 않은 정밀도의 내부 형식으로 직접 변환합니다. 부호 있는 정수 값은 가장 양수 표현 가능한 정수 값이 1.0에 매핑되고 가장 음의 표현 가능한 정수 값이 -1.0에 매핑되도록 내부 형식에 선형으로 매핑됩니다. 부호 없는 정수 데이터는 비슷하게 매핑됩니다. 가장 큰 정수 값은 1.0에 매핑되고 0은 0.0에 매핑됩니다.
  2. glColorTableEXT 함수는 결과 색 값을 GL_c_SCALE 곱하고 GL_c_BIAS 추가합니다. 여기서 c는 해당 색 구성 요소에 대해 RED, GREEN, BLUE 및 ALPHA입니다. 결과는 [0,1] 범위로 고정됩니다.
  3. GL_MAP_COLOR TRUE이면 glColorTableEXT 는 각 색 구성 요소의 크기를 조회 테이블 GL_PIXEL_MAP_c_TO_c 크기로 조정한 다음 구성 요소를 해당 테이블에서 참조하는 값으로 바꿉니다. c 는 각각 R, G, B 또는 A입니다.
  4. glColorTableEXT 함수는 현재 래스터 위치 z 좌표 및 텍스처 좌표를 각 픽셀에 연결한 다음 xy 창 좌표를 n번째 조각에 할당하여 결과 RGBA 색을 조각으로 변환합니다. = xr + n 모드 너비
    Y? = yr +n / width
    여기서 (xr , yr )는 현재 래스터 위치입니다.
  5. 그런 다음 이러한 픽셀 조각은 점, 선 또는 다각형을 래스터화하여 생성된 조각처럼 처리됩니다. glColorTableEXT 함수는 프레임 버퍼에 조각을 쓰기 전에 텍스처 매핑, 안개 및 모든 조각 작업을 적용합니다.
GL_RED
각 픽셀은 단일 빨간색 구성 요소입니다.
glColorTableEXT 함수는 RGBA 픽셀의 빨간색 구성 요소와 동일한 방식으로 이 구성 요소를 내부 형식으로 변환한 다음 녹색 및 파란색이 0.0으로 설정된 RGBA 픽셀로 변환하고 알파를 1.0으로 설정합니다. 이 변환 후 픽셀은 RGBA 픽셀로 읽은 것처럼 처리됩니다.
GL_GREEN
각 픽셀은 단일 녹색 구성 요소입니다.
glColorTableEXT 함수는 RGBA 픽셀의 녹색 구성 요소와 동일한 방식으로 이 구성 요소를 내부 형식으로 변환한 다음 빨간색과 파란색이 0.0으로 설정되고 알파가 1.0으로 설정된 RGBA 픽셀로 변환합니다. 이 변환 후 픽셀은 RGBA 픽셀로 읽은 것처럼 처리됩니다.
GL_BLUE
각 픽셀은 단일 파란색 구성 요소입니다.
glColorTableEXT 함수는 RGBA 픽셀의 파란색 구성 요소와 동일한 방식으로 이 구성 요소를 내부 형식으로 변환한 다음 빨간색과 녹색이 0.0으로 설정되고 알파가 1.0으로 설정된 RGBA 픽셀로 변환합니다. 이 변환 후 픽셀은 RGBA 픽셀로 읽은 것처럼 처리됩니다.
GL_ALPHA
각 픽셀은 단일 알파 구성 요소입니다.
glColorTableEXT 함수는 RGBA 픽셀의 알파 구성 요소와 동일한 방식으로 이 구성 요소를 내부 형식으로 변환한 다음 빨간색, 녹색 및 파란색이 0.0으로 설정된 RGBA 픽셀로 변환합니다. 이 변환 후 픽셀은 RGBA 픽셀로 읽은 것처럼 처리됩니다.
GL_RGB
각 픽셀은 빨간색, 녹색, 파란색의 세 가지 구성 요소로 구성된 그룹입니다.
glColorTableEXT 함수는 RGBA 픽셀의 빨간색, 녹색 및 파란색 구성 요소와 동일한 방식으로 각 구성 요소를 내부 형식으로 변환합니다. 3색은 알파가 1.0으로 설정된 RGBA 픽셀로 변환됩니다. 이 변환 후 픽셀은 RGBA 픽셀로 읽은 것처럼 처리됩니다.
GL_BGR_EXT
각 픽셀은 파란색, 녹색, 빨간색의 세 가지 구성 요소로 구성된 그룹입니다.
GL_BGR_EXT Windows 디바이스 독립적 비트맵(DIB)의 메모리 레이아웃과 일치하는 형식을 제공합니다. 따라서 애플리케이션은 Windows 함수 호출 및 OpenGL 픽셀 함수 호출에서 동일한 데이터를 사용할 수 있습니다.
GL_BGRA_EXT
각 픽셀은 파란색, 녹색, 빨간색, 알파의 네 가지 구성 요소로 구성된 그룹입니다.
GL_BGRA_EXT Windows 디바이스 독립적 비트맵(DIB)의 메모리 레이아웃과 일치하는 형식을 제공합니다. 따라서 애플리케이션은 Windows 함수 호출 및 OpenGL 픽셀 함수 호출에서 동일한 데이터를 사용할 수 있습니다.

type

데이터의 데이터 형식입니다. GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT 및 GL_FLOAT 기호 상수가 허용됩니다.

다음 표에서는 형식 매개 변수에 유효한 상수의 의미를 요약합니다.

의미
GL_UNSIGNED_BYTE
부호 없는 8비트 정수
GL_BYTE
부호 있는 8비트 정수
GL_UNSIGNED_SHORT
부호 없는 16비트 정수
GL_SHORT
부호 있는 16비트 정수
GL_UNSIGNED_INT
부호 없는 32비트 정수
GL_INT
32비트 정수
GL_FLOAT
단정밀도 부동 소수점 값

data

색상표가 있는 텍스처 데이터에 대한 포인터입니다. 데이터는 색상표 항목에 대한 1차원 텍스처 팔레트 항목의 단일 픽셀로 처리됩니다.

반환 값

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

오류 코드

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

Name 의미
GL_INVALID_VALUE
width 가 잘못된 정수였습니다.
GL_INVALID_ENUM
target, internalFormat, format 또는 type 이 허용되는 값이 아닙니다.
GL_INVALID_OPERATION
함수는 glBegin 호출과 glEnd에 대한 해당 호출 간에 호출되었습니다.

설명

색상표 텍스처는 색상표의 색상표와 색상표의 색 항목에 대한 인덱스로 구성된 이미지 데이터 집합으로 정의됩니다.

glColorTableEXT 함수는 대상 텍스처의 텍스처 팔레트를 지정합니다. 메모리에서 데이터를 가져와 각 색상표 항목이 1차원 텍스처의 단일 픽셀인 것처럼 데이터를 변환합니다. glColorTableEXT 함수는 데이터의 압축을 풀고 변환하여 지정된 형식과 최대한 일치하는 내부 형식으로 변환합니다.

색상표의 너비 가 텍스처 데이터의 색 인덱스 범위보다 크면 일부 색상표 항목은 사용되지 않습니다. 색상표의 너비 가 텍스처 데이터의 색 인덱스 범위보다 작으면 텍스처 데이터의 가장 중요한 비트가 무시되고 색상표에 액세스할 때 인덱스의 적절한 비트 수만 사용됩니다. PROXY_TEXTURE_1D 또는 PROXY_TEXTURE_2D 사용하여 프록시 대상 을 지정하면 프록시 텍스처의 색상표 크기가 조정되고 매개 변수가 설정되지만 데이터가 전송되거나 액세스되지 않습니다.

대상 매개 변수가 GL_PROXY_TEXTURE_1D 또는 GL_PROXY_TEXTURE_2D 구현에서 형식 또는 너비에 대해 지정된 값을 지원하지 않는 경우 glColorTableEXT에서 요청된 색 테이블을 만들지 못할 수 있습니다. 이 경우 색 테이블은 비어 있으며 검색된 모든 매개 변수는 0이 됩니다. OpenGL이 프록시 대상을 사용하여 glColorTableEXT를 호출한 다음 glGetColorTableParameterivEXT 또는 glGetColorTableParameterfvEXT를 호출하여 너비 매개 변수가 glColorTableEXT에서 설정한 것과 일치하는지 여부를 확인하여 특정 색 테이블 형식 및 크기를 지원하는지 여부를 확인할 수 있습니다. 검색된 너비가 0이면 glColorTable 의 색 테이블 요청이 실패했습니다. 검색된 너비가 0이 아닌 경우 TEXTURE_1D 또는 TEXTURE_2D 사용하여 실제 대상을 사용하여 glColorTable 을 호출하여 색 테이블을 설정할 수 있습니다.

참고

glColorTableEXT 함수는 표준 OpenGL 라이브러리의 일부가 아니지만 GL_EXT_paletted_texture 확장의 일부인 확장 함수입니다. OpenGL 구현이 glColorTableEXT를 지원하는지 여부를 검사 glGetString(GL_EXTENSIONS)을 호출합니다. GL_EXT_paletted_texture 반환하는 경우 glColorTableEXT 가 지원됩니다. 확장 함수의 함수 주소를 가져오려면 wglGetProcAddress를 호출합니다.

glColorTableEXT 함수에서 지정한 실제 색 테이블 데이터를 검색하려면 glGetColorTableEXT를 호출합니다. glColorTableEXT 함수로 지정된 색 테이블의 너비형식과 같은 매개 변수를 검색하려면 glGetColorTableParameterivEXT 또는 glGetColorTableParameterfvEXT 함수를 호출합니다.

요구 사항

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

추가 정보

glBegin

glColorSubTableEXT

glEnd

glGetColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

wglGetProcAddress