glPixelTransferf 함수

glPixelTransferfglPixelTransferi 함수는 픽셀 전송 모드를 설정합니다.

구문

void WINAPI glPixelTransferf(
   GLenum  pname,
   GLfloat param
);

매개 변수

pname

설정할 픽셀 전송 매개 변수의 기호 이름입니다. 다음 표에서는 glPixelTransfer로 설정된 각 픽셀 전송 매개 변수에 대한 형식, 초기 값 및 유효한 값 범위를 제공합니다.

Pname 형식 초기 값 유효 범위
GL_MAP_COLOR 부울 false true/false
GL_MAP_STENCIL 부울 false true/false
GL_INDEX_SHIFT integer 0 (8,8)
GL_INDEX_OFFSET integer 0 (8,8)
GL_RED_SCALE 정수 1.0 (8,8)
GL_GREEN_SCALE float 1.0 (8,8)
GL_BLUE_SCALE float 1.0 (8,8)
GL_ALPHA_SCALE float 1.0 (8,8)
GL_DEPTH_SCALE float 1.0 (8,8)
GL_RED_BIAS float 0.0 (8,8)
GL_GREEN_BIAS float 0.0 (8,8)
GL_BLUE_BIAS float 0.0 (8,8)
GL_ALPHA_BIAS float 0.0 (8,8)
GL_DEPTH_BIAS float 0.0 (8,8)

param

pname이 설정된 값입니다.

반환 값

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

설명

glPixelTransfer 함수는 후속 glCopyPixels의 작업에 영향을 주는 픽셀 전송 모드를 설정합니다. glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, glDrawPixels, glReadPixels, glTexImage1D, glTexImage2D, glTexSubImage1DglTexSubImage2D 명령. 픽셀 전송 모드로 지정된 알고리즘은 프레임 버퍼(glReadPixels 및 glCopyPixels)에서 읽거나 클라이언트 메모리(glDrawPixels, glTexImage1DglTexImage2D)에서 압축을 풉니다. 픽셀 전송 작업은 픽셀 작업을 초래한 명령에 관계없이 동일한 순서로 수행됩니다. 픽셀 스토리지 모드(glPixelStore)는 클라이언트 메모리에서 읽는 픽셀의 압축을 풀고 클라이언트 메모리에 다시 기록되는 픽셀의 압축을 제어합니다.

픽셀 전송 작업은 , 색 인덱스, 깊이스텐실의 네 가지 기본 픽셀 유형을 처리합니다. 색 픽셀은 지정되지 않은 사나 및 지수 크기를 가진 4개의 부동 소수점 값으로 구성되며, 0.0은 강도가 0이고 1.0은 전체 강도를 나타내기 때문에 크기가 조정됩니다. 색 인덱스는 단일 고정 소수점 값으로 구성되며, 이진 지점의 오른쪽에 지정되지 않은 전체 자릿수가 있습니다. 깊이 픽셀은 단일 부동 소수점 값으로 구성되며, 0.0은 최소 깊이 버퍼 값을 나타내고 1.0은 최대 깊이 버퍼 값을 나타내기 위해 크기가 조정됩니다. 마지막으로, 스텐실 픽셀은 단일 고정 소수점 값으로 구성되며, 이진 지점의 오른쪽에는 지정되지 않은 정밀도로 구성됩니다.

네 가지 기본 픽셀 형식에서 수행되는 픽셀 전송 작업은 다음과 같습니다.

픽셀 유형 픽셀 전송 작업
색상 네 가지 색 구성 요소 각각에 배율 인수를 곱한 다음 바이어스 계수에 추가됩니다. 즉, 빨간색 구성 요소는 GL_RED_SCALE 곱한 다음 GL_RED_BIAS 추가됩니다. 녹색 구성 요소는 GL_GREEN_SCALE 곱한 다음 GL_GREEN_BIAS 추가됩니다. 파란색 구성 요소는 GL_BLUE_SCALE 곱한 다음 GL_BLUE_BIAS 추가됩니다. 알파 구성 요소가 GL_ALPHA_SCALE 곱한 다음 GL_ALPHA_BIAS 추가됩니다. 네 가지 색 구성 요소가 모두 크기 조정되고 편향된 후에는 각각 [0,1] 범위로 고정됩니다. 모든 색 눈금 및 바이어스 값은 glPixelTransfer로 지정됩니다.
GL_MAP_COLOR true이면 각 색 구성 요소는 해당 색 대 색 맵의 크기로 크기를 조정한 다음 크기 조정된 구성 요소에 의해 인덱싱된 해당 맵의 내용으로 바뀝니다. 즉, 빨간색 구성 요소는 GL_PIXEL_MAP_R_TO_R_SIZE 크기 조정된 다음, 자체 인덱싱된 GL_PIXEL_MAP_R_TO_R 내용으로 바뀝니다. 녹색 구성 요소는 GL_PIXEL_MAP_G_TO_G_SIZE 따라 크기를 조정한 다음 자체 인덱싱된 GL_PIXEL_MAP_G_TO_G 내용으로 바뀝니다. 파란색 구성 요소는 GL_PIXEL_MAP_B_TO_B_SIZE 따라 크기를 조정한 다음 자체 인덱싱된 GL_PIXEL_MAP_B_TO_B 내용으로 바뀝니다. 알파 구성 요소는 GL_PIXEL_MAP_A_TO_A_SIZE 따라 크기를 조정한 다음 자체 인덱싱된 GL_PIXEL_MAP_A_TO_A 내용으로 바뀝니다. 그런 다음 맵에서 가져온 모든 구성 요소가 [0,1] 범위로 고정됩니다. GL_MAP_COLOR glPixelTransfer로 지정됩니다. 다양한 맵의 내용은 glPixelMap으로 지정됩니다.
색 인덱스 각 색 인덱스는 GL_INDEX_SHIFT 비트에 의해 왼쪽으로 이동하여 고정 소수점 인덱스가 수행하는 소수점 비트 수를 초과하는 모든 비트를 0으로 채웁니다. GL_INDEX_SHIFT 음수이면 오른쪽으로 이동한 다음 다시 0으로 채워집니다. GL_INDEX_OFFSET 인덱스로 추가됩니다. GL_INDEX_SHIFT 및 GL_INDEX_OFFSET glPixelTransfer로 지정됩니다.
이 시점에서 작업은 결과 픽셀의 필수 형식에 따라 달라집니다. 결과 픽셀을 색 인덱스 버퍼에 쓰거나 GL_COLOR_INDEX 형식으로 클라이언트 메모리로 다시 읽는 경우 픽셀은 계속해서 인덱스로 처리됩니다. GL_MAP_COLOR true이면 각 인덱스가 2 ^ n 1로 마스킹되고 여기서 n 은 GL_PIXEL_MAP_I_TO_I_SIZE 마스킹된 값으로 인덱싱된 GL_PIXEL_MAP_I_TO_I 내용으로 바뀝니다. GL_MAP_COLOR glPixelTransfer로 지정됩니다. 인덱스 맵의 내용은 glPixelMap으로 지정됩니다.
결과 픽셀을 RGBA 색 버퍼에 쓰거나 GL_COLOR_INDEX 이외의 형식으로 클라이언트 메모리로 다시 읽는 경우 픽셀은 4개의 맵 GL_PIXEL_MAP_I_TO_R 참조하여 인덱스에서 색으로 변환됩니다. GL_PIXEL_MAP_I_TO_G GL_PIXEL_MAP_I_TO_B 및 GL_PIXEL_MAP_I_TO_A. 역참조되기 전에 인덱스는 2 n 1로 마스킹됩니다. 여기서 n은 빨간색 맵에 대해 GL_PIXEL_MAP_I_TO_R_SIZE 녹색 맵의 경우 GL_PIXEL_MAP_I_TO_G_SIZE, 파란색 맵의 경우 GL_PIXEL_MAP_I_TO_B_SIZE 알파 맵에 대해 GL_PIXEL_MAP_I_TO_A_SIZE. 그런 다음 맵에서 가져온 모든 구성 요소가 [0,1] 범위로 고정됩니다. 4개의 맵 내용이 glPixelMap으로 지정됩니다.
깊이 각 깊이 값은 GL_DEPTH_SCALE 곱한 다음, GL_DEPTH_BIAS 추가한 다음 범위 [0,1]에 고정됩니다.
Stencil 각 인덱스는 색 인덱스와 마찬가지로 비트 GL_INDEX_SHIFT 이동한 다음 GL_INDEX_OFFSET 추가됩니다. GL_MAP_STENCIL true이면 각 인덱스가 2n 1로 마스킹되고 여기서 n 은 GL_PIXEL_MAP_S_TO_S_SIZE 마스킹된 값으로 인덱싱된 GL_PIXEL_MAP_S_TO_S 내용으로 바뀝니다.

glPixelTransferf 함수를 사용하여 픽셀 전송 매개 변수를 설정할 수 있습니다. 매개 변수 형식이 Boolean이면 0.0은 false를 의미하고 다른 값은 true를 의미합니다. pname이 정수 매개 변수인 경우 매개 변수는 가장 가까운 정수로 반올림됩니다.

마찬가지로 glPixelTransferi 를 사용하여 픽셀 전송 매개 변수를 설정할 수도 있습니다. 매개 변수가 0이고 그렇지 않으면 true이면 부울 매개 변수가 false로 설정됩니다. 매개 변수는 실제 값 매개 변수에 할당되기 전에 부동 소수점으로 변환됩니다.

glDrawPixels, glReadPixels, glCopyPixels, glTexImage1D 또는 glTexImage2D 명령이 표시 목록에 배치된 경우(glNewListglCallList 참조) 디스플레이 목록이 실행될 때 적용되는 픽셀 전송 모드 설정이 사용됩니다. 명령이 표시 목록으로 컴파일된 경우 설정과 다를 수 있습니다.

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

인수가 GL_MAP_COLOR glGet

인수 GL_MAP_STENCIL 있는 glGet

인수가 GL_INDEX_SHIFT glGet

인수가 GL_INDEX_OFFSET glGet

인수가 GL_RED_SCALE glGet

인수가 GL_RED_BIAS glGet

인수가 GL_GREEN_SCALE glGet

인수가 GL_GREEN_BIAS glGet

인수가 GL_BLUE_SCALE glGet

인수가 GL_BLUE_BIAS glGet

인수가 GL_ALPHA_SCALE glGet

인수가 GL_ALPHA_BIAS glGet

인수가 GL_DEPTH_SCALE glGet

인수가 GL_DEPTH_BIAS glGet

요구 사항

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

추가 정보

glBegin

glCallList

glCopyPixels

glDrawPixels

glEnd

glNewList

glPixelMap

glPixelStore

glPixelZoom

glReadPixels

glTexImage1D

glTexImage2D