다음을 통해 공유


이진 래스터 작업

이 섹션에서는 GetROP2SetROP2 함수에서 사용하는 이진 래스터 작업 코드를 나열합니다. 래스터 연산 코드는 GDI가 선택한 펜의 비트를 대상 비트맵의 비트와 결합하는 방법을 정의합니다.

각 래스터 연산 코드는 선택한 펜의 픽셀 값과 대상 비트맵이 결합된 부울 연산을 나타냅니다. 다음은 이러한 작업에 사용되는 두 피연산자입니다.

피연산자 의미
P 선택한 펜
D 대상 비트맵

 

이러한 작업에 사용되는 부울 연산자는 다음과 같습니다.

연산자 의미
a 비트 AND
n 비트 NOT(역)
o 비트 OR
x XOR(비트 배타적 OR)

 

모든 부울 연산은 역 폴란드어 표기법으로 표시됩니다. 예를 들어 다음 작업은 대상 비트맵의 픽셀 값을 펜의 픽셀 값과 선택한 브러시의 조합으로 바꿉니다.

DPo 

각 래스터 연산 코드는 상위 단어가 부울 연산 인덱스이고 낮은 순서의 단어가 작업 코드인 32비트 정수입니다. 16비트 작업 인덱스는 두 매개 변수(이 경우 펜 및 대상 값)에 대한 부울 연산으로 인해 발생할 수 있는 모든 결과를 나타내는 0으로 확장된 8비트 값입니다. 예를 들어 DPo 및 DPan 작업에 대한 작업 인덱스는 다음 목록에 표시됩니다.

P D Dpo Dpan
0 0 0 1
0 1 1 1
1 0 1 1
1 1 1 0

 

다음 목록에서는 그리기 모드 및 그리기 모드가 나타내는 부울 연산을 간략하게 설명합니다.

래스터 작업 부울 작업
R2_BLACK 0
R2_COPYPEN P
R2_MASKNOTPEN DPna
R2_MASKPEN Dpa
R2_MASKPENNOT PDna
R2_MERGENOTPEN DPno
R2_MERGEPEN Dpo
R2_MERGEPENNOT PDno
R2_NOP D
R2_NOT DN
R2_NOTCOPYPEN Pn
R2_NOTMASKPEN DPan
R2_NOTMERGEPEN DPon
R2_NOTXORPEN DPxn
R2_WHITE 1
R2_XORPEN Dpx

 

단색 디바이스의 경우 GDI는 값 0을 검은색으로 매핑하고 값 1을 흰색으로 매핑합니다. 애플리케이션이 사용 가능한 이진 래스터 작업을 사용하여 흰색 대상에 검은색 펜으로 그리려고 하면 다음 결과가 발생합니다.

래스터 작업 결과
R2_BLACK 검은색 선 표시
R2_COPYPEN 검은색 선 표시
R2_MASKNOTPEN 가시선 없음
R2_MASKPEN 검은색 선 표시
R2_MASKPENNOT 검은색 선 표시
R2_MERGENOTPEN 가시선 없음
R2_MERGEPEN 보이는 검은색 선
R2_MERGEPENNOT 보이는 검은색 선
R2_NOP 가시선 없음
R2_NOT 보이는 검은색 선
R2_NOTCOPYPEN 가시선 없음
R2_NOTMASKPEN 가시선 없음
R2_NOTMERGEPEN 보이는 검은색 선
R2_NOTXORPEN 보이는 검은색 선
R2_WHITE 가시선 없음
R2_XORPEN 가시선 없음

 

색 디바이스의 경우 GDI는 RGB 값을 사용하여 펜과 대상의 색을 나타냅니다. RGB 색 값은 각각 지정된 색의 강도를 지정하는 빨간색, 녹색 및 파란색 필드를 포함하는 긴 정수입니다. 강도 범위는 0에서 255까지입니다. 값은 긴 정수의 세 개의 낮은 순서 바이트로 압축됩니다. 펜의 색은 항상 단색이지만 대상의 색은 두 세 가지 색이 혼합되어 있을 수 있습니다. 애플리케이션이 사용 가능한 이진 래스터 작업을 사용하여 파란색 대상에 흰색 펜으로 그리려고 하면 다음 결과가 발생합니다.

래스터 작업 결과
R2_BLACK 보이는 검은색 선
R2_COPYPEN 보이는 흰색 선
R2_MASKNOTPEN 보이는 검은색 선
R2_MASKPEN 보이지 않는 파란색 선
R2_MASKPENNOT 빨간색/녹색 선 표시
R2_MERGENOTPEN 보이지 않는 파란색 선
R2_MERGEPEN 보이는 흰색 선
R2_MERGEPENNOT 보이는 흰색 선
R2_NOP 보이지 않는 파란색 선
R2_NOT 빨간색/녹색 선 표시
R2_NOTCOPYPEN 보이는 검은색 선
R2_NOTMASKPEN 빨간색/녹색 선 표시
R2_NOTMERGEPEN 보이는 검은색 선
R2_NOTXORPEN 보이지 않는 파란색 선
R2_WHITE 보이는 흰색 선
R2_XORPEN 빨간색/녹색 선 표시