1706f2543Smrg/* 2706f2543Smrg 3706f2543Smrg int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop) 4706f2543Smrg 5706f2543Smrg For use with solid fills emulated by solid 8x8 patterns. You 6706f2543Smrg give it the foreground, planemask and X rop and it will replace 7706f2543Smrg the foreground with a new one and the rop with the appropriate 8706f2543Smrg MS triadic raster op. The function will return which components 9706f2543Smrg (S-P) need to be enabled. 10706f2543Smrg 11706f2543Smrg 12706f2543Smrg int XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop) 13706f2543Smrg 14706f2543Smrg For use with 8x8 opaque pattern fills. You give it the foreground, 15706f2543Smrg and background, planemask and X rop and it will replace the 16706f2543Smrg foreground and background with new ones and the rop with the 17706f2543Smrg appropriate MS triadic raster op. The function will return which 18706f2543Smrg components (S-P) need to be enabled. 19706f2543Smrg 20706f2543Smrg 21706f2543Smrg ROP_PAT - Means to enable 8x8 mono patterns (all bits 22706f2543Smrg set for solid patterns). Set the foreground and 23706f2543Smrg background as returned by the function. 24706f2543Smrg 25706f2543Smrg ROP_SRC - Means a source of color == planemask should be used. 26706f2543Smrg 27706f2543Smrg 28706f2543Smrg*/ 29706f2543Smrg 30706f2543Smrg#ifndef _XAAROP_H 31706f2543Smrg#define _XAAROP_H 32706f2543Smrg 33706f2543Smrg#define ROP_DST 0x00000001 34706f2543Smrg#define ROP_SRC 0x00000002 35706f2543Smrg#define ROP_PAT 0x00000004 36706f2543Smrg 37706f2543Smrg#define ROP_0 0x00 38706f2543Smrg#define ROP_DPSoon 0x01 39706f2543Smrg#define ROP_DPSona 0x02 40706f2543Smrg#define ROP_PSon 0x03 41706f2543Smrg#define ROP_SDPona 0x04 42706f2543Smrg#define ROP_DPon 0x05 43706f2543Smrg#define ROP_PDSxnon 0x06 44706f2543Smrg#define ROP_PDSaon 0x07 45706f2543Smrg#define ROP_SDPnaa 0x08 46706f2543Smrg#define ROP_PDSxon 0x09 47706f2543Smrg#define ROP_DPna 0x0A 48706f2543Smrg#define ROP_PSDnaon 0x0B 49706f2543Smrg#define ROP_SPna 0x0C 50706f2543Smrg#define ROP_PDSnaon 0x0D 51706f2543Smrg#define ROP_PDSonon 0x0E 52706f2543Smrg#define ROP_Pn 0x0F 53706f2543Smrg#define ROP_PDSona 0x10 54706f2543Smrg#define ROP_DSon 0x11 55706f2543Smrg#define ROP_SDPxnon 0x12 56706f2543Smrg#define ROP_SDPaon 0x13 57706f2543Smrg#define ROP_DPSxnon 0x14 58706f2543Smrg#define ROP_DPSaon 0x15 59706f2543Smrg#define ROP_PSDPSanaxx 0x16 60706f2543Smrg#define ROP_SSPxDSxaxn 0x17 61706f2543Smrg#define ROP_SPxPDxa 0x18 62706f2543Smrg#define ROP_SDPSanaxn 0x19 63706f2543Smrg#define ROP_PDSPaox 0x1A 64706f2543Smrg#define ROP_SDPSxaxn 0x1B 65706f2543Smrg#define ROP_PSDPaox 0x1C 66706f2543Smrg#define ROP_DSPDxaxn 0x1D 67706f2543Smrg#define ROP_PDSox 0x1E 68706f2543Smrg#define ROP_PDSoan 0x1F 69706f2543Smrg#define ROP_DPSnaa 0x20 70706f2543Smrg#define ROP_SDPxon 0x21 71706f2543Smrg#define ROP_DSna 0x22 72706f2543Smrg#define ROP_SPDnaon 0x23 73706f2543Smrg#define ROP_SPxDSxa 0x24 74706f2543Smrg#define ROP_PDSPanaxn 0x25 75706f2543Smrg#define ROP_SDPSaox 0x26 76706f2543Smrg#define ROP_SDPSxnox 0x27 77706f2543Smrg#define ROP_DPSxa 0x28 78706f2543Smrg#define ROP_PSDPSaoxxn 0x29 79706f2543Smrg#define ROP_DPSana 0x2A 80706f2543Smrg#define ROP_SSPxPDxaxn 0x2B 81706f2543Smrg#define ROP_SPDSoax 0x2C 82706f2543Smrg#define ROP_PSDnox 0x2D 83706f2543Smrg#define ROP_PSDPxox 0x2E 84706f2543Smrg#define ROP_PSDnoan 0x2F 85706f2543Smrg#define ROP_PSna 0x30 86706f2543Smrg#define ROP_SDPnaon 0x31 87706f2543Smrg#define ROP_SDPSoox 0x32 88706f2543Smrg#define ROP_Sn 0x33 89706f2543Smrg#define ROP_SPDSaox 0x34 90706f2543Smrg#define ROP_SPDSxnox 0x35 91706f2543Smrg#define ROP_SDPox 0x36 92706f2543Smrg#define ROP_SDPoan 0x37 93706f2543Smrg#define ROP_PSDPoax 0x38 94706f2543Smrg#define ROP_SPDnox 0x39 95706f2543Smrg#define ROP_SPDSxox 0x3A 96706f2543Smrg#define ROP_SPDnoan 0x3B 97706f2543Smrg#define ROP_PSx 0x3C 98706f2543Smrg#define ROP_SPDSonox 0x3D 99706f2543Smrg#define ROP_SPDSnaox 0x3E 100706f2543Smrg#define ROP_PSan 0x3F 101706f2543Smrg#define ROP_PSDnaa 0x40 102706f2543Smrg#define ROP_DPSxon 0x41 103706f2543Smrg#define ROP_SDxPDxa 0x42 104706f2543Smrg#define ROP_SPDSanaxn 0x43 105706f2543Smrg#define ROP_SDna 0x44 106706f2543Smrg#define ROP_DPSnaon 0x45 107706f2543Smrg#define ROP_DSPDaox 0x46 108706f2543Smrg#define ROP_PSDPxaxn 0x47 109706f2543Smrg#define ROP_SDPxa 0x48 110706f2543Smrg#define ROP_PDSPDaoxxn 0x49 111706f2543Smrg#define ROP_DPSDoax 0x4A 112706f2543Smrg#define ROP_PDSnox 0x4B 113706f2543Smrg#define ROP_SDPana 0x4C 114706f2543Smrg#define ROP_SSPxDSxoxn 0x4D 115706f2543Smrg#define ROP_PDSPxox 0x4E 116706f2543Smrg#define ROP_PDSnoan 0x4F 117706f2543Smrg#define ROP_PDna 0x50 118706f2543Smrg#define ROP_DSPnaon 0x51 119706f2543Smrg#define ROP_DPSDaox 0x52 120706f2543Smrg#define ROP_SPDSxaxn 0x53 121706f2543Smrg#define ROP_DPSonon 0x54 122706f2543Smrg#define ROP_Dn 0x55 123706f2543Smrg#define ROP_DPSox 0x56 124706f2543Smrg#define ROP_DPSoan 0x57 125706f2543Smrg#define ROP_PDSPoax 0x58 126706f2543Smrg#define ROP_DPSnox 0x59 127706f2543Smrg#define ROP_DPx 0x5A 128706f2543Smrg#define ROP_DPSDonox 0x5B 129706f2543Smrg#define ROP_DPSDxox 0x5C 130706f2543Smrg#define ROP_DPSnoan 0x5D 131706f2543Smrg#define ROP_DPSDnaox 0x5E 132706f2543Smrg#define ROP_DPan 0x5F 133706f2543Smrg#define ROP_PDSxa 0x60 134706f2543Smrg#define ROP_DSPDSaoxxn 0x61 135706f2543Smrg#define ROP_DSPDoax 0x62 136706f2543Smrg#define ROP_SDPnox 0x63 137706f2543Smrg#define ROP_SDPSoax 0x64 138706f2543Smrg#define ROP_DSPnox 0x65 139706f2543Smrg#define ROP_DSx 0x66 140706f2543Smrg#define ROP_SDPSonox 0x67 141706f2543Smrg#define ROP_DSPDSonoxxn 0x68 142706f2543Smrg#define ROP_PDSxxn 0x69 143706f2543Smrg#define ROP_DPSax 0x6A 144706f2543Smrg#define ROP_PSDPSoaxxn 0x6B 145706f2543Smrg#define ROP_SDPax 0x6C 146706f2543Smrg#define ROP_PDSPDoaxxn 0x6D 147706f2543Smrg#define ROP_SDPSnoax 0x6E 148706f2543Smrg#define ROP_PDSxnan 0x6F 149706f2543Smrg#define ROP_PDSana 0x70 150706f2543Smrg#define ROP_SSDxPDxaxn 0x71 151706f2543Smrg#define ROP_SDPSxox 0x72 152706f2543Smrg#define ROP_SDPnoan 0x73 153706f2543Smrg#define ROP_DSPDxox 0x74 154706f2543Smrg#define ROP_DSPnoan 0x75 155706f2543Smrg#define ROP_SDPSnaox 0x76 156706f2543Smrg#define ROP_DSan 0x77 157706f2543Smrg#define ROP_PDSax 0x78 158706f2543Smrg#define ROP_DSPDSoaxxn 0x79 159706f2543Smrg#define ROP_DPSDnoax 0x7A 160706f2543Smrg#define ROP_SDPxnan 0x7B 161706f2543Smrg#define ROP_SPDSnoax 0x7C 162706f2543Smrg#define ROP_DPSxnan 0x7D 163706f2543Smrg#define ROP_SPxDSxo 0x7E 164706f2543Smrg#define ROP_DPSaan 0x7F 165706f2543Smrg#define ROP_DPSaa 0x80 166706f2543Smrg#define ROP_SPxDSxon 0x81 167706f2543Smrg#define ROP_DPSxna 0x82 168706f2543Smrg#define ROP_SPDSnoaxn 0x83 169706f2543Smrg#define ROP_SDPxna 0x84 170706f2543Smrg#define ROP_PDSPnoaxn 0x85 171706f2543Smrg#define ROP_DSPDSoaxx 0x86 172706f2543Smrg#define ROP_PDSaxn 0x87 173706f2543Smrg#define ROP_DSa 0x88 174706f2543Smrg#define ROP_SDPSnaoxn 0x89 175706f2543Smrg#define ROP_DSPnoa 0x8A 176706f2543Smrg#define ROP_DSPDxoxn 0x8B 177706f2543Smrg#define ROP_SDPnoa 0x8C 178706f2543Smrg#define ROP_SDPSxoxn 0x8D 179706f2543Smrg#define ROP_SSDxPDxax 0x8E 180706f2543Smrg#define ROP_PDSanan 0x8F 181706f2543Smrg#define ROP_PDSxna 0x90 182706f2543Smrg#define ROP_SDPSnoaxn 0x91 183706f2543Smrg#define ROP_DPSDPoaxx 0x92 184706f2543Smrg#define ROP_SPDaxn 0x93 185706f2543Smrg#define ROP_PSDPSoaxx 0x94 186706f2543Smrg#define ROP_DPSaxn 0x95 187706f2543Smrg#define ROP_DPSxx 0x96 188706f2543Smrg#define ROP_PSDPSonoxx 0x97 189706f2543Smrg#define ROP_SDPSonoxn 0x98 190706f2543Smrg#define ROP_DSxn 0x99 191706f2543Smrg#define ROP_DPSnax 0x9A 192706f2543Smrg#define ROP_SDPSoaxn 0x9B 193706f2543Smrg#define ROP_SPDnax 0x9C 194706f2543Smrg#define ROP_DSPDoaxn 0x9D 195706f2543Smrg#define ROP_DSPDSaoxx 0x9E 196706f2543Smrg#define ROP_PDSxan 0x9F 197706f2543Smrg#define ROP_DPa 0xA0 198706f2543Smrg#define ROP_PDSPnaoxn 0xA1 199706f2543Smrg#define ROP_DPSnoa 0xA2 200706f2543Smrg#define ROP_DPSDxoxn 0xA3 201706f2543Smrg#define ROP_PDSPonoxn 0xA4 202706f2543Smrg#define ROP_PDxn 0xA5 203706f2543Smrg#define ROP_DSPnax 0xA6 204706f2543Smrg#define ROP_PDSPoaxn 0xA7 205706f2543Smrg#define ROP_DPSoa 0xA8 206706f2543Smrg#define ROP_DPSoxn 0xA9 207706f2543Smrg#define ROP_D 0xAA 208706f2543Smrg#define ROP_DPSono 0xAB 209706f2543Smrg#define ROP_SPDSxax 0xAC 210706f2543Smrg#define ROP_DPSDaoxn 0xAD 211706f2543Smrg#define ROP_DSPnao 0xAE 212706f2543Smrg#define ROP_DPno 0xAF 213706f2543Smrg#define ROP_PDSnoa 0xB0 214706f2543Smrg#define ROP_PDSPxoxn 0xB1 215706f2543Smrg#define ROP_SSPxDSxox 0xB2 216706f2543Smrg#define ROP_SDPanan 0xB3 217706f2543Smrg#define ROP_PSDnax 0xB4 218706f2543Smrg#define ROP_DPSDoaxn 0xB5 219706f2543Smrg#define ROP_DPSDPaoxx 0xB6 220706f2543Smrg#define ROP_SDPxan 0xB7 221706f2543Smrg#define ROP_PSDPxax 0xB8 222706f2543Smrg#define ROP_DSPDaoxn 0xB9 223706f2543Smrg#define ROP_DPSnao 0xBA 224706f2543Smrg#define ROP_DSno 0xBB 225706f2543Smrg#define ROP_SPDSanax 0xBC 226706f2543Smrg#define ROP_SDxPDxan 0xBD 227706f2543Smrg#define ROP_DPSxo 0xBE 228706f2543Smrg#define ROP_DPSano 0xBF 229706f2543Smrg#define ROP_Psa 0xC0 230706f2543Smrg#define ROP_SPDSnaoxn 0xC1 231706f2543Smrg#define ROP_SPDSonoxn 0xC2 232706f2543Smrg#define ROP_PSxn 0xC3 233706f2543Smrg#define ROP_SPDnoa 0xC4 234706f2543Smrg#define ROP_SPDSxoxn 0xC5 235706f2543Smrg#define ROP_SDPnax 0xC6 236706f2543Smrg#define ROP_PSDPoaxn 0xC7 237706f2543Smrg#define ROP_SDPoa 0xC8 238706f2543Smrg#define ROP_SPDoxn 0xC9 239706f2543Smrg#define ROP_DPSDxax 0xCA 240706f2543Smrg#define ROP_SPDSaoxn 0xCB 241706f2543Smrg#define ROP_S 0xCC 242706f2543Smrg#define ROP_SDPono 0xCD 243706f2543Smrg#define ROP_SDPnao 0xCE 244706f2543Smrg#define ROP_SPno 0xCF 245706f2543Smrg#define ROP_PSDnoa 0xD0 246706f2543Smrg#define ROP_PSDPxoxn 0xD1 247706f2543Smrg#define ROP_PDSnax 0xD2 248706f2543Smrg#define ROP_SPDSoaxn 0xD3 249706f2543Smrg#define ROP_SSPxPDxax 0xD4 250706f2543Smrg#define ROP_DPSanan 0xD5 251706f2543Smrg#define ROP_PSDPSaoxx 0xD6 252706f2543Smrg#define ROP_DPSxan 0xD7 253706f2543Smrg#define ROP_PDSPxax 0xD8 254706f2543Smrg#define ROP_SDPSaoxn 0xD9 255706f2543Smrg#define ROP_DPSDanax 0xDA 256706f2543Smrg#define ROP_SPxDSxan 0xDB 257706f2543Smrg#define ROP_SPDnao 0xDC 258706f2543Smrg#define ROP_SDno 0xDD 259706f2543Smrg#define ROP_SDPxo 0xDE 260706f2543Smrg#define ROP_SDPano 0xDF 261706f2543Smrg#define ROP_PDSoa 0xE0 262706f2543Smrg#define ROP_PDSoxn 0xE1 263706f2543Smrg#define ROP_DSPDxax 0xE2 264706f2543Smrg#define ROP_PSDPaoxn 0xE3 265706f2543Smrg#define ROP_SDPSxax 0xE4 266706f2543Smrg#define ROP_PDSPaoxn 0xE5 267706f2543Smrg#define ROP_SDPSanax 0xE6 268706f2543Smrg#define ROP_SPxPDxan 0xE7 269706f2543Smrg#define ROP_SSPxDSxax 0xE8 270706f2543Smrg#define ROP_DSPDSanaxxn 0xE9 271706f2543Smrg#define ROP_DPSao 0xEA 272706f2543Smrg#define ROP_DPSxno 0xEB 273706f2543Smrg#define ROP_SDPao 0xEC 274706f2543Smrg#define ROP_SDPxno 0xED 275706f2543Smrg#define ROP_DSo 0xEE 276706f2543Smrg#define ROP_SDPnoo 0xEF 277706f2543Smrg#define ROP_P 0xF0 278706f2543Smrg#define ROP_PDSono 0xF1 279706f2543Smrg#define ROP_PDSnao 0xF2 280706f2543Smrg#define ROP_PSno 0xF3 281706f2543Smrg#define ROP_PSDnao 0xF4 282706f2543Smrg#define ROP_PDno 0xF5 283706f2543Smrg#define ROP_PDSxo 0xF6 284706f2543Smrg#define ROP_PDSano 0xF7 285706f2543Smrg#define ROP_PDSao 0xF8 286706f2543Smrg#define ROP_PDSxno 0xF9 287706f2543Smrg#define ROP_DPo 0xFA 288706f2543Smrg#define ROP_DPSnoo 0xFB 289706f2543Smrg#define ROP_PSo 0xFC 290706f2543Smrg#define ROP_PSDnoo 0xFD 291706f2543Smrg#define ROP_DPSoo 0xFE 292706f2543Smrg#define ROP_1 0xFF 293706f2543Smrg 294706f2543Smrg#define NO_SRC_ROP(rop) \ 295706f2543Smrg ((rop == GXnoop) || (rop == GXset) || (rop == GXclear) || (rop == GXinvert)) 296706f2543Smrg 297706f2543Smrgextern _X_EXPORT int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop); 298706f2543Smrgextern _X_EXPORT int XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop); 299706f2543Smrg 300706f2543Smrg/* XXX These four should be static, but it breaks the 6.7.0 ABI. */ 301706f2543Smrgextern _X_EXPORT int XAACopyROP[16]; 302706f2543Smrgextern _X_EXPORT int XAACopyROP_PM[16]; 303706f2543Smrgextern _X_EXPORT int XAAPatternROP[16]; 304706f2543Smrgextern _X_EXPORT int XAAPatternROP_PM[16]; 305706f2543Smrg 306706f2543Smrgextern _X_EXPORT int XAAGetCopyROP(int i); 307706f2543Smrgextern _X_EXPORT int XAAGetCopyROP_PM(int i); 308706f2543Smrgextern _X_EXPORT int XAAGetPatternROP(int i); 309706f2543Smrgextern _X_EXPORT int XAAGetPatternROP_PM(int i); 310706f2543Smrg 311706f2543Smrg#endif /* _XAAROP_H */ 312