픽셀 작업 포팅

픽셀 연산이 포함 된 코드를 이식할 때는 다음 사항을 염두에 두어야 합니다.

  • 논리 픽셀 연산은 RGBA 색 버퍼에 적용 되지 않습니다. 자세한 내용은 glLogicOp를 참조 하세요.
  • 일반적으로 IRI는 픽셀에 대해 ABGR 형식을 사용 하지만 OpenGL은 RGBA를 사용 합니다. GlPixelStore를 사용 하 여 형식을 변경할 수 있습니다.
  • Lrectwrite 함수를 이식할 때는 lrectwrite 가 작성 되는 위치 (예: 깊이 버퍼에 쓸 수 있음)에 주의 해야 합니다.

OpenGL은 픽셀 작업에서 몇 가지 추가 유연성을 제공 합니다. 다음 표에서는 픽셀 연산과 해당 하는 OpenGL 함수의 IRI GL 함수를 보여 줍니다.

IRI GL 함수 OpenGL 함수 의미
lrectread, rectread,readrgb
글 Read픽셀 프레임 버퍼에서 픽셀 블록을 읽습니다.
lrectwrite, rectwrite 인 글 Draw픽셀 프레임 버퍼에 픽셀 블록을 씁니다.
rectcopy glCopyPixels 프레임 버퍼의 픽셀을 복사 합니다.
rectzoom glPixelZoom 가 나 glCopyPixels 의 픽셀 확대 /축소 비율을 지정 합니다.
cmov glRasterPos 픽셀 작업의 래스터 위치를 지정 합니다.
readsource 글 Readbuffer 픽셀의 색 버퍼 소스를 선택 합니다.
pixmode glPixelStore,glPixelTransfer 픽셀 저장소 모드를 설정 합니다. 픽셀 전송 모드를 설정 합니다.
logicop glLogicOp 픽셀 쓰기에 대 한 논리적 연산을 지정 합니다.
고 지 (GL _ 논리 _ OP) 픽셀 논리 연산을 설정 합니다.

가능한 논리적 작업의 전체 목록은 glLogicOp를 참조 하세요.

이 IRI GL 코드 샘플은 일반적인 픽셀 쓰기를 보여줍니다.

unsigned long *packedRaster; 
.. 
packedRaster[k] = 0x00000000; 
.. 
lrectwrite(0, 0, xSize, ySize, packedRaster);

이전 코드는 OpenGL으로 변환 될 때 다음과 같이 표시 됩니다.

glRasterPos2i( 0, 0); 
glDrawPixels( xSize + 1, ySize + 1, GL_RGBA, GL_UNSIGNED_BYTE, packedRaster);