Friday, March 31, 2006

effect of ROPs on background


reverse polish notation! read right to left!

P Selected pen
D Destination bitmap
a Bitwise AND
n Bitwise NOT (inverse)
o Bitwise OR
x Bitwise exclusive OR (XOR)

1 R2_BLACK 0 makes everything black
2 R2_NOTMERGEPEN DPon black outlining leaves bg unchanged, else pen is inverted and translucent (correct when bg is black, else darker)
3 R2_MASKNOTPEN DPna black outlining leaves bg unchanged, else pen is inverted and translucent (correct when bg is white, else darker)
4 R2_NOTCOPYPEN Pn overwrites bg, inverted drawing color
5 R2_MASKPENNOT PDna white outlining leaves bg unchanged, else pen is translucent (correct when bg is black, else darker)
6 R2_NOT Dn reverses bg: outlining or overlap shows bg unchanged (it's inverted twice)
7 R2_XORPEN DPx the coolest
8 R2_NOTMASKPEN DPan white outlining leaves bg unchanged, else pen is inverted and translucent (correct when bg is black, else lighter)
9 R2_MASKPEN DPa white outlining leaves bg unchanged, else pen is translucent (correct when bg is white, else darker)
10 R2_NOTXORPEN DPxn similar to xor
11 R2_NOP D drawing is invisible
12 R2_MERGENOTPEN DPno drawing in white leaves bg unchanged, else pen is inverted and translucent (opaque when bg is black)
13 R2_COPYPEN P straight copy
14 R2_MERGEPENNOT PDno black outlining leaves bg unchanged, else pen is translucent (correct when bg is white)
15 R2_MERGEPEN DPo black outlining leaves bg unchanged, else pen is translucent (correct when bg is black)
16 R2_WHITE 1 makes everything white

No comments: