| Index: ddraw/ShaderGen2D.cpp |
| — | — | @@ -118,7 +118,7 @@ |
| 119 | 119 | const DWORD supported_rops[8] = {
|
| 120 | 120 | 0xFFFFFFFF,
|
| 121 | 121 | 0xFFFFFFFF,
|
| 122 | | - 0x04200010,
|
| | 122 | + 0xFFFFFFFF,
|
| 123 | 123 | 0x00000040,
|
| 124 | 124 | 0x00000100,
|
| 125 | 125 | 0x08000400,
|
| — | — | @@ -212,101 +212,101 @@ |
| 213 | 213 | // ROP Operations
|
| 214 | 214 | static const char *op_ROP[256] = {
|
| 215 | 215 | "pixel = ivec4(0);\n",//00 BLACKNESS
|
| 216 | | -"pixel = (dest | (pattern | pixel)) ^ colorsizedest;",
|
| 217 | | -"pixel = dest & ((pattern | pixel) ^ colorsizedest);",
|
| 218 | | -"pixel = (pattern | pixel) ^ colorsizedest;",
|
| 219 | | -"pixel = pixel & ((dest | pattern) ^ colorsizedest);",
|
| 220 | | -"pixel = (dest | pattern) ^ colorsizedest;",
|
| 221 | | -"pixel = (pattern | ((dest ^ pixel) ^ colorsizedest)) ^ colorsizedest;",
|
| 222 | | -"pixel = (pattern | (dest & pixel)) ^ colorsizedest;",
|
| 223 | | -"pixel = pixel & dest & (pattern ^ colorsizedest);",
|
| 224 | | -"pixel = (pattern | (dest ^ pixel)) ^ colorsizedest;",
|
| 225 | | -"pixel = dest & (pattern ^ colorsizedest);",
|
| 226 | | -"pixel = (pattern | (pixel & (dest ^ colorsizedest))) ^ colorsizedest;",
|
| 227 | | -"pixel = pixel & (pattern ^ colorsizedest);",
|
| 228 | | -"pixel = (pattern | (dest & (pixel ^ colorsizedest))) ^ colorsizedest;",
|
| 229 | | -"pixel = (pattern | ((dest | pixel) ^ colorsizedest)) ^ colorsizedest;",
|
| | 216 | +"pixel = (dest | (pattern | pixel)) ^ colorsizedest;\n",
|
| | 217 | +"pixel = dest & ((pattern | pixel) ^ colorsizedest);\n",
|
| | 218 | +"pixel = (pattern | pixel) ^ colorsizedest;\n",
|
| | 219 | +"pixel = pixel & ((dest | pattern) ^ colorsizedest);\n",
|
| | 220 | +"pixel = (dest | pattern) ^ colorsizedest;\n",
|
| | 221 | +"pixel = (pattern | ((dest ^ pixel) ^ colorsizedest)) ^ colorsizedest;\n",
|
| | 222 | +"pixel = (pattern | (dest & pixel)) ^ colorsizedest;\n",
|
| | 223 | +"pixel = pixel & dest & (pattern ^ colorsizedest);\n",
|
| | 224 | +"pixel = (pattern | (dest ^ pixel)) ^ colorsizedest;\n",
|
| | 225 | +"pixel = dest & (pattern ^ colorsizedest);\n",
|
| | 226 | +"pixel = (pattern | (pixel & (dest ^ colorsizedest))) ^ colorsizedest;\n",
|
| | 227 | +"pixel = pixel & (pattern ^ colorsizedest);\n",
|
| | 228 | +"pixel = (pattern | (dest & (pixel ^ colorsizedest))) ^ colorsizedest;\n",
|
| | 229 | +"pixel = (pattern | ((dest | pixel) ^ colorsizedest)) ^ colorsizedest;\n",
|
| 230 | 230 | "pixel = pattern ^ colorsizedest;\n",//0F
|
| 231 | | -"pixel = pattern & ((pixel | dest) ^ colorsizedest);",//10
|
| | 231 | +"pixel = pattern & ((pixel | dest) ^ colorsizedest);\n",//10
|
| 232 | 232 | "pixel = (dest | pixel) ^ colorsizedest;\n",//11 NOTSRCERASE
|
| 233 | | -"pixel = (pixel | ((dest ^ pattern) ^ colorsizedest)) ^ colorsizedest;",
|
| 234 | | -"pixel = (pixel | (dest & pattern)) ^ colorsizedest;",
|
| 235 | | -"pixel = (dest | ((pattern ^ pixel) ^ colorsizedest)) ^ colorsizedest;",
|
| 236 | | -"pixel = (dest | (pattern & pixel)) ^ colorsizedest;",
|
| 237 | | -"pixel = pattern ^ pixel ^ (dest & ((pattern & pixel) ^ colorsizedest));",
|
| 238 | | -"pixel = (pixel ^ colorsizedest) ^ ((pixel ^ pattern) & (pixel ^ dest));",
|
| 239 | | -"pixel = (pixel ^ pattern) & (dest ^ pattern);",
|
| 240 | | -"pixel = (pixel ^ colorsizedest) ^ (dest & ((pattern & pixel) ^ colorsizedest));",
|
| 241 | | -"pixel = pattern ^ (dest | (pixel & pattern));",
|
| 242 | | -"pixel = (pixel ^ colorsizedest) ^ (dest & (pattern ^ pixel));",
|
| 243 | | -"pixel = pattern ^ (pixel | (dest & pattern));",
|
| 244 | | -"pixel = (dest ^ colorsizedest) ^ (pixel & (dest ^ pattern));",
|
| 245 | | -"pixel = pattern ^ (dest | pixel);",
|
| 246 | | -"pixel = (pattern & (dest | pixel)) ^ colorsizedest;",//1F
|
| 247 | | -"pixel = dest & (pattern & (pixel ^ colorsizedest));",//20
|
| 248 | | -"pixel = (pixel | (dest ^ pattern)) ^ colorsizedest;",
|
| 249 | | -"pixel = (pixel ^ colorsizedest) & dest;",
|
| 250 | | -"pixel = (pixel | (pattern & (dest ^ colorsizedest))) ^ colorsizedest;",
|
| 251 | | -"pixel = (pixel ^ pattern) & (pixel ^ dest);",
|
| 252 | | -"pixel = (pattern ^ colorsizedest) ^ (dest & ((pixel & pattern) ^ colorsizedest));",
|
| 253 | | -"pixel = pixel ^ (dest | (pixel & pattern));",
|
| 254 | | -"pixel = pixel ^ (dest | ((pattern ^ pixel) ^ colorsizedest));",
|
| 255 | | -"pixel = dest & (pattern ^ pixel);",
|
| 256 | | -"pixel = (pattern ^ colorsizedest) ^ pixel ^ (dest | (pattern & pixel));",
|
| 257 | | -"pixel = dest & ((pattern & pixel) ^ colorsizedest);",
|
| 258 | | -"pixel = (pixel ^ colorsizedest) ^ ((pattern ^ pixel) & (pattern ^ dest));",
|
| 259 | | -"pixel = pixel ^ (pattern & (pixel | dest));",
|
| 260 | | -"pixel = pattern ^ (pixel | (dest ^ colorsizedest));",
|
| 261 | | -"pixel = pattern ^ (pixel | (dest ^ pattern));",
|
| 262 | | -"pixel = (pattern & (pixel | (dest ^ pattern)))^ colorsizedest;",//2F
|
| 263 | | -"pixel = pattern & (pixel ^ colorsizedest);",//30
|
| 264 | | -"pixel = (pixel | (dest & (pattern ^ colorsizedest))) ^ colorsizedest;",
|
| 265 | | -"pixel = pixel ^ (dest | pattern | pixel);",
|
| | 233 | +"pixel = (pixel | ((dest ^ pattern) ^ colorsizedest)) ^ colorsizedest;\n",
|
| | 234 | +"pixel = (pixel | (dest & pattern)) ^ colorsizedest;\n",
|
| | 235 | +"pixel = (dest | ((pattern ^ pixel) ^ colorsizedest)) ^ colorsizedest;\n",
|
| | 236 | +"pixel = (dest | (pattern & pixel)) ^ colorsizedest;\n",
|
| | 237 | +"pixel = pattern ^ pixel ^ (dest & ((pattern & pixel) ^ colorsizedest));\n",
|
| | 238 | +"pixel = (pixel ^ colorsizedest) ^ ((pixel ^ pattern) & (pixel ^ dest));\n",
|
| | 239 | +"pixel = (pixel ^ pattern) & (dest ^ pattern);\n",
|
| | 240 | +"pixel = (pixel ^ colorsizedest) ^ (dest & ((pattern & pixel) ^ colorsizedest));\n",
|
| | 241 | +"pixel = pattern ^ (dest | (pixel & pattern));\n",
|
| | 242 | +"pixel = (pixel ^ colorsizedest) ^ (dest & (pattern ^ pixel));\n",
|
| | 243 | +"pixel = pattern ^ (pixel | (dest & pattern));\n",
|
| | 244 | +"pixel = (dest ^ colorsizedest) ^ (pixel & (dest ^ pattern));\n",
|
| | 245 | +"pixel = pattern ^ (dest | pixel);\n",
|
| | 246 | +"pixel = (pattern & (dest | pixel)) ^ colorsizedest;\n",//1F
|
| | 247 | +"pixel = dest & (pattern & (pixel ^ colorsizedest));\n",//20
|
| | 248 | +"pixel = (pixel | (dest ^ pattern)) ^ colorsizedest;\n",
|
| | 249 | +"pixel = (pixel ^ colorsizedest) & dest;\n",
|
| | 250 | +"pixel = (pixel | (pattern & (dest ^ colorsizedest))) ^ colorsizedest;\n",
|
| | 251 | +"pixel = (pixel ^ pattern) & (pixel ^ dest);\n",
|
| | 252 | +"pixel = (pattern ^ colorsizedest) ^ (dest & ((pixel & pattern) ^ colorsizedest));\n",
|
| | 253 | +"pixel = pixel ^ (dest | (pixel & pattern));\n",
|
| | 254 | +"pixel = pixel ^ (dest | ((pattern ^ pixel) ^ colorsizedest));\n",
|
| | 255 | +"pixel = dest & (pattern ^ pixel);\n",
|
| | 256 | +"pixel = (pattern ^ colorsizedest) ^ pixel ^ (dest | (pattern & pixel));\n",
|
| | 257 | +"pixel = dest & ((pattern & pixel) ^ colorsizedest);\n",
|
| | 258 | +"pixel = (pixel ^ colorsizedest) ^ ((pattern ^ pixel) & (pattern ^ dest));\n",
|
| | 259 | +"pixel = pixel ^ (pattern & (pixel | dest));\n",
|
| | 260 | +"pixel = pattern ^ (pixel | (dest ^ colorsizedest));\n",
|
| | 261 | +"pixel = pattern ^ (pixel | (dest ^ pattern));\n",
|
| | 262 | +"pixel = (pattern & (pixel | (dest ^ pattern)))^ colorsizedest;\n",//2F
|
| | 263 | +"pixel = pattern & (pixel ^ colorsizedest);\n",//30
|
| | 264 | +"pixel = (pixel | (dest & (pattern ^ colorsizedest))) ^ colorsizedest;\n",
|
| | 265 | +"pixel = pixel ^ (dest | pattern | pixel);\n",
|
| 266 | 266 | "pixel = pixel ^ colorsizedest;\n",//33 NOTSRCCOPY
|
| 267 | | -"pixel = pixel ^ (pattern | (dest & pixel));",
|
| 268 | | -"pixel = pixel ^ (pattern | ((dest ^ pixel) ^ colorsizedest));",
|
| 269 | | -"pixel = pixel ^ (dest | pattern);",
|
| 270 | | -"pixel = (pixel & (dest | pattern)) ^ colorsizedest;",
|
| 271 | | -"pixel = pattern ^ (pixel & (dest | pattern));",
|
| 272 | | -"pixel = pixel ^ (pattern | (dest ^ colorsizedest));",
|
| 273 | | -"pixel = pixel ^ (pattern | (dest ^ pixel));",
|
| 274 | | -"pixel = (pixel & (pattern | (dest ^ colorsizedest))) ^ colorsizedest;",
|
| 275 | | -"pixel = pattern ^ pixel;",
|
| 276 | | -"pixel = pixel ^ (pattern | ((dest | pixel) ^ colorsizedest));",
|
| 277 | | -"pixel = pixel ^ (pattern | (dest & (pixel ^ colorsizedest)));",
|
| 278 | | -"pixel = (pattern & pixel) ^ colorsizedest;",//3F
|
| 279 | | -"",//40
|
| 280 | | -"",
|
| 281 | | -"",
|
| 282 | | -"",
|
| | 267 | +"pixel = pixel ^ (pattern | (dest & pixel));\n",
|
| | 268 | +"pixel = pixel ^ (pattern | ((dest ^ pixel) ^ colorsizedest));\n",
|
| | 269 | +"pixel = pixel ^ (dest | pattern);\n",
|
| | 270 | +"pixel = (pixel & (dest | pattern)) ^ colorsizedest;\n",
|
| | 271 | +"pixel = pattern ^ (pixel & (dest | pattern));\n",
|
| | 272 | +"pixel = pixel ^ (pattern | (dest ^ colorsizedest));\n",
|
| | 273 | +"pixel = pixel ^ (pattern | (dest ^ pixel));\n",
|
| | 274 | +"pixel = (pixel & (pattern | (dest ^ colorsizedest))) ^ colorsizedest;\n",
|
| | 275 | +"pixel = pattern ^ pixel;\n",
|
| | 276 | +"pixel = pixel ^ (pattern | ((dest | pixel) ^ colorsizedest));\n",
|
| | 277 | +"pixel = pixel ^ (pattern | (dest & (pixel ^ colorsizedest)));\n",
|
| | 278 | +"pixel = (pattern & pixel) ^ colorsizedest;\n",//3F
|
| | 279 | +"pixel = pattern & pixel & (dest ^ colorsizedest);\n",//40
|
| | 280 | +"pixel = (dest | (pattern ^ pixel)) ^ colorsizedest;\n",
|
| | 281 | +"pixel = (pixel ^ dest) & (pattern ^ dest);\n",
|
| | 282 | +"pixel = (pixel ^ colorsizedest) ^ (pattern & ((dest & pixel) ^ colorsizedest));\n",
|
| 283 | 283 | "pixel = pixel & (dest ^ colorsizedest);\n",//44 SRCERASE
|
| 284 | | -"",
|
| 285 | | -"",
|
| 286 | | -"",
|
| 287 | | -"",
|
| 288 | | -"",
|
| 289 | | -"",
|
| 290 | | -"",
|
| 291 | | -"",
|
| 292 | | -"",
|
| 293 | | -"",
|
| 294 | | -"",//4F
|
| 295 | | -"",//50
|
| 296 | | -"",
|
| 297 | | -"",
|
| 298 | | -"",
|
| 299 | | -"",
|
| | 284 | +"pixel = (dest | (pattern & (pixel ^ colorsizedest))) ^ colorsizedest;\n",
|
| | 285 | +"pixel = dest ^ (pixel | (pattern & dest));\n",
|
| | 286 | +"pixel = (pattern ^ colorsizedest) ^ (pixel & (dest ^ pattern));\n",
|
| | 287 | +"pixel = pixel & (pattern ^ dest);\n",
|
| | 288 | +"pixel = (pattern ^ colorsizedest) ^ dest ^ (pixel | (pattern & dest));\n",
|
| | 289 | +"pixel = dest ^ (pattern & (pixel | dest));\n",
|
| | 290 | +"pixel = pattern ^ (dest | (pixel ^ colorsizedest));\n",
|
| | 291 | +"pixel = pixel & ((dest & pattern) ^ colorsizedest);\n",
|
| | 292 | +"pixel = (pixel ^ colorsizedest) ^ ((pixel ^ pattern) | (pixel ^ dest));\n",
|
| | 293 | +"pixel = pattern ^ (dest | (pixel ^ pattern));\n",
|
| | 294 | +"pixel = (pattern & (dest | (pixel ^ colorsizedest))) ^ colorsizedest;\n",//4F
|
| | 295 | +"pixel = pattern & (dest ^ colorsizedest);\n",//50
|
| | 296 | +"pixel = (dest | (pixel & (pattern ^ colorsizedest))) ^ colorsizedest;\n",
|
| | 297 | +"pixel = dest ^ (pattern | (pixel & dest));\n",
|
| | 298 | +"pixel = (pixel ^ colorsizedest) ^ (pattern & (dest ^ pixel));\n",
|
| | 299 | +"pixel = (dest | ((pattern | pixel) ^ colorsizedest)) ^ colorsizedest;\n",
|
| 300 | 300 | "pixel = dest ^ colorsizedest;\n",//55 DSTINVERT
|
| 301 | | -"",
|
| 302 | | -"",
|
| 303 | | -"",
|
| 304 | | -"",
|
| | 301 | +"pixel = dest ^ (pattern | pixel);\n",
|
| | 302 | +"pixel = (dest & (pattern | pixel)) ^ colorsizedest;\n",
|
| | 303 | +"pixel = pattern ^ (dest & (pattern | pixel));\n",
|
| | 304 | +"pixel = dest ^ (pattern | (pixel ^ colorsizedest));\n",
|
| 305 | 305 | "pixel = dest ^ pattern;\n",//5A PATINVERT
|
| 306 | | -"",
|
| 307 | | -"",
|
| 308 | | -"",
|
| 309 | | -"",
|
| 310 | | -"",//5F
|
| | 306 | +"pixel = dest ^ (pattern | ((pixel | dest) ^ colorsizedest));\n",
|
| | 307 | +"pixel = dest ^ (pattern | (pixel ^ dest));\n",
|
| | 308 | +"pixel = (dest & (pattern | (pixel ^ colorsizedest))) ^ colorsizedest;\n",
|
| | 309 | +"pixel = dest ^ (pattern | (pixel & (dest ^ colorsizedest)));\n",
|
| | 310 | +"pixel = (dest & pattern) ^ colorsizedest;\n",//5F
|
| 311 | 311 | "",//60
|
| 312 | 312 | "",
|
| 313 | 313 | "",
|