1/* 2 3 int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop) 4 5 For use with solid fills emulated by solid 8x8 patterns. You 6 give it the foreground, planemask and X rop and it will replace 7 the foreground with a new one and the rop with the appropriate 8 MS triadic raster op. The function will return which components 9 (S-P) need to be enabled. 10 11 12 int XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop) 13 14 For use with 8x8 opaque pattern fills. You give it the foreground, 15 and background, planemask and X rop and it will replace the 16 foreground and background with new ones and the rop with the 17 appropriate MS triadic raster op. The function will return which 18 components (S-P) need to be enabled. 19 20 21 ROP_PAT - Means to enable 8x8 mono patterns (all bits 22 set for solid patterns). Set the foreground and 23 background as returned by the function. 24 25 ROP_SRC - Means a source of color == planemask should be used. 26 27 28*/ 29 30#ifndef _XAAROP_H 31#define _XAAROP_H 32 33#define ROP_DST 0x00000001 34#define ROP_SRC 0x00000002 35#define ROP_PAT 0x00000004 36 37#define ROP_0 0x00 38#define ROP_DPSoon 0x01 39#define ROP_DPSona 0x02 40#define ROP_PSon 0x03 41#define ROP_SDPona 0x04 42#define ROP_DPon 0x05 43#define ROP_PDSxnon 0x06 44#define ROP_PDSaon 0x07 45#define ROP_SDPnaa 0x08 46#define ROP_PDSxon 0x09 47#define ROP_DPna 0x0A 48#define ROP_PSDnaon 0x0B 49#define ROP_SPna 0x0C 50#define ROP_PDSnaon 0x0D 51#define ROP_PDSonon 0x0E 52#define ROP_Pn 0x0F 53#define ROP_PDSona 0x10 54#define ROP_DSon 0x11 55#define ROP_SDPxnon 0x12 56#define ROP_SDPaon 0x13 57#define ROP_DPSxnon 0x14 58#define ROP_DPSaon 0x15 59#define ROP_PSDPSanaxx 0x16 60#define ROP_SSPxDSxaxn 0x17 61#define ROP_SPxPDxa 0x18 62#define ROP_SDPSanaxn 0x19 63#define ROP_PDSPaox 0x1A 64#define ROP_SDPSxaxn 0x1B 65#define ROP_PSDPaox 0x1C 66#define ROP_DSPDxaxn 0x1D 67#define ROP_PDSox 0x1E 68#define ROP_PDSoan 0x1F 69#define ROP_DPSnaa 0x20 70#define ROP_SDPxon 0x21 71#define ROP_DSna 0x22 72#define ROP_SPDnaon 0x23 73#define ROP_SPxDSxa 0x24 74#define ROP_PDSPanaxn 0x25 75#define ROP_SDPSaox 0x26 76#define ROP_SDPSxnox 0x27 77#define ROP_DPSxa 0x28 78#define ROP_PSDPSaoxxn 0x29 79#define ROP_DPSana 0x2A 80#define ROP_SSPxPDxaxn 0x2B 81#define ROP_SPDSoax 0x2C 82#define ROP_PSDnox 0x2D 83#define ROP_PSDPxox 0x2E 84#define ROP_PSDnoan 0x2F 85#define ROP_PSna 0x30 86#define ROP_SDPnaon 0x31 87#define ROP_SDPSoox 0x32 88#define ROP_Sn 0x33 89#define ROP_SPDSaox 0x34 90#define ROP_SPDSxnox 0x35 91#define ROP_SDPox 0x36 92#define ROP_SDPoan 0x37 93#define ROP_PSDPoax 0x38 94#define ROP_SPDnox 0x39 95#define ROP_SPDSxox 0x3A 96#define ROP_SPDnoan 0x3B 97#define ROP_PSx 0x3C 98#define ROP_SPDSonox 0x3D 99#define ROP_SPDSnaox 0x3E 100#define ROP_PSan 0x3F 101#define ROP_PSDnaa 0x40 102#define ROP_DPSxon 0x41 103#define ROP_SDxPDxa 0x42 104#define ROP_SPDSanaxn 0x43 105#define ROP_SDna 0x44 106#define ROP_DPSnaon 0x45 107#define ROP_DSPDaox 0x46 108#define ROP_PSDPxaxn 0x47 109#define ROP_SDPxa 0x48 110#define ROP_PDSPDaoxxn 0x49 111#define ROP_DPSDoax 0x4A 112#define ROP_PDSnox 0x4B 113#define ROP_SDPana 0x4C 114#define ROP_SSPxDSxoxn 0x4D 115#define ROP_PDSPxox 0x4E 116#define ROP_PDSnoan 0x4F 117#define ROP_PDna 0x50 118#define ROP_DSPnaon 0x51 119#define ROP_DPSDaox 0x52 120#define ROP_SPDSxaxn 0x53 121#define ROP_DPSonon 0x54 122#define ROP_Dn 0x55 123#define ROP_DPSox 0x56 124#define ROP_DPSoan 0x57 125#define ROP_PDSPoax 0x58 126#define ROP_DPSnox 0x59 127#define ROP_DPx 0x5A 128#define ROP_DPSDonox 0x5B 129#define ROP_DPSDxox 0x5C 130#define ROP_DPSnoan 0x5D 131#define ROP_DPSDnaox 0x5E 132#define ROP_DPan 0x5F 133#define ROP_PDSxa 0x60 134#define ROP_DSPDSaoxxn 0x61 135#define ROP_DSPDoax 0x62 136#define ROP_SDPnox 0x63 137#define ROP_SDPSoax 0x64 138#define ROP_DSPnox 0x65 139#define ROP_DSx 0x66 140#define ROP_SDPSonox 0x67 141#define ROP_DSPDSonoxxn 0x68 142#define ROP_PDSxxn 0x69 143#define ROP_DPSax 0x6A 144#define ROP_PSDPSoaxxn 0x6B 145#define ROP_SDPax 0x6C 146#define ROP_PDSPDoaxxn 0x6D 147#define ROP_SDPSnoax 0x6E 148#define ROP_PDSxnan 0x6F 149#define ROP_PDSana 0x70 150#define ROP_SSDxPDxaxn 0x71 151#define ROP_SDPSxox 0x72 152#define ROP_SDPnoan 0x73 153#define ROP_DSPDxox 0x74 154#define ROP_DSPnoan 0x75 155#define ROP_SDPSnaox 0x76 156#define ROP_DSan 0x77 157#define ROP_PDSax 0x78 158#define ROP_DSPDSoaxxn 0x79 159#define ROP_DPSDnoax 0x7A 160#define ROP_SDPxnan 0x7B 161#define ROP_SPDSnoax 0x7C 162#define ROP_DPSxnan 0x7D 163#define ROP_SPxDSxo 0x7E 164#define ROP_DPSaan 0x7F 165#define ROP_DPSaa 0x80 166#define ROP_SPxDSxon 0x81 167#define ROP_DPSxna 0x82 168#define ROP_SPDSnoaxn 0x83 169#define ROP_SDPxna 0x84 170#define ROP_PDSPnoaxn 0x85 171#define ROP_DSPDSoaxx 0x86 172#define ROP_PDSaxn 0x87 173#define ROP_DSa 0x88 174#define ROP_SDPSnaoxn 0x89 175#define ROP_DSPnoa 0x8A 176#define ROP_DSPDxoxn 0x8B 177#define ROP_SDPnoa 0x8C 178#define ROP_SDPSxoxn 0x8D 179#define ROP_SSDxPDxax 0x8E 180#define ROP_PDSanan 0x8F 181#define ROP_PDSxna 0x90 182#define ROP_SDPSnoaxn 0x91 183#define ROP_DPSDPoaxx 0x92 184#define ROP_SPDaxn 0x93 185#define ROP_PSDPSoaxx 0x94 186#define ROP_DPSaxn 0x95 187#define ROP_DPSxx 0x96 188#define ROP_PSDPSonoxx 0x97 189#define ROP_SDPSonoxn 0x98 190#define ROP_DSxn 0x99 191#define ROP_DPSnax 0x9A 192#define ROP_SDPSoaxn 0x9B 193#define ROP_SPDnax 0x9C 194#define ROP_DSPDoaxn 0x9D 195#define ROP_DSPDSaoxx 0x9E 196#define ROP_PDSxan 0x9F 197#define ROP_DPa 0xA0 198#define ROP_PDSPnaoxn 0xA1 199#define ROP_DPSnoa 0xA2 200#define ROP_DPSDxoxn 0xA3 201#define ROP_PDSPonoxn 0xA4 202#define ROP_PDxn 0xA5 203#define ROP_DSPnax 0xA6 204#define ROP_PDSPoaxn 0xA7 205#define ROP_DPSoa 0xA8 206#define ROP_DPSoxn 0xA9 207#define ROP_D 0xAA 208#define ROP_DPSono 0xAB 209#define ROP_SPDSxax 0xAC 210#define ROP_DPSDaoxn 0xAD 211#define ROP_DSPnao 0xAE 212#define ROP_DPno 0xAF 213#define ROP_PDSnoa 0xB0 214#define ROP_PDSPxoxn 0xB1 215#define ROP_SSPxDSxox 0xB2 216#define ROP_SDPanan 0xB3 217#define ROP_PSDnax 0xB4 218#define ROP_DPSDoaxn 0xB5 219#define ROP_DPSDPaoxx 0xB6 220#define ROP_SDPxan 0xB7 221#define ROP_PSDPxax 0xB8 222#define ROP_DSPDaoxn 0xB9 223#define ROP_DPSnao 0xBA 224#define ROP_DSno 0xBB 225#define ROP_SPDSanax 0xBC 226#define ROP_SDxPDxan 0xBD 227#define ROP_DPSxo 0xBE 228#define ROP_DPSano 0xBF 229#define ROP_Psa 0xC0 230#define ROP_SPDSnaoxn 0xC1 231#define ROP_SPDSonoxn 0xC2 232#define ROP_PSxn 0xC3 233#define ROP_SPDnoa 0xC4 234#define ROP_SPDSxoxn 0xC5 235#define ROP_SDPnax 0xC6 236#define ROP_PSDPoaxn 0xC7 237#define ROP_SDPoa 0xC8 238#define ROP_SPDoxn 0xC9 239#define ROP_DPSDxax 0xCA 240#define ROP_SPDSaoxn 0xCB 241#define ROP_S 0xCC 242#define ROP_SDPono 0xCD 243#define ROP_SDPnao 0xCE 244#define ROP_SPno 0xCF 245#define ROP_PSDnoa 0xD0 246#define ROP_PSDPxoxn 0xD1 247#define ROP_PDSnax 0xD2 248#define ROP_SPDSoaxn 0xD3 249#define ROP_SSPxPDxax 0xD4 250#define ROP_DPSanan 0xD5 251#define ROP_PSDPSaoxx 0xD6 252#define ROP_DPSxan 0xD7 253#define ROP_PDSPxax 0xD8 254#define ROP_SDPSaoxn 0xD9 255#define ROP_DPSDanax 0xDA 256#define ROP_SPxDSxan 0xDB 257#define ROP_SPDnao 0xDC 258#define ROP_SDno 0xDD 259#define ROP_SDPxo 0xDE 260#define ROP_SDPano 0xDF 261#define ROP_PDSoa 0xE0 262#define ROP_PDSoxn 0xE1 263#define ROP_DSPDxax 0xE2 264#define ROP_PSDPaoxn 0xE3 265#define ROP_SDPSxax 0xE4 266#define ROP_PDSPaoxn 0xE5 267#define ROP_SDPSanax 0xE6 268#define ROP_SPxPDxan 0xE7 269#define ROP_SSPxDSxax 0xE8 270#define ROP_DSPDSanaxxn 0xE9 271#define ROP_DPSao 0xEA 272#define ROP_DPSxno 0xEB 273#define ROP_SDPao 0xEC 274#define ROP_SDPxno 0xED 275#define ROP_DSo 0xEE 276#define ROP_SDPnoo 0xEF 277#define ROP_P 0xF0 278#define ROP_PDSono 0xF1 279#define ROP_PDSnao 0xF2 280#define ROP_PSno 0xF3 281#define ROP_PSDnao 0xF4 282#define ROP_PDno 0xF5 283#define ROP_PDSxo 0xF6 284#define ROP_PDSano 0xF7 285#define ROP_PDSao 0xF8 286#define ROP_PDSxno 0xF9 287#define ROP_DPo 0xFA 288#define ROP_DPSnoo 0xFB 289#define ROP_PSo 0xFC 290#define ROP_PSDnoo 0xFD 291#define ROP_DPSoo 0xFE 292#define ROP_1 0xFF 293 294#define NO_SRC_ROP(rop) \ 295 ((rop == GXnoop) || (rop == GXset) || (rop == GXclear) || (rop == GXinvert)) 296 297extern _X_EXPORT int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop); 298extern _X_EXPORT int XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop); 299 300/* XXX These four should be static, but it breaks the 6.7.0 ABI. */ 301extern _X_EXPORT int XAACopyROP[16]; 302extern _X_EXPORT int XAACopyROP_PM[16]; 303extern _X_EXPORT int XAAPatternROP[16]; 304extern _X_EXPORT int XAAPatternROP_PM[16]; 305 306extern _X_EXPORT int XAAGetCopyROP(int i); 307extern _X_EXPORT int XAAGetCopyROP_PM(int i); 308extern _X_EXPORT int XAAGetPatternROP(int i); 309extern _X_EXPORT int XAAGetPatternROP_PM(int i); 310 311#endif /* _XAAROP_H */ 312