二進位點陣作業
本節列出 GetROP2 和 SetROP2 函式所使用的二進位點陣作業程序代碼。 點陣作業程式代碼會定義 GDI 如何結合所選畫筆中的位與目的地點陣圖中的位。
每個點陣作業程序代碼都代表布爾運算,其中所選取畫筆和目的地位圖中的圖元值會結合在一起。 以下是這些作業中使用的兩個作數。
操作數 | 意義 |
---|---|
P | 選取的畫筆 |
D | 目的地點陣圖 |
這些作業中使用的布爾運算符會遵循。
算子 | 意義 |
---|---|
一個 | 位 AND |
n | 位 NOT (反向) |
o | 位 OR |
x | 位獨佔 OR (XOR) |
所有布爾運算都會以反波蘭記號表示法呈現。 例如,下列作業會將目的地位圖中的圖元值取代為畫筆的圖元值和選取筆刷的圖元值組合:
DPo
每個點陣作業程序代碼都是 32 位整數,其高階字是布爾運算索引,且低序字是作業程序代碼。 16 位作業索引是零延伸的 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 會將值零對應到黑色,並將值 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 | 可見的紅色/綠色線條 |