1 /// Define the A vector polynomial bits
2 // Each bit corresponds to one of the terms in the polynomial
3 //
4 // Rop(D,S,P) = a + a D + a S + a P + a  DS + a  DP + a  SP + a   DSP
5 //               0   d     s     p     ds      dp      sp      dsp
6 
7 #define AVEC_NOT    0x01
8 #define AVEC_D      0x02
9 #define AVEC_S      0x04
10 #define AVEC_P      0x08
11 #define AVEC_DS     0x10
12 #define AVEC_DP     0x20
13 #define AVEC_SP     0x40
14 #define AVEC_DSP    0x80
15 
16 #define AVEC_NEED_SOURCE  (AVEC_S | AVEC_DS | AVEC_SP | AVEC_DSP)
17 #define AVEC_NEED_PATTERN (AVEC_P | AVEC_DP | AVEC_SP | AVEC_DSP)
18 
19 #define BB_TARGET_SCREEN 0x0001
20 #define BB_TARGET_ONLY   0x0002
21 #define BB_SOURCE_COPY   0x0004
22 #define BB_PATTERN_COPY  0x0008
23 
24 #define GET_OPINDEX_FROM_ROP3(Rop3) (((Rop3) >> 16) & 0xff)
25 #define GET_OPINDEX_FROM_ROP4(Rop4) ((Rop4) & 0xff)
26 #define ROP3_TO_ROP4(Rop3) ((((Rop3) >> 8) & 0xff00) | (((Rop3) >> 16) & 0x00ff))
27 #define R3_OPINDEX_SRCCOPY 0xcc
28 #define R3_OPINDEX_NOOP 0xaa
29 #define R4_MASK ((R3_OPINDEX_NOOP << 8) | R3_OPINDEX_SRCCOPY)
30