이진 래스터 작업
이 섹션에서는 GetROP2 및 SetROP2 함수에서 사용하는 이진 래스터 작업 코드를 나열합니다. 래스터 연산 코드는 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 | 빨간색/녹색 선 표시 |