pixel-test.c revision 14b11b2b
1/* 2 * Copyright © 2013 Soeren Sandmann 3 * Copyright © 2013 Red Hat, Inc. 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * and/or sell copies of the Software, and to permit persons to whom the 10 * Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the next 13 * paragraph) shall be included in all copies or substantial portions of the 14 * Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * DEALINGS IN THE SOFTWARE. 23 */ 24#include <stdio.h> 25#include <stdlib.h> /* abort() */ 26#include <math.h> 27#include <time.h> 28#include "utils.h" 29 30typedef struct pixel_combination_t pixel_combination_t; 31struct pixel_combination_t 32{ 33 pixman_op_t op; 34 pixman_format_code_t src_format; 35 uint32_t src_pixel; 36 pixman_format_code_t mask_format; 37 uint32_t mask_pixel; 38 pixman_format_code_t dest_format; 39 uint32_t dest_pixel; 40}; 41 42static const pixel_combination_t regressions[] = 43{ 44 { PIXMAN_OP_DISJOINT_ATOP, 45 PIXMAN_a8r8g8b8, 0x1ffc3ff, 46 PIXMAN_a8, 0x7b, 47 PIXMAN_a8r8g8b8, 0xff00c300, 48 }, 49 { PIXMAN_OP_SOFT_LIGHT, 50 PIXMAN_a2r2g2b2, 0xb5, 51 PIXMAN_a4r4g4b4, 0xe3ff, 52 PIXMAN_a2r2g2b2, 0x2e 53 }, 54 { PIXMAN_OP_SOFT_LIGHT, 55 PIXMAN_a2r2g2b2, 0xa6, 56 PIXMAN_a8r8g8b8, 0x2b00ff00, 57 PIXMAN_a4r4g4b4, 0x7e 58 }, 59 { PIXMAN_OP_SOFT_LIGHT, 60 PIXMAN_a8r8g8b8, 0x27000013, 61 PIXMAN_a2r2g2b2, 0x80, 62 PIXMAN_a4r4g4b4, 0x9d 63 }, 64 { PIXMAN_OP_SOFT_LIGHT, 65 PIXMAN_a4r4g4b4, 0xe6f7, 66 PIXMAN_a2r2g2b2, 0xad, 67 PIXMAN_a4r4g4b4, 0x71 68 }, 69 { PIXMAN_OP_SOFT_LIGHT, 70 PIXMAN_a8r8g8b8, 0xff4f70ff, 71 PIXMAN_r5g6b5, 0xb828, 72 PIXMAN_a8r8g8b8, 0xcac400 73 }, 74 { PIXMAN_OP_SOFT_LIGHT, 75 PIXMAN_a2r2g2b2, 0xa9, 76 PIXMAN_a4r4g4b4, 0x41c2, 77 PIXMAN_a8r8g8b8, 0xffff2b 78 }, 79 { PIXMAN_OP_SOFT_LIGHT, 80 PIXMAN_a2r2g2b2, 0x89, 81 PIXMAN_a8r8g8b8, 0x977cff61, 82 PIXMAN_a4r4g4b4, 0x36 83 }, 84 { PIXMAN_OP_SOFT_LIGHT, 85 PIXMAN_a2r2g2b2, 0x81, 86 PIXMAN_r5g6b5, 0x6f9e, 87 PIXMAN_a4r4g4b4, 0x1eb 88 }, 89 { PIXMAN_OP_SOFT_LIGHT, 90 PIXMAN_a2r2g2b2, 0xb5, 91 PIXMAN_a4r4g4b4, 0xe247, 92 PIXMAN_a8r8g8b8, 0xffbaff 93 }, 94 { PIXMAN_OP_SOFT_LIGHT, 95 PIXMAN_a2r2g2b2, 0x97, 96 PIXMAN_a2r2g2b2, 0x9d, 97 PIXMAN_a2r2g2b2, 0x21 98 }, 99 { PIXMAN_OP_SOFT_LIGHT, 100 PIXMAN_a2r2g2b2, 0xb4, 101 PIXMAN_a2r2g2b2, 0x90, 102 PIXMAN_a8r8g8b8, 0xc0fd5c 103 }, 104 { PIXMAN_OP_SOFT_LIGHT, 105 PIXMAN_a8r8g8b8, 0xdf00ff70, 106 PIXMAN_a8r8g8b8, 0x2597ff27, 107 PIXMAN_a4r4g4b4, 0xf3 108 }, 109 { PIXMAN_OP_SOFT_LIGHT, 110 PIXMAN_a2r2g2b2, 0xb7, 111 PIXMAN_r3g3b2, 0xb1, 112 PIXMAN_a8r8g8b8, 0x9f4bcc 113 }, 114 { PIXMAN_OP_SOFT_LIGHT, 115 PIXMAN_a4r4g4b4, 0xf39e, 116 PIXMAN_r5g6b5, 0x34, 117 PIXMAN_a8r8g8b8, 0xf6ae00 118 }, 119 { PIXMAN_OP_SOFT_LIGHT, 120 PIXMAN_a8r8g8b8, 0x3aff1dff, 121 PIXMAN_a2r2g2b2, 0x64, 122 PIXMAN_a8r8g8b8, 0x94ffb4 123 }, 124 { PIXMAN_OP_SOFT_LIGHT, 125 PIXMAN_a2r2g2b2, 0xa4, 126 PIXMAN_a2r2g2b2, 0x8a, 127 PIXMAN_a4r4g4b4, 0xff 128 }, 129 { PIXMAN_OP_SOFT_LIGHT, 130 PIXMAN_a2r2g2b2, 0xa5, 131 PIXMAN_a4r4g4b4, 0x1a, 132 PIXMAN_a4r4g4b4, 0xff 133 }, 134 { PIXMAN_OP_SOFT_LIGHT, 135 PIXMAN_a2r2g2b2, 0xb4, 136 PIXMAN_a2r2g2b2, 0xca, 137 PIXMAN_a4r4g4b4, 0x7b 138 }, 139 { PIXMAN_OP_SOFT_LIGHT, 140 PIXMAN_a2r2g2b2, 0xbd, 141 PIXMAN_a4r4g4b4, 0xff37, 142 PIXMAN_a4r4g4b4, 0xff 143 }, 144 { PIXMAN_OP_SOFT_LIGHT, 145 PIXMAN_a2r2g2b2, 0x96, 146 PIXMAN_a2r2g2b2, 0xbb, 147 PIXMAN_a8r8g8b8, 0x96ffff 148 }, 149 { PIXMAN_OP_SOFT_LIGHT, 150 PIXMAN_a2r2g2b2, 0x89, 151 PIXMAN_r3g3b2, 0x92, 152 PIXMAN_a4r4g4b4, 0xa8c 153 }, 154 { PIXMAN_OP_SOFT_LIGHT, 155 PIXMAN_a4r4g4b4, 0xa95b, 156 PIXMAN_a2r2g2b2, 0x68, 157 PIXMAN_a8r8g8b8, 0x38ff 158 }, 159 { PIXMAN_OP_SOFT_LIGHT, 160 PIXMAN_a2r2g2b2, 0x90, 161 PIXMAN_a8r8g8b8, 0x53bd00ef, 162 PIXMAN_a8r8g8b8, 0xff0003 163 }, 164 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 165 PIXMAN_a8r8g8b8, 0x1f5ffff, 166 PIXMAN_r3g3b2, 0x22, 167 PIXMAN_r5g6b5, 0x2000 168 }, 169 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 170 PIXMAN_a8r8g8b8, 0x10000b6, 171 PIXMAN_a8r8g8b8, 0x9645, 172 PIXMAN_r5g6b5, 0x6 173 }, 174 { PIXMAN_OP_SATURATE, 175 PIXMAN_a8r8g8b8, 0x172ff00, 176 PIXMAN_a4r4g4b4, 0xff61, 177 PIXMAN_r3g3b2, 0xc 178 }, 179 { PIXMAN_OP_DISJOINT_ATOP, 180 PIXMAN_a8r8g8b8, 0x281ffc8, 181 PIXMAN_r5g6b5, 0x39b8, 182 PIXMAN_r5g6b5, 0x13 183 }, 184 { PIXMAN_OP_CONJOINT_IN, 185 PIXMAN_a8r8g8b8, 0x100a2ff, 186 PIXMAN_a4r4g4b4, 0x6500, 187 PIXMAN_a2r2g2b2, 0x5 188 }, 189 { PIXMAN_OP_CONJOINT_IN, 190 PIXMAN_a8r8g8b8, 0x1ffff51, 191 PIXMAN_r5g6b5, 0x52ff, 192 PIXMAN_a2r2g2b2, 0x14 193 }, 194 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 195 PIXMAN_a8r8g8b8, 0x150d500, 196 PIXMAN_a8r8g8b8, 0x6200b7ff, 197 PIXMAN_a8r8g8b8, 0x1f5200 198 }, 199 { PIXMAN_OP_DISJOINT_OUT, 200 PIXMAN_a8r8g8b8, 0x2a9a700, 201 PIXMAN_a8r8g8b8, 0xf7003400, 202 PIXMAN_a8r8g8b8, 0x2200 203 }, 204 { PIXMAN_OP_DISJOINT_IN, 205 PIXMAN_a8r8g8b8, 0x200ffff, 206 PIXMAN_r5g6b5, 0x81ff, 207 PIXMAN_r5g6b5, 0x1f 208 }, 209 { PIXMAN_OP_DISJOINT_OUT, 210 PIXMAN_a8r8g8b8, 0x2ff00ff, 211 PIXMAN_r5g6b5, 0x3f00, 212 PIXMAN_r3g3b2, 0x20 213 }, 214 { PIXMAN_OP_DISJOINT_OUT, 215 PIXMAN_a8r8g8b8, 0x3ff1aa4, 216 PIXMAN_a4r4g4b4, 0x2200, 217 PIXMAN_r5g6b5, 0x2000 218 }, 219 { PIXMAN_OP_DISJOINT_XOR, 220 PIXMAN_a8r8g8b8, 0x280ff2c, 221 PIXMAN_r3g3b2, 0xc6, 222 PIXMAN_a8r8g8b8, 0xfdfd44fe 223 }, 224 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 225 PIXMAN_a8r8g8b8, 0x13aff1d, 226 PIXMAN_a2r2g2b2, 0x4b, 227 PIXMAN_r5g6b5, 0x12a1 228 }, 229 { PIXMAN_OP_DISJOINT_XOR, 230 PIXMAN_a8r8g8b8, 0x2ffff88, 231 PIXMAN_a8r8g8b8, 0xff3a49, 232 PIXMAN_r5g6b5, 0xf7df 233 }, 234 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 235 PIXMAN_a8r8g8b8, 0x1009700, 236 PIXMAN_a2r2g2b2, 0x56, 237 PIXMAN_a8r8g8b8, 0x0 238 }, 239 { PIXMAN_OP_DISJOINT_OUT, 240 PIXMAN_a8r8g8b8, 0x1aacbff, 241 PIXMAN_a4r4g4b4, 0x84, 242 PIXMAN_r3g3b2, 0x1 243 }, 244 { PIXMAN_OP_DISJOINT_XOR, 245 PIXMAN_a8r8g8b8, 0x100b1ff, 246 PIXMAN_a2r2g2b2, 0xf5, 247 PIXMAN_a8r8g8b8, 0xfea89cff 248 }, 249 { PIXMAN_OP_CONJOINT_XOR, 250 PIXMAN_a8r8g8b8, 0x1ff0000, 251 PIXMAN_r5g6b5, 0x6800, 252 PIXMAN_a4r4g4b4, 0x0 253 }, 254 { PIXMAN_OP_CONJOINT_XOR, 255 PIXMAN_a8r8g8b8, 0x10064ff, 256 PIXMAN_r3g3b2, 0x61, 257 PIXMAN_a4r4g4b4, 0x0 258 }, 259 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 260 PIXMAN_a8r8g8b8, 0x1bb00ff, 261 PIXMAN_r5g6b5, 0x76b5, 262 PIXMAN_a4r4g4b4, 0x500 263 }, 264 { PIXMAN_OP_DISJOINT_OUT, 265 PIXMAN_a8r8g8b8, 0x2ffff41, 266 PIXMAN_r5g6b5, 0x7100, 267 PIXMAN_a4r4g4b4, 0x20 268 }, 269 { PIXMAN_OP_DISJOINT_XOR, 270 PIXMAN_a8r8g8b8, 0x1ff1231, 271 PIXMAN_a8r8g8b8, 0x381089, 272 PIXMAN_r5g6b5, 0x38a5 273 }, 274 { PIXMAN_OP_CONJOINT_IN, 275 PIXMAN_a8r8g8b8, 0x16e5c49, 276 PIXMAN_a8r8g8b8, 0x4dfa3694, 277 PIXMAN_a8r8g8b8, 0x211c16 278 }, 279 { PIXMAN_OP_DISJOINT_OUT, 280 PIXMAN_a8r8g8b8, 0x134ff62, 281 PIXMAN_a2r2g2b2, 0x14, 282 PIXMAN_r3g3b2, 0x8 283 }, 284 { PIXMAN_OP_CONJOINT_IN, 285 PIXMAN_a8r8g8b8, 0x300ffeb, 286 PIXMAN_r3g3b2, 0xc7, 287 PIXMAN_a4r4g4b4, 0x20 288 }, 289 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 290 PIXMAN_a8r8g8b8, 0x3ff8bff, 291 PIXMAN_r3g3b2, 0x3e, 292 PIXMAN_a8r8g8b8, 0x3008baa 293 }, 294 { PIXMAN_OP_DISJOINT_OUT, 295 PIXMAN_a8r8g8b8, 0x1ff00ff, 296 PIXMAN_a4r4g4b4, 0x3466, 297 PIXMAN_a4r4g4b4, 0x406 298 }, 299 { PIXMAN_OP_DISJOINT_IN, 300 PIXMAN_a8r8g8b8, 0x1ddc027, 301 PIXMAN_a4r4g4b4, 0x7d00, 302 PIXMAN_r5g6b5, 0x0 303 }, 304 { PIXMAN_OP_CONJOINT_IN, 305 PIXMAN_a8r8g8b8, 0x2ffff00, 306 PIXMAN_a8r8g8b8, 0xc92cfb52, 307 PIXMAN_a4r4g4b4, 0x200 308 }, 309 { PIXMAN_OP_CONJOINT_XOR, 310 PIXMAN_a8r8g8b8, 0x1ff116a, 311 PIXMAN_a4r4g4b4, 0x6000, 312 PIXMAN_a4r4g4b4, 0x0 313 }, 314 { PIXMAN_OP_DISJOINT_IN, 315 PIXMAN_a8r8g8b8, 0x1ffffff, 316 PIXMAN_r5g6b5, 0x2f95, 317 PIXMAN_r5g6b5, 0x795 318 }, 319 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 320 PIXMAN_a8r8g8b8, 0x2ffff00, 321 PIXMAN_a4r4g4b4, 0x354a, 322 PIXMAN_r5g6b5, 0x3180 323 }, 324 { PIXMAN_OP_SATURATE, 325 PIXMAN_a8r8g8b8, 0x1d7ff00, 326 PIXMAN_a4r4g4b4, 0xd6ff, 327 PIXMAN_a8r8g8b8, 0xffff0700 328 }, 329 { PIXMAN_OP_DISJOINT_XOR, 330 PIXMAN_a8r8g8b8, 0x1bc5db7, 331 PIXMAN_r5g6b5, 0x944f, 332 PIXMAN_a4r4g4b4, 0xff05 333 }, 334 { PIXMAN_OP_SATURATE, 335 PIXMAN_a8r8g8b8, 0x185ffd9, 336 PIXMAN_a2r2g2b2, 0x9c, 337 PIXMAN_r5g6b5, 0x3c07 338 }, 339 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 340 PIXMAN_a8r8g8b8, 0x1fa7f61, 341 PIXMAN_a8r8g8b8, 0xff31ff00, 342 PIXMAN_r3g3b2, 0xd2 343 }, 344 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 345 PIXMAN_a8r8g8b8, 0x1c4ff00, 346 PIXMAN_r3g3b2, 0xb, 347 PIXMAN_a4r4g4b4, 0x0 348 }, 349 { PIXMAN_OP_DISJOINT_OUT, 350 PIXMAN_a8r8g8b8, 0x2ff00ff, 351 PIXMAN_a8r8g8b8, 0x3f3caeda, 352 PIXMAN_r3g3b2, 0x20 353 }, 354 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 355 PIXMAN_a8r8g8b8, 0x100ff00, 356 PIXMAN_r5g6b5, 0xff, 357 PIXMAN_r5g6b5, 0xe0 358 }, 359 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 360 PIXMAN_a8r8g8b8, 0x1ff68ff, 361 PIXMAN_a4r4g4b4, 0x8046, 362 PIXMAN_r5g6b5, 0xec 363 }, 364 { PIXMAN_OP_DISJOINT_OUT, 365 PIXMAN_a8r8g8b8, 0x100ff28, 366 PIXMAN_a8r8g8b8, 0x4c00, 367 PIXMAN_r5g6b5, 0x260 368 }, 369 { PIXMAN_OP_CONJOINT_IN, 370 PIXMAN_a8r8g8b8, 0x1ffff00, 371 PIXMAN_a4r4g4b4, 0xd92a, 372 PIXMAN_a8r8g8b8, 0x2200 373 }, 374 { PIXMAN_OP_DISJOINT_IN, 375 PIXMAN_a8r8g8b8, 0x100289a, 376 PIXMAN_a8r8g8b8, 0x74ffb8ff, 377 PIXMAN_r5g6b5, 0x0 378 }, 379 { PIXMAN_OP_DISJOINT_XOR, 380 PIXMAN_a8r8g8b8, 0x1baff00, 381 PIXMAN_r5g6b5, 0x4e9d, 382 PIXMAN_r5g6b5, 0x3000 383 }, 384 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 385 PIXMAN_a8r8g8b8, 0x1fcffad, 386 PIXMAN_r5g6b5, 0x42d7, 387 PIXMAN_a8r8g8b8, 0x1c6ffe5 388 }, 389 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 390 PIXMAN_a8r8g8b8, 0x183ff00, 391 PIXMAN_r3g3b2, 0x7e, 392 PIXMAN_a4r4g4b4, 0xff 393 }, 394 { PIXMAN_OP_SATURATE, 395 PIXMAN_a8r8g8b8, 0x2ff0076, 396 PIXMAN_a8r8g8b8, 0x2a0000, 397 PIXMAN_r3g3b2, 0x20 398 }, 399 { PIXMAN_OP_CONJOINT_OUT, 400 PIXMAN_a8r8g8b8, 0x3d8bbff, 401 PIXMAN_r5g6b5, 0x6900, 402 PIXMAN_a8r8g8b8, 0x35b0000 403 }, 404 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 405 PIXMAN_a8r8g8b8, 0x14f00ff, 406 PIXMAN_r5g6b5, 0xd48, 407 PIXMAN_a4r4g4b4, 0x0 408 }, 409 { PIXMAN_OP_CONJOINT_IN, 410 PIXMAN_a8r8g8b8, 0x28c72df, 411 PIXMAN_a8r8g8b8, 0xff5cff31, 412 PIXMAN_a4r4g4b4, 0x2 413 }, 414 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 415 PIXMAN_a8r8g8b8, 0x2ffffff, 416 PIXMAN_a8r8g8b8, 0xffad8020, 417 PIXMAN_r5g6b5, 0x4 418 }, 419 { PIXMAN_OP_DISJOINT_ATOP, 420 PIXMAN_a8r8g8b8, 0x100ff00, 421 PIXMAN_a2r2g2b2, 0x76, 422 PIXMAN_r3g3b2, 0x0 423 }, 424 { PIXMAN_OP_CONJOINT_XOR, 425 PIXMAN_a8r8g8b8, 0x1005d00, 426 PIXMAN_r5g6b5, 0x7b04, 427 PIXMAN_a8r8g8b8, 0x1000000 428 }, 429 { PIXMAN_OP_CONJOINT_ATOP, 430 PIXMAN_a8r8g8b8, 0x3cdfc3e, 431 PIXMAN_a8r8g8b8, 0x69ec21d3, 432 PIXMAN_a4r4g4b4, 0x20 433 }, 434 { PIXMAN_OP_DISJOINT_ATOP, 435 PIXMAN_a8r8g8b8, 0x200ffff, 436 PIXMAN_r5g6b5, 0x30ff, 437 PIXMAN_r5g6b5, 0x60ff 438 }, 439 { PIXMAN_OP_DISJOINT_XOR, 440 PIXMAN_a8r8g8b8, 0x532fff4, 441 PIXMAN_r5g6b5, 0xcb, 442 PIXMAN_r5g6b5, 0xd9a1 443 }, 444 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 445 PIXMAN_a8r8g8b8, 0x1ffffff, 446 PIXMAN_r3g3b2, 0x5f, 447 PIXMAN_a2r2g2b2, 0x10 448 }, 449 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 450 PIXMAN_a8r8g8b8, 0x1ffffff, 451 PIXMAN_a8r8g8b8, 0xffd60052, 452 PIXMAN_r3g3b2, 0x1 453 }, 454 { PIXMAN_OP_DISJOINT_XOR, 455 PIXMAN_a8r8g8b8, 0x1ff6491, 456 PIXMAN_a8r8g8b8, 0x1e53ff00, 457 PIXMAN_r5g6b5, 0x1862 458 }, 459 { PIXMAN_OP_CONJOINT_IN, 460 PIXMAN_a8r8g8b8, 0x1ffff00, 461 PIXMAN_r3g3b2, 0xc7, 462 PIXMAN_a4r4g4b4, 0x20 463 }, 464 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 465 PIXMAN_a8r8g8b8, 0x29d0fff, 466 PIXMAN_a4r4g4b4, 0x25ff, 467 PIXMAN_a8r8g8b8, 0x0 468 }, 469 { PIXMAN_OP_DISJOINT_OUT, 470 PIXMAN_a8r8g8b8, 0x141760a, 471 PIXMAN_a4r4g4b4, 0x7ec2, 472 PIXMAN_a4r4g4b4, 0x130 473 }, 474 { PIXMAN_OP_DISJOINT_XOR, 475 PIXMAN_a8r8g8b8, 0x1abedff, 476 PIXMAN_a8r8g8b8, 0x75520068, 477 PIXMAN_r3g3b2, 0x87 478 }, 479 { PIXMAN_OP_DISJOINT_XOR, 480 PIXMAN_a8r8g8b8, 0x10000ff, 481 PIXMAN_a8r8g8b8, 0xff00e652, 482 PIXMAN_r3g3b2, 0x1 483 }, 484 { PIXMAN_OP_CONJOINT_ATOP, 485 PIXMAN_a8r8g8b8, 0x16006075, 486 PIXMAN_r5g6b5, 0xc00, 487 PIXMAN_a8r8g8b8, 0x27f0900 488 }, 489 { PIXMAN_OP_DISJOINT_ATOP, 490 PIXMAN_a8r8g8b8, 0x200ff00, 491 PIXMAN_a8r8g8b8, 0xd1b83f57, 492 PIXMAN_a4r4g4b4, 0xff75 493 }, 494 { PIXMAN_OP_DISJOINT_OUT, 495 PIXMAN_a8r8g8b8, 0x14000c4, 496 PIXMAN_a4r4g4b4, 0x96, 497 PIXMAN_a2r2g2b2, 0x1 498 }, 499 { PIXMAN_OP_DISJOINT_IN, 500 PIXMAN_a8r8g8b8, 0x1ff00d1, 501 PIXMAN_r3g3b2, 0x79, 502 PIXMAN_a2r2g2b2, 0x0 503 }, 504 { PIXMAN_OP_CONJOINT_ATOP, 505 PIXMAN_a8r8g8b8, 0x1ff00dc, 506 PIXMAN_a4r4g4b4, 0xc5ff, 507 PIXMAN_a2r2g2b2, 0x10 508 }, 509 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 510 PIXMAN_a8r8g8b8, 0x1ffffb2, 511 PIXMAN_a8r8g8b8, 0x4cff5700, 512 PIXMAN_r3g3b2, 0x48 513 }, 514 { PIXMAN_OP_CONJOINT_XOR, 515 PIXMAN_a8r8g8b8, 0x1327482, 516 PIXMAN_a8r8g8b8, 0x247ff, 517 PIXMAN_a8r8g8b8, 0x82 518 }, 519 { PIXMAN_OP_DISJOINT_XOR, 520 PIXMAN_a8r8g8b8, 0x1d0ff00, 521 PIXMAN_r3g3b2, 0xc9, 522 PIXMAN_r5g6b5, 0x240 523 }, 524 { PIXMAN_OP_DISJOINT_XOR, 525 PIXMAN_a8r8g8b8, 0x13d35ff, 526 PIXMAN_a2r2g2b2, 0x6d, 527 PIXMAN_r3g3b2, 0x1 528 }, 529 { PIXMAN_OP_DISJOINT_OUT, 530 PIXMAN_a8r8g8b8, 0x1ffc6b2, 531 PIXMAN_a8r8g8b8, 0x5abe8e3c, 532 PIXMAN_r5g6b5, 0x5a27 533 }, 534 { PIXMAN_OP_DISJOINT_OUT, 535 PIXMAN_a8r8g8b8, 0x15700ff, 536 PIXMAN_r3g3b2, 0xdd, 537 PIXMAN_a8r8g8b8, 0x55 538 }, 539 { PIXMAN_OP_DISJOINT_OUT, 540 PIXMAN_a8r8g8b8, 0x1ff11ff, 541 PIXMAN_r3g3b2, 0x30, 542 PIXMAN_r5g6b5, 0x2000 543 }, 544 { PIXMAN_OP_DISJOINT_ATOP, 545 PIXMAN_a8r8g8b8, 0x1ff00ff, 546 PIXMAN_a2r2g2b2, 0x6d, 547 PIXMAN_r3g3b2, 0x0 548 }, 549 { PIXMAN_OP_DISJOINT_IN, 550 PIXMAN_a8r8g8b8, 0x1421d5f, 551 PIXMAN_a4r4g4b4, 0xff85, 552 PIXMAN_a8r8g8b8, 0x1420f00 553 }, 554 { PIXMAN_OP_DISJOINT_IN, 555 PIXMAN_a8r8g8b8, 0x1d2ffff, 556 PIXMAN_r5g6b5, 0xfc, 557 PIXMAN_r5g6b5, 0x1c 558 }, 559 { PIXMAN_OP_CONJOINT_ATOP, 560 PIXMAN_a8r8g8b8, 0x1ffff42, 561 PIXMAN_a4r4g4b4, 0x7100, 562 PIXMAN_a4r4g4b4, 0x771 563 }, 564 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 565 PIXMAN_a8r8g8b8, 0x25ae3d4, 566 PIXMAN_a8r8g8b8, 0x39ffc99a, 567 PIXMAN_a8r8g8b8, 0x14332f 568 }, 569 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 570 PIXMAN_a8r8g8b8, 0x1ff0643, 571 PIXMAN_a8r8g8b8, 0x4c000000, 572 PIXMAN_r5g6b5, 0x4802 573 }, 574 { PIXMAN_OP_DISJOINT_IN, 575 PIXMAN_a8r8g8b8, 0x1966a00, 576 PIXMAN_r3g3b2, 0x46, 577 PIXMAN_r5g6b5, 0x0 578 }, 579 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 580 PIXMAN_a8r8g8b8, 0x387ff59, 581 PIXMAN_r5g6b5, 0x512c, 582 PIXMAN_r5g6b5, 0x120 583 }, 584 { PIXMAN_OP_CONJOINT_XOR, 585 PIXMAN_a8r8g8b8, 0x1f7ffb0, 586 PIXMAN_r5g6b5, 0x63b8, 587 PIXMAN_a8r8g8b8, 0x1000089 588 }, 589 { PIXMAN_OP_DISJOINT_IN, 590 PIXMAN_a8r8g8b8, 0x185841c, 591 PIXMAN_a2r2g2b2, 0x5c, 592 PIXMAN_a8r8g8b8, 0x8400 593 }, 594 { PIXMAN_OP_DISJOINT_ATOP, 595 PIXMAN_a8r8g8b8, 0x1ffc3ff, 596 PIXMAN_a8r8g8b8, 0xff7b, 597 PIXMAN_a8r8g8b8, 0xff00c300 598 }, 599 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 600 PIXMAN_a8r8g8b8, 0x1ff7500, 601 PIXMAN_a2r2g2b2, 0x47, 602 PIXMAN_a4r4g4b4, 0xff 603 }, 604 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 605 PIXMAN_a8r8g8b8, 0x1002361, 606 PIXMAN_a2r2g2b2, 0x7e, 607 PIXMAN_r5g6b5, 0x64 608 }, 609 { PIXMAN_OP_SATURATE, 610 PIXMAN_a8r8g8b8, 0x10000b6, 611 PIXMAN_a8r8g8b8, 0x59004463, 612 PIXMAN_a4r4g4b4, 0xffa7 613 }, 614 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 615 PIXMAN_a8r8g8b8, 0x1ff5a49, 616 PIXMAN_a8r8g8b8, 0xff3fff2b, 617 PIXMAN_a8r8g8b8, 0x13f000c 618 }, 619 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 620 PIXMAN_a8r8g8b8, 0x3ffecfc, 621 PIXMAN_r3g3b2, 0x3c, 622 PIXMAN_r5g6b5, 0x2000 623 }, 624 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 625 PIXMAN_a8r8g8b8, 0x1630044, 626 PIXMAN_a2r2g2b2, 0x63, 627 PIXMAN_r3g3b2, 0x20 628 }, 629 { PIXMAN_OP_CONJOINT_OUT, 630 PIXMAN_a8r8g8b8, 0x1d2ff58, 631 PIXMAN_a8r8g8b8, 0x8f77ff, 632 PIXMAN_a4r4g4b4, 0x705 633 }, 634 { PIXMAN_OP_DISJOINT_OUT, 635 PIXMAN_a8r8g8b8, 0x14dffff, 636 PIXMAN_a2r2g2b2, 0x9a, 637 PIXMAN_a8r8g8b8, 0x1a0000 638 }, 639 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 640 PIXMAN_a8r8g8b8, 0x100ff92, 641 PIXMAN_a4r4g4b4, 0x540c, 642 PIXMAN_r5g6b5, 0x2a6 643 }, 644 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 645 PIXMAN_a8r8g8b8, 0x1ffffff, 646 PIXMAN_a4r4g4b4, 0xddd5, 647 PIXMAN_a4r4g4b4, 0xdd0 648 }, 649 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 650 PIXMAN_a8r8g8b8, 0x1ffffff, 651 PIXMAN_r5g6b5, 0xff8c, 652 PIXMAN_a4r4g4b4, 0xff0 653 }, 654 { PIXMAN_OP_DISJOINT_ATOP, 655 PIXMAN_a8r8g8b8, 0x1ffffff, 656 PIXMAN_r3g3b2, 0x66, 657 PIXMAN_r5g6b5, 0x7d1f 658 }, 659 { PIXMAN_OP_CONJOINT_ATOP, 660 PIXMAN_a8r8g8b8, 0x1ffff00, 661 PIXMAN_a4r4g4b4, 0xff5b, 662 PIXMAN_a8r8g8b8, 0x5500 663 }, 664 { PIXMAN_OP_DISJOINT_XOR, 665 PIXMAN_a8r8g8b8, 0x2ed2dff, 666 PIXMAN_r5g6b5, 0x7ae7, 667 PIXMAN_r3g3b2, 0xce 668 }, 669 { PIXMAN_OP_DISJOINT_OUT, 670 PIXMAN_a8r8g8b8, 0x1b13205, 671 PIXMAN_a8r8g8b8, 0x35ffff00, 672 PIXMAN_r5g6b5, 0x2040 673 }, 674 { PIXMAN_OP_CONJOINT_IN, 675 PIXMAN_a8r8g8b8, 0x1e60dff, 676 PIXMAN_a4r4g4b4, 0x760f, 677 PIXMAN_a2r2g2b2, 0x11 678 }, 679 { PIXMAN_OP_CONJOINT_OUT, 680 PIXMAN_a8r8g8b8, 0x10000ff, 681 PIXMAN_a4r4g4b4, 0x3, 682 PIXMAN_a8r8g8b8, 0x0 683 }, 684 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 685 PIXMAN_a8r8g8b8, 0x100ffff, 686 PIXMAN_a8r8g8b8, 0x6600, 687 PIXMAN_a4r4g4b4, 0x0 688 }, 689 { PIXMAN_OP_DISJOINT_OUT, 690 PIXMAN_a8r8g8b8, 0x30000fa, 691 PIXMAN_a4r4g4b4, 0x23b7, 692 PIXMAN_a8r8g8b8, 0x21 693 }, 694 { PIXMAN_OP_DISJOINT_OUT, 695 PIXMAN_a8r8g8b8, 0x1ffffff, 696 PIXMAN_r3g3b2, 0x60, 697 PIXMAN_r3g3b2, 0x60 698 }, 699 { PIXMAN_OP_CONJOINT_OUT, 700 PIXMAN_a8r8g8b8, 0x3b31b30, 701 PIXMAN_r3g3b2, 0x2e, 702 PIXMAN_a8r8g8b8, 0x3000c20 703 }, 704 { PIXMAN_OP_DISJOINT_ATOP, 705 PIXMAN_a8r8g8b8, 0x160ffff, 706 PIXMAN_a4r4g4b4, 0xff42, 707 PIXMAN_r3g3b2, 0xed 708 }, 709 { PIXMAN_OP_DISJOINT_OUT, 710 PIXMAN_a8r8g8b8, 0x172ffff, 711 PIXMAN_a4r4g4b4, 0x5100, 712 PIXMAN_r3g3b2, 0x29 713 }, 714 { PIXMAN_OP_CONJOINT_ATOP, 715 PIXMAN_a8r8g8b8, 0x16300ff, 716 PIXMAN_a4r4g4b4, 0x5007, 717 PIXMAN_a8r8g8b8, 0x77 718 }, 719 { PIXMAN_OP_CONJOINT_IN, 720 PIXMAN_a8r8g8b8, 0x2ffff3a, 721 PIXMAN_a8r8g8b8, 0x26640083, 722 PIXMAN_a4r4g4b4, 0x220 723 }, 724 { PIXMAN_OP_DISJOINT_IN, 725 PIXMAN_a8r8g8b8, 0x106ff60, 726 PIXMAN_r5g6b5, 0xdce, 727 PIXMAN_a8r8g8b8, 0x100ba00 728 }, 729 { PIXMAN_OP_DISJOINT_IN, 730 PIXMAN_a8r8g8b8, 0x100e7ff, 731 PIXMAN_r5g6b5, 0xa00, 732 PIXMAN_r5g6b5, 0x0 733 }, 734 { PIXMAN_OP_CONJOINT_XOR, 735 PIXMAN_a8r8g8b8, 0x2b500f1, 736 PIXMAN_a4r4g4b4, 0x7339, 737 PIXMAN_a8r8g8b8, 0x1000091 738 }, 739 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 740 PIXMAN_a8r8g8b8, 0x1ff00ff, 741 PIXMAN_a4r4g4b4, 0xc863, 742 PIXMAN_r5g6b5, 0x6 743 }, 744 { PIXMAN_OP_SATURATE, 745 PIXMAN_a8r8g8b8, 0x1ffffca, 746 PIXMAN_a8r8g8b8, 0x8b4cf000, 747 PIXMAN_r3g3b2, 0xd2 748 }, 749 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 750 PIXMAN_a8r8g8b8, 0x1fffe00, 751 PIXMAN_r3g3b2, 0x88, 752 PIXMAN_r3g3b2, 0x8 753 }, 754 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 755 PIXMAN_a8r8g8b8, 0x16f0000, 756 PIXMAN_a2r2g2b2, 0x59, 757 PIXMAN_r5g6b5, 0x2000 758 }, 759 { PIXMAN_OP_CONJOINT_OUT, 760 PIXMAN_a8r8g8b8, 0x377ff43, 761 PIXMAN_a4r4g4b4, 0x2a, 762 PIXMAN_a8r8g8b8, 0x2d 763 }, 764 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 765 PIXMAN_a8r8g8b8, 0x11dffff, 766 PIXMAN_r3g3b2, 0xcb, 767 PIXMAN_r3g3b2, 0x8 768 }, 769 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 770 PIXMAN_a8r8g8b8, 0x1ffffff, 771 PIXMAN_r5g6b5, 0xbdab, 772 PIXMAN_a4r4g4b4, 0xbb0 773 }, 774 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 775 PIXMAN_a8r8g8b8, 0x1ff3343, 776 PIXMAN_a8r8g8b8, 0x7a00ffff, 777 PIXMAN_a2r2g2b2, 0xd 778 }, 779 { PIXMAN_OP_DISJOINT_XOR, 780 PIXMAN_a8r8g8b8, 0x1ebff4b, 781 PIXMAN_r3g3b2, 0x26, 782 PIXMAN_r3g3b2, 0x24 783 }, 784 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 785 PIXMAN_a8r8g8b8, 0x2c1b3ff, 786 PIXMAN_a8r8g8b8, 0x3000152a, 787 PIXMAN_r3g3b2, 0x24 788 }, 789 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 790 PIXMAN_a8r8g8b8, 0x1a7ffff, 791 PIXMAN_r3g3b2, 0x9, 792 PIXMAN_r5g6b5, 0x24a 793 }, 794 { PIXMAN_OP_DISJOINT_IN, 795 PIXMAN_a8r8g8b8, 0x4ff00ec, 796 PIXMAN_a8r8g8b8, 0x1da4961e, 797 PIXMAN_a8r8g8b8, 0x0 798 }, 799 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 800 PIXMAN_a8r8g8b8, 0x1ff25ff, 801 PIXMAN_a8r8g8b8, 0x64b0ff00, 802 PIXMAN_r5g6b5, 0x606c 803 }, 804 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 805 PIXMAN_a8r8g8b8, 0x1fd62ff, 806 PIXMAN_a4r4g4b4, 0x76b1, 807 PIXMAN_r5g6b5, 0x716e 808 }, 809 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 810 PIXMAN_a8r8g8b8, 0x194ffde, 811 PIXMAN_r5g6b5, 0x47ff, 812 PIXMAN_r5g6b5, 0x2000 813 }, 814 { PIXMAN_OP_DISJOINT_XOR, 815 PIXMAN_a8r8g8b8, 0x108ffff, 816 PIXMAN_a8r8g8b8, 0xffffff66, 817 PIXMAN_r5g6b5, 0xff0c 818 }, 819 { PIXMAN_OP_DISJOINT_XOR, 820 PIXMAN_a8r8g8b8, 0x5ffffff, 821 PIXMAN_r5g6b5, 0xdf, 822 PIXMAN_r5g6b5, 0xc0 823 }, 824 { PIXMAN_OP_CONJOINT_IN, 825 PIXMAN_a8r8g8b8, 0x100ad31, 826 PIXMAN_a2r2g2b2, 0xc5, 827 PIXMAN_a4r4g4b4, 0x31 828 }, 829 { PIXMAN_OP_DISJOINT_IN, 830 PIXMAN_a8r8g8b8, 0x1ffff34, 831 PIXMAN_a8r8g8b8, 0x6a57c491, 832 PIXMAN_r3g3b2, 0x0 833 }, 834 { PIXMAN_OP_DISJOINT_IN, 835 PIXMAN_a8r8g8b8, 0x1fffff1, 836 PIXMAN_r3g3b2, 0xaf, 837 PIXMAN_r5g6b5, 0xb01e 838 }, 839 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 840 PIXMAN_a8r8g8b8, 0x1ff67ff, 841 PIXMAN_a4r4g4b4, 0x50ff, 842 PIXMAN_a8r8g8b8, 0x552255 843 }, 844 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 845 PIXMAN_a8r8g8b8, 0x11bffff, 846 PIXMAN_r5g6b5, 0xef0c, 847 PIXMAN_r5g6b5, 0xc 848 }, 849 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 850 PIXMAN_a8r8g8b8, 0x16cf37d, 851 PIXMAN_a4r4g4b4, 0xc561, 852 PIXMAN_r5g6b5, 0x2301 853 }, 854 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 855 PIXMAN_a8r8g8b8, 0x2ffff9c, 856 PIXMAN_a4r4g4b4, 0x2700, 857 PIXMAN_a8r8g8b8, 0xffff 858 }, 859 { PIXMAN_OP_DISJOINT_IN, 860 PIXMAN_a8r8g8b8, 0x200f322, 861 PIXMAN_a8r8g8b8, 0xff3c7e, 862 PIXMAN_r5g6b5, 0x2 863 }, 864 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 865 PIXMAN_a8r8g8b8, 0x1f14a33, 866 PIXMAN_a8r8g8b8, 0x26cff79, 867 PIXMAN_r3g3b2, 0xf9 868 }, 869 { PIXMAN_OP_CONJOINT_ATOP, 870 PIXMAN_a8r8g8b8, 0x11d922c, 871 PIXMAN_r3g3b2, 0xab, 872 PIXMAN_a4r4g4b4, 0x20 873 }, 874 { PIXMAN_OP_DISJOINT_OUT, 875 PIXMAN_a8r8g8b8, 0x100ffff, 876 PIXMAN_a2r2g2b2, 0xf5, 877 PIXMAN_r3g3b2, 0x9 878 }, 879 { PIXMAN_OP_DISJOINT_XOR, 880 PIXMAN_a8r8g8b8, 0x18697ff, 881 PIXMAN_a4r4g4b4, 0x5700, 882 PIXMAN_r5g6b5, 0xfa6d 883 }, 884 { PIXMAN_OP_CONJOINT_IN, 885 PIXMAN_a8r8g8b8, 0x12000fc, 886 PIXMAN_a2r2g2b2, 0x41, 887 PIXMAN_a8r8g8b8, 0xb0054 888 }, 889 { PIXMAN_OP_DISJOINT_XOR, 890 PIXMAN_a8r8g8b8, 0x100ccff, 891 PIXMAN_a4r4g4b4, 0x657e, 892 PIXMAN_r5g6b5, 0x3b1 893 }, 894 { PIXMAN_OP_DISJOINT_OUT, 895 PIXMAN_a8r8g8b8, 0x1ffff1f, 896 PIXMAN_a2r2g2b2, 0xa6, 897 PIXMAN_r5g6b5, 0x2a0 898 }, 899 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 900 PIXMAN_a8r8g8b8, 0x11fff82, 901 PIXMAN_a4r4g4b4, 0xff94, 902 PIXMAN_a8r8g8b8, 0x1010123 903 }, 904 { PIXMAN_OP_CONJOINT_XOR, 905 PIXMAN_a8r8g8b8, 0x154bd19, 906 PIXMAN_a4r4g4b4, 0xb600, 907 PIXMAN_a8r8g8b8, 0x1000000 908 }, 909 { PIXMAN_OP_DISJOINT_IN, 910 PIXMAN_a8r8g8b8, 0x10000ff, 911 PIXMAN_r5g6b5, 0x8e, 912 PIXMAN_r5g6b5, 0x0 913 }, 914 { PIXMAN_OP_DISJOINT_ATOP, 915 PIXMAN_a8r8g8b8, 0x21aff00, 916 PIXMAN_r5g6b5, 0x71ff, 917 PIXMAN_r3g3b2, 0xf2 918 }, 919 { PIXMAN_OP_DISJOINT_OUT, 920 PIXMAN_a8r8g8b8, 0x2ad00a7, 921 PIXMAN_a4r4g4b4, 0x23, 922 PIXMAN_a8r8g8b8, 0x21 923 }, 924 { PIXMAN_OP_SATURATE, 925 PIXMAN_a8r8g8b8, 0x100ff00, 926 PIXMAN_r5g6b5, 0xb343, 927 PIXMAN_r3g3b2, 0xc 928 }, 929 { PIXMAN_OP_SATURATE, 930 PIXMAN_a8r8g8b8, 0x3ffa500, 931 PIXMAN_a8r8g8b8, 0x1af5b4, 932 PIXMAN_a8r8g8b8, 0xff1abc00 933 }, 934 { PIXMAN_OP_CONJOINT_OUT, 935 PIXMAN_a8r8g8b8, 0x2ffff11, 936 PIXMAN_a8r8g8b8, 0x9f334f, 937 PIXMAN_a8r8g8b8, 0x9f0005 938 }, 939 { PIXMAN_OP_CONJOINT_IN, 940 PIXMAN_a8r8g8b8, 0x2c75971, 941 PIXMAN_a4r4g4b4, 0x3900, 942 PIXMAN_a4r4g4b4, 0x211 943 }, 944 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 945 PIXMAN_a8r8g8b8, 0x100ff49, 946 PIXMAN_a8r8g8b8, 0x813dc25e, 947 PIXMAN_r5g6b5, 0x667d 948 }, 949 { PIXMAN_OP_DISJOINT_IN, 950 PIXMAN_a8r8g8b8, 0x10000ff, 951 PIXMAN_a4r4g4b4, 0x4bff, 952 PIXMAN_a8r8g8b8, 0x0 953 }, 954 { PIXMAN_OP_DISJOINT_XOR, 955 PIXMAN_a8r8g8b8, 0x20ebcff, 956 PIXMAN_r5g6b5, 0xc9ff, 957 PIXMAN_r3g3b2, 0x4 958 }, 959 { PIXMAN_OP_DISJOINT_XOR, 960 PIXMAN_a8r8g8b8, 0x1ffff00, 961 PIXMAN_r5g6b5, 0x51ff, 962 PIXMAN_r3g3b2, 0x44 963 }, 964 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 965 PIXMAN_a8r8g8b8, 0x1ffd158, 966 PIXMAN_a8r8g8b8, 0x7d88ffce, 967 PIXMAN_r3g3b2, 0x6c 968 }, 969 { PIXMAN_OP_SATURATE, 970 PIXMAN_a8r8g8b8, 0x1425e21, 971 PIXMAN_a2r2g2b2, 0xa5, 972 PIXMAN_r5g6b5, 0xe1 973 }, 974 { PIXMAN_OP_DISJOINT_OUT, 975 PIXMAN_a8r8g8b8, 0x14b00ff, 976 PIXMAN_a8r8g8b8, 0xbe95004b, 977 PIXMAN_r5g6b5, 0x9 978 }, 979 { PIXMAN_OP_CONJOINT_OUT, 980 PIXMAN_a8r8g8b8, 0x14fc0cd, 981 PIXMAN_a8r8g8b8, 0x2d12b78b, 982 PIXMAN_a8r8g8b8, 0x0 983 }, 984 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 985 PIXMAN_a8r8g8b8, 0x1ff8230, 986 PIXMAN_a2r2g2b2, 0x4c, 987 PIXMAN_r3g3b2, 0x44 988 }, 989 { PIXMAN_OP_CONJOINT_ATOP, 990 PIXMAN_a8r8g8b8, 0x1ff31ff, 991 PIXMAN_a2r2g2b2, 0x14, 992 PIXMAN_a8r8g8b8, 0x551000 993 }, 994 { PIXMAN_OP_CONJOINT_IN, 995 PIXMAN_a8r8g8b8, 0x17800ff, 996 PIXMAN_a4r4g4b4, 0x22, 997 PIXMAN_a8r8g8b8, 0x22 998 }, 999 { PIXMAN_OP_SATURATE, 1000 PIXMAN_a8r8g8b8, 0x14500ff, 1001 PIXMAN_a4r4g4b4, 0x6400, 1002 PIXMAN_r5g6b5, 0xff78 1003 }, 1004 { PIXMAN_OP_DISJOINT_IN, 1005 PIXMAN_a8r8g8b8, 0x100ff9d, 1006 PIXMAN_r3g3b2, 0xcd, 1007 PIXMAN_r3g3b2, 0x0 1008 }, 1009 { PIXMAN_OP_CONJOINT_ATOP, 1010 PIXMAN_a8r8g8b8, 0x3ff00ff, 1011 PIXMAN_a4r4g4b4, 0xf269, 1012 PIXMAN_a4r4g4b4, 0x200 1013 }, 1014 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1015 PIXMAN_a8r8g8b8, 0x2ff28b8, 1016 PIXMAN_a4r4g4b4, 0x33ff, 1017 PIXMAN_r5g6b5, 0x3000 1018 }, 1019 { PIXMAN_OP_DISJOINT_OUT, 1020 PIXMAN_a8r8g8b8, 0x1006278, 1021 PIXMAN_a8r8g8b8, 0x8a7f18, 1022 PIXMAN_r3g3b2, 0x4 1023 }, 1024 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1025 PIXMAN_a8r8g8b8, 0x1ffcb00, 1026 PIXMAN_a4r4g4b4, 0x7900, 1027 PIXMAN_a2r2g2b2, 0x14 1028 }, 1029 { PIXMAN_OP_CONJOINT_OUT, 1030 PIXMAN_a8r8g8b8, 0x115ff00, 1031 PIXMAN_a8r8g8b8, 0x508d, 1032 PIXMAN_a4r4g4b4, 0x0 1033 }, 1034 { PIXMAN_OP_SATURATE, 1035 PIXMAN_a8r8g8b8, 0x3ff30b5, 1036 PIXMAN_r5g6b5, 0x2e60, 1037 PIXMAN_r3g3b2, 0x20 1038 }, 1039 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1040 PIXMAN_a8r8g8b8, 0x182fffb, 1041 PIXMAN_r3g3b2, 0x1, 1042 PIXMAN_a8r8g8b8, 0x1000054 1043 }, 1044 { PIXMAN_OP_CONJOINT_ATOP, 1045 PIXMAN_a8r8g8b8, 0x16fff00, 1046 PIXMAN_r5g6b5, 0x7bc0, 1047 PIXMAN_a8r8g8b8, 0x367900 1048 }, 1049 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1050 PIXMAN_a8r8g8b8, 0x1d95dd8, 1051 PIXMAN_a4r4g4b4, 0xfff5, 1052 PIXMAN_r5g6b5, 0xff09 1053 }, 1054 { PIXMAN_OP_DISJOINT_IN, 1055 PIXMAN_a8r8g8b8, 0x1ff3cdc, 1056 PIXMAN_a8r8g8b8, 0x3bda45ff, 1057 PIXMAN_r3g3b2, 0x0 1058 }, 1059 { PIXMAN_OP_DISJOINT_ATOP, 1060 PIXMAN_a8r8g8b8, 0x13900f8, 1061 PIXMAN_a8r8g8b8, 0x7e00ffff, 1062 PIXMAN_a4r4g4b4, 0xff00 1063 }, 1064 { PIXMAN_OP_DISJOINT_XOR, 1065 PIXMAN_a8r8g8b8, 0x10ea9ff, 1066 PIXMAN_a8r8g8b8, 0xff34ff22, 1067 PIXMAN_r5g6b5, 0xff52 1068 }, 1069 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1070 PIXMAN_a8r8g8b8, 0x2002e99, 1071 PIXMAN_a4r4g4b4, 0x3000, 1072 PIXMAN_r5g6b5, 0x43 1073 }, 1074 { PIXMAN_OP_DISJOINT_ATOP, 1075 PIXMAN_a8r8g8b8, 0x100ffff, 1076 PIXMAN_r5g6b5, 0x19ff, 1077 PIXMAN_r3g3b2, 0x3 1078 }, 1079 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1080 PIXMAN_a8r8g8b8, 0x1ffff00, 1081 PIXMAN_a8r8g8b8, 0xffff4251, 1082 PIXMAN_a2r2g2b2, 0x4 1083 }, 1084 { PIXMAN_OP_CONJOINT_ATOP, 1085 PIXMAN_a8r8g8b8, 0x121c9ff, 1086 PIXMAN_a4r4g4b4, 0xd2, 1087 PIXMAN_a4r4g4b4, 0x2 1088 }, 1089 { PIXMAN_OP_CONJOINT_IN, 1090 PIXMAN_a8r8g8b8, 0x100ff4d, 1091 PIXMAN_a2r2g2b2, 0x5e, 1092 PIXMAN_a2r2g2b2, 0x4 1093 }, 1094 { PIXMAN_OP_DISJOINT_OUT, 1095 PIXMAN_a8r8g8b8, 0x29ab4ff, 1096 PIXMAN_r3g3b2, 0x47, 1097 PIXMAN_a8r8g8b8, 0x1900 1098 }, 1099 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 1100 PIXMAN_a8r8g8b8, 0x1ffc1ac, 1101 PIXMAN_a8r8g8b8, 0xee4ed0ac, 1102 PIXMAN_a8r8g8b8, 0x1009d74 1103 }, 1104 { PIXMAN_OP_CONJOINT_IN_REVERSE, 1105 PIXMAN_a8r8g8b8, 0x269dffdc, 1106 PIXMAN_a8r8g8b8, 0xff0b00e0, 1107 PIXMAN_a8r8g8b8, 0x2a200ff 1108 }, 1109 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1110 PIXMAN_a8r8g8b8, 0x2ffffff, 1111 PIXMAN_a4r4g4b4, 0x3200, 1112 PIXMAN_r3g3b2, 0x24 1113 }, 1114 { PIXMAN_OP_DISJOINT_OUT, 1115 PIXMAN_a8r8g8b8, 0x100ffed, 1116 PIXMAN_a8r8g8b8, 0x67004eff, 1117 PIXMAN_a2r2g2b2, 0x5 1118 }, 1119 { PIXMAN_OP_DISJOINT_XOR, 1120 PIXMAN_a8r8g8b8, 0x2fffd6a, 1121 PIXMAN_a8r8g8b8, 0xc9003bff, 1122 PIXMAN_r3g3b2, 0x4 1123 }, 1124 { PIXMAN_OP_DISJOINT_XOR, 1125 PIXMAN_a8r8g8b8, 0x253ff00, 1126 PIXMAN_r5g6b5, 0xff, 1127 PIXMAN_r5g6b5, 0xe0 1128 }, 1129 { PIXMAN_OP_DISJOINT_OUT, 1130 PIXMAN_a8r8g8b8, 0x13600ad, 1131 PIXMAN_r5g6b5, 0x35ae, 1132 PIXMAN_r3g3b2, 0x1 1133 }, 1134 { PIXMAN_OP_DISJOINT_IN, 1135 PIXMAN_a8r8g8b8, 0x1ffa8ff, 1136 PIXMAN_a8r8g8b8, 0xff5f00, 1137 PIXMAN_r3g3b2, 0xe0 1138 }, 1139 { PIXMAN_OP_DISJOINT_OUT, 1140 PIXMAN_a8r8g8b8, 0x10067ff, 1141 PIXMAN_a4r4g4b4, 0x450d, 1142 PIXMAN_a2r2g2b2, 0x1 1143 }, 1144 { PIXMAN_OP_SATURATE, 1145 PIXMAN_a8r8g8b8, 0x1ff01ff, 1146 PIXMAN_r3g3b2, 0x77, 1147 PIXMAN_r5g6b5, 0x6800 1148 }, 1149 { PIXMAN_OP_CONJOINT_ATOP, 1150 PIXMAN_a8r8g8b8, 0x11da4ff, 1151 PIXMAN_r5g6b5, 0x83c9, 1152 PIXMAN_a4r4g4b4, 0x44 1153 }, 1154 { PIXMAN_OP_DISJOINT_OUT, 1155 PIXMAN_a8r8g8b8, 0x1ffd4ff, 1156 PIXMAN_r3g3b2, 0xaa, 1157 PIXMAN_r3g3b2, 0x4 1158 }, 1159 { PIXMAN_OP_CONJOINT_IN, 1160 PIXMAN_a8r8g8b8, 0x1ff0000, 1161 PIXMAN_a8r8g8b8, 0x71002a, 1162 PIXMAN_a4r4g4b4, 0x700 1163 }, 1164 { PIXMAN_OP_DISJOINT_OUT, 1165 PIXMAN_a8r8g8b8, 0x1d7ffff, 1166 PIXMAN_r5g6b5, 0x3696, 1167 PIXMAN_a4r4g4b4, 0x200 1168 }, 1169 { PIXMAN_OP_CONJOINT_IN, 1170 PIXMAN_a8r8g8b8, 0x1ffffc8, 1171 PIXMAN_r5g6b5, 0xe900, 1172 PIXMAN_a8r8g8b8, 0x2000 1173 }, 1174 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 1175 PIXMAN_a8r8g8b8, 0x1ff004a, 1176 PIXMAN_r3g3b2, 0x48, 1177 PIXMAN_a8r8g8b8, 0x1000000 1178 }, 1179 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1180 PIXMAN_a8r8g8b8, 0x3ffe969, 1181 PIXMAN_r5g6b5, 0xff, 1182 PIXMAN_r5g6b5, 0xc0 1183 }, 1184 { PIXMAN_OP_CONJOINT_XOR, 1185 PIXMAN_a8r8g8b8, 0x300ff73, 1186 PIXMAN_r5g6b5, 0xff, 1187 PIXMAN_a8r8g8b8, 0x3000073 1188 }, 1189 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1190 PIXMAN_a8r8g8b8, 0x2ff93ff, 1191 PIXMAN_a8r8g8b8, 0x61fc7d2b, 1192 PIXMAN_a4r4g4b4, 0x2 1193 }, 1194 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1195 PIXMAN_a8r8g8b8, 0x11bffff, 1196 PIXMAN_a4r4g4b4, 0xffb4, 1197 PIXMAN_r5g6b5, 0x8 1198 }, 1199 { PIXMAN_OP_CONJOINT_IN, 1200 PIXMAN_a8r8g8b8, 0x1e9e100, 1201 PIXMAN_a2r2g2b2, 0x56, 1202 PIXMAN_a2r2g2b2, 0x14 1203 }, 1204 { PIXMAN_OP_SATURATE, 1205 PIXMAN_a8r8g8b8, 0x3ffb656, 1206 PIXMAN_r3g3b2, 0x4, 1207 PIXMAN_a4r4g4b4, 0xff99 1208 }, 1209 { PIXMAN_OP_DISJOINT_IN, 1210 PIXMAN_a8r8g8b8, 0x100ff00, 1211 PIXMAN_r3g3b2, 0x68, 1212 PIXMAN_r3g3b2, 0x0 1213 }, 1214 { PIXMAN_OP_SATURATE, 1215 PIXMAN_a8r8g8b8, 0x1006dff, 1216 PIXMAN_a2r2g2b2, 0x5d, 1217 PIXMAN_a8r8g8b8, 0xff00ff55 1218 }, 1219 { PIXMAN_OP_CONJOINT_IN, 1220 PIXMAN_a8r8g8b8, 0x11c00cb, 1221 PIXMAN_a2r2g2b2, 0x44, 1222 PIXMAN_a4r4g4b4, 0x4 1223 }, 1224 { PIXMAN_OP_CONJOINT_ATOP, 1225 PIXMAN_a8r8g8b8, 0x1d0ff86, 1226 PIXMAN_r3g3b2, 0x5c, 1227 PIXMAN_a8r8g8b8, 0x3c0000 1228 }, 1229 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1230 PIXMAN_a8r8g8b8, 0x2f25fff, 1231 PIXMAN_r3g3b2, 0x36, 1232 PIXMAN_a8r8g8b8, 0x2a444aa 1233 }, 1234 { PIXMAN_OP_DISJOINT_ATOP, 1235 PIXMAN_a8r8g8b8, 0x134af85, 1236 PIXMAN_r3g3b2, 0x29, 1237 PIXMAN_r5g6b5, 0xf300 1238 }, 1239 { PIXMAN_OP_CONJOINT_ATOP, 1240 PIXMAN_a8r8g8b8, 0x13398af, 1241 PIXMAN_r3g3b2, 0xa5, 1242 PIXMAN_a4r4g4b4, 0x13 1243 }, 1244 { PIXMAN_OP_DISJOINT_OUT, 1245 PIXMAN_a8r8g8b8, 0x1ff57ff, 1246 PIXMAN_a4r4g4b4, 0x252c, 1247 PIXMAN_r3g3b2, 0x40 1248 }, 1249 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1250 PIXMAN_a8r8g8b8, 0x115ffff, 1251 PIXMAN_r5g6b5, 0xffe3, 1252 PIXMAN_r5g6b5, 0x3303 1253 }, 1254 { PIXMAN_OP_DISJOINT_OUT, 1255 PIXMAN_a8r8g8b8, 0x1ffff00, 1256 PIXMAN_r5g6b5, 0x6300, 1257 PIXMAN_r3g3b2, 0x6c 1258 }, 1259 { PIXMAN_OP_CONJOINT_XOR, 1260 PIXMAN_a8r8g8b8, 0x4ccff9c, 1261 PIXMAN_r5g6b5, 0xcc, 1262 PIXMAN_a8r8g8b8, 0x400003d 1263 }, 1264 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1265 PIXMAN_a8r8g8b8, 0x1ffc6dd, 1266 PIXMAN_r5g6b5, 0x9bff, 1267 PIXMAN_r5g6b5, 0x5bff 1268 }, 1269 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1270 PIXMAN_a8r8g8b8, 0x14fff95, 1271 PIXMAN_r3g3b2, 0x46, 1272 PIXMAN_a8r8g8b8, 0x1000063 1273 }, 1274 { PIXMAN_OP_DISJOINT_OUT, 1275 PIXMAN_a8r8g8b8, 0x1e6b700, 1276 PIXMAN_r5g6b5, 0xc1ff, 1277 PIXMAN_r3g3b2, 0x4 1278 }, 1279 { PIXMAN_OP_DISJOINT_OUT, 1280 PIXMAN_a8r8g8b8, 0x1ffff54, 1281 PIXMAN_a8r8g8b8, 0x2e00ff, 1282 PIXMAN_r5g6b5, 0x2800 1283 }, 1284 { PIXMAN_OP_DISJOINT_OUT, 1285 PIXMAN_a8r8g8b8, 0x3ffffff, 1286 PIXMAN_r5g6b5, 0xff, 1287 PIXMAN_r5g6b5, 0xe0 1288 }, 1289 { PIXMAN_OP_DISJOINT_ATOP, 1290 PIXMAN_a8r8g8b8, 0x1003550, 1291 PIXMAN_r5g6b5, 0xffcc, 1292 PIXMAN_r5g6b5, 0x1e0 1293 }, 1294 { PIXMAN_OP_DISJOINT_XOR, 1295 PIXMAN_a8r8g8b8, 0x1ffff74, 1296 PIXMAN_r3g3b2, 0x28, 1297 PIXMAN_a8r8g8b8, 0xfe2f49d7 1298 }, 1299 { PIXMAN_OP_DISJOINT_XOR, 1300 PIXMAN_a8r8g8b8, 0x1e35100, 1301 PIXMAN_r3g3b2, 0x57, 1302 PIXMAN_r5g6b5, 0x4000 1303 }, 1304 { PIXMAN_OP_DISJOINT_IN, 1305 PIXMAN_a8r8g8b8, 0x268ffa3, 1306 PIXMAN_a4r4g4b4, 0x30, 1307 PIXMAN_a4r4g4b4, 0x0 1308 }, 1309 { PIXMAN_OP_DISJOINT_ATOP, 1310 PIXMAN_a8r8g8b8, 0x35700f8, 1311 PIXMAN_r5g6b5, 0xa4, 1312 PIXMAN_r5g6b5, 0x0 1313 }, 1314 { PIXMAN_OP_CONJOINT_ATOP, 1315 PIXMAN_a8r8g8b8, 0x3ce1dff, 1316 PIXMAN_r5g6b5, 0x2a5e, 1317 PIXMAN_a8r8g8b8, 0x210000 1318 }, 1319 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1320 PIXMAN_a8r8g8b8, 0x494a7ff, 1321 PIXMAN_a8r8g8b8, 0x1bffe400, 1322 PIXMAN_a8r8g8b8, 0x0 1323 }, 1324 { PIXMAN_OP_SATURATE, 1325 PIXMAN_a8r8g8b8, 0x10026d9, 1326 PIXMAN_a8r8g8b8, 0xec00621f, 1327 PIXMAN_r5g6b5, 0x63 1328 }, 1329 { PIXMAN_OP_CONJOINT_IN, 1330 PIXMAN_a8r8g8b8, 0x100ff99, 1331 PIXMAN_a8r8g8b8, 0xf334ff, 1332 PIXMAN_a4r4g4b4, 0x30 1333 }, 1334 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1335 PIXMAN_a8r8g8b8, 0x2ffc200, 1336 PIXMAN_a8r8g8b8, 0x1e0000ff, 1337 PIXMAN_a8r8g8b8, 0x1e1700 1338 }, 1339 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1340 PIXMAN_a8r8g8b8, 0x1ff00ff, 1341 PIXMAN_r3g3b2, 0x4b, 1342 PIXMAN_r5g6b5, 0x4818 1343 }, 1344 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1345 PIXMAN_a8r8g8b8, 0x2e800ff, 1346 PIXMAN_a4r4g4b4, 0xd3, 1347 PIXMAN_a4r4g4b4, 0xec 1348 }, 1349 { PIXMAN_OP_DISJOINT_IN, 1350 PIXMAN_a8r8g8b8, 0x19a001f, 1351 PIXMAN_r3g3b2, 0x76, 1352 PIXMAN_r3g3b2, 0x0 1353 }, 1354 { PIXMAN_OP_DISJOINT_OUT, 1355 PIXMAN_a8r8g8b8, 0x1cb00c3, 1356 PIXMAN_a4r4g4b4, 0x5cff, 1357 PIXMAN_r5g6b5, 0x4008 1358 }, 1359 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1360 PIXMAN_a8r8g8b8, 0x1ff0000, 1361 PIXMAN_r3g3b2, 0x2a, 1362 PIXMAN_r5g6b5, 0xc5fb 1363 }, 1364 { PIXMAN_OP_DISJOINT_ATOP, 1365 PIXMAN_a8r8g8b8, 0x1ffffff, 1366 PIXMAN_a8r8g8b8, 0xea005a88, 1367 PIXMAN_r3g3b2, 0xb3 1368 }, 1369 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1370 PIXMAN_a8r8g8b8, 0x100ffea, 1371 PIXMAN_a4r4g4b4, 0x54eb, 1372 PIXMAN_a8r8g8b8, 0x0 1373 }, 1374 { PIXMAN_OP_DISJOINT_OUT, 1375 PIXMAN_a8r8g8b8, 0x179ffff, 1376 PIXMAN_r3g3b2, 0xa4, 1377 PIXMAN_a8r8g8b8, 0x2400 1378 }, 1379 { PIXMAN_OP_DISJOINT_XOR, 1380 PIXMAN_a8r8g8b8, 0x17ad226, 1381 PIXMAN_r3g3b2, 0xa4, 1382 PIXMAN_r5g6b5, 0xe0 1383 }, 1384 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1385 PIXMAN_a8r8g8b8, 0x100ff01, 1386 PIXMAN_a2r2g2b2, 0x25, 1387 PIXMAN_a4r4g4b4, 0x50 1388 }, 1389 { PIXMAN_OP_DISJOINT_IN, 1390 PIXMAN_a8r8g8b8, 0x20000ff, 1391 PIXMAN_a8r8g8b8, 0x2b00c127, 1392 PIXMAN_r5g6b5, 0x0 1393 }, 1394 { PIXMAN_OP_SATURATE, 1395 PIXMAN_a8r8g8b8, 0x200ff96, 1396 PIXMAN_a4r4g4b4, 0x2300, 1397 PIXMAN_r3g3b2, 0x6 1398 }, 1399 { PIXMAN_OP_DISJOINT_XOR, 1400 PIXMAN_a8r8g8b8, 0x200ffff, 1401 PIXMAN_r3g3b2, 0x87, 1402 PIXMAN_r5g6b5, 0x5bc8 1403 }, 1404 { PIXMAN_OP_CONJOINT_XOR, 1405 PIXMAN_a8r8g8b8, 0x1fffff2, 1406 PIXMAN_r3g3b2, 0x7e, 1407 PIXMAN_a2r2g2b2, 0xe 1408 }, 1409 { PIXMAN_OP_SATURATE, 1410 PIXMAN_a8r8g8b8, 0x1ff8b00, 1411 PIXMAN_a4r4g4b4, 0xd500, 1412 PIXMAN_r3g3b2, 0x40 1413 }, 1414 { PIXMAN_OP_CONJOINT_XOR, 1415 PIXMAN_a8r8g8b8, 0x1ffffff, 1416 PIXMAN_a8r8g8b8, 0x1bff38, 1417 PIXMAN_a4r4g4b4, 0xf0 1418 }, 1419 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 1420 PIXMAN_a8r8g8b8, 0x158ff39, 1421 PIXMAN_a4r4g4b4, 0x75dd, 1422 PIXMAN_a8r8g8b8, 0xdd31 1423 }, 1424 { PIXMAN_OP_DISJOINT_XOR, 1425 PIXMAN_a8r8g8b8, 0x1009b70, 1426 PIXMAN_a4r4g4b4, 0xff40, 1427 PIXMAN_r3g3b2, 0x4 1428 }, 1429 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1430 PIXMAN_a8r8g8b8, 0x12fb43f, 1431 PIXMAN_a4r4g4b4, 0x69ff, 1432 PIXMAN_a2r2g2b2, 0x4 1433 }, 1434 { PIXMAN_OP_DISJOINT_IN, 1435 PIXMAN_a8r8g8b8, 0x1ffff95, 1436 PIXMAN_a2r2g2b2, 0x84, 1437 PIXMAN_r5g6b5, 0x0 1438 }, 1439 { PIXMAN_OP_DISJOINT_OUT, 1440 PIXMAN_a8r8g8b8, 0x200d188, 1441 PIXMAN_r5g6b5, 0xde6, 1442 PIXMAN_r5g6b5, 0x3 1443 }, 1444 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1445 PIXMAN_a8r8g8b8, 0x2c70000, 1446 PIXMAN_r5g6b5, 0x24fa, 1447 PIXMAN_a8r8g8b8, 0x21a0000 1448 }, 1449 { PIXMAN_OP_CONJOINT_OUT, 1450 PIXMAN_a8r8g8b8, 0x100ff24, 1451 PIXMAN_a4r4g4b4, 0x835, 1452 PIXMAN_a4r4g4b4, 0x0 1453 }, 1454 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1455 PIXMAN_a8r8g8b8, 0x10000cd, 1456 PIXMAN_a2r2g2b2, 0x7f, 1457 PIXMAN_a2r2g2b2, 0x1 1458 }, 1459 { PIXMAN_OP_SATURATE, 1460 PIXMAN_a8r8g8b8, 0x379ffff, 1461 PIXMAN_a8r8g8b8, 0x23ffff00, 1462 PIXMAN_r5g6b5, 0x4eda 1463 }, 1464 { PIXMAN_OP_SATURATE, 1465 PIXMAN_a8r8g8b8, 0x172e3ff, 1466 PIXMAN_r3g3b2, 0xa6, 1467 PIXMAN_r5g6b5, 0x100 1468 }, 1469 { PIXMAN_OP_DISJOINT_IN, 1470 PIXMAN_a8r8g8b8, 0x100f5ad, 1471 PIXMAN_a4r4g4b4, 0x7908, 1472 PIXMAN_a2r2g2b2, 0x0 1473 }, 1474 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1475 PIXMAN_a8r8g8b8, 0x100fff9, 1476 PIXMAN_a2r2g2b2, 0xf1, 1477 PIXMAN_r3g3b2, 0x1 1478 }, 1479 { PIXMAN_OP_CONJOINT_XOR, 1480 PIXMAN_a8r8g8b8, 0x1abff00, 1481 PIXMAN_r5g6b5, 0x31ff, 1482 PIXMAN_a8r8g8b8, 0x1000000 1483 }, 1484 { PIXMAN_OP_DISJOINT_XOR, 1485 PIXMAN_a8r8g8b8, 0x112ffd1, 1486 PIXMAN_r3g3b2, 0x9, 1487 PIXMAN_a2r2g2b2, 0xdd 1488 }, 1489 { PIXMAN_OP_CONJOINT_IN, 1490 PIXMAN_a8r8g8b8, 0x100ffbf, 1491 PIXMAN_r3g3b2, 0x2c, 1492 PIXMAN_a4r4g4b4, 0x60 1493 }, 1494 { PIXMAN_OP_DISJOINT_OUT, 1495 PIXMAN_a8r8g8b8, 0x1ffb7ff, 1496 PIXMAN_r3g3b2, 0x6b, 1497 PIXMAN_a4r4g4b4, 0x630 1498 }, 1499 { PIXMAN_OP_SATURATE, 1500 PIXMAN_a8r8g8b8, 0x20005ff, 1501 PIXMAN_a4r4g4b4, 0x8462, 1502 PIXMAN_r5g6b5, 0xb1e8 1503 }, 1504 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1505 PIXMAN_a8r8g8b8, 0x1ff5b00, 1506 PIXMAN_r5g6b5, 0x70ff, 1507 PIXMAN_r3g3b2, 0x60 1508 }, 1509 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 1510 PIXMAN_a8r8g8b8, 0x2ffffc3, 1511 PIXMAN_r3g3b2, 0x39, 1512 PIXMAN_a8r8g8b8, 0x200db41 1513 }, 1514 { PIXMAN_OP_CONJOINT_OUT, 1515 PIXMAN_a8r8g8b8, 0x306ffff, 1516 PIXMAN_a8r8g8b8, 0xdcffff1f, 1517 PIXMAN_a8r8g8b8, 0x306ff00 1518 }, 1519 { PIXMAN_OP_DISJOINT_IN, 1520 PIXMAN_a8r8g8b8, 0x193daff, 1521 PIXMAN_a8r8g8b8, 0x69000000, 1522 PIXMAN_r3g3b2, 0x0 1523 }, 1524 { PIXMAN_OP_SATURATE, 1525 PIXMAN_a8r8g8b8, 0x2a200ff, 1526 PIXMAN_a8r8g8b8, 0x183aff00, 1527 PIXMAN_r5g6b5, 0x2000 1528 }, 1529 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1530 PIXMAN_a8r8g8b8, 0x100f1a5, 1531 PIXMAN_a8r8g8b8, 0xb5fc21ff, 1532 PIXMAN_r5g6b5, 0xfe00 1533 }, 1534 { PIXMAN_OP_SATURATE, 1535 PIXMAN_a8r8g8b8, 0x1630019, 1536 PIXMAN_a8r8g8b8, 0x6affc400, 1537 PIXMAN_r5g6b5, 0x56ff 1538 }, 1539 { PIXMAN_OP_DISJOINT_OUT, 1540 PIXMAN_a8r8g8b8, 0x1ff8bc2, 1541 PIXMAN_r3g3b2, 0xee, 1542 PIXMAN_r5g6b5, 0x1c0 1543 }, 1544 { PIXMAN_OP_SATURATE, 1545 PIXMAN_a8r8g8b8, 0x260ffff, 1546 PIXMAN_a4r4g4b4, 0x3f00, 1547 PIXMAN_r3g3b2, 0x4 1548 }, 1549 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1550 PIXMAN_a8r8g8b8, 0x169ffed, 1551 PIXMAN_a8r8g8b8, 0xffffff3f, 1552 PIXMAN_a8r8g8b8, 0x169ff00 1553 }, 1554 { PIXMAN_OP_CONJOINT_XOR, 1555 PIXMAN_a8r8g8b8, 0x154c181, 1556 PIXMAN_a4r4g4b4, 0x5100, 1557 PIXMAN_a4r4g4b4, 0x0 1558 }, 1559 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1560 PIXMAN_a8r8g8b8, 0x1e09c00, 1561 PIXMAN_r5g6b5, 0xca00, 1562 PIXMAN_a4r4g4b4, 0xb00 1563 }, 1564 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1565 PIXMAN_a8r8g8b8, 0x2ff8dff, 1566 PIXMAN_a8r8g8b8, 0x610038ff, 1567 PIXMAN_a8r8g8b8, 0x1001f02 1568 }, 1569 { PIXMAN_OP_SATURATE, 1570 PIXMAN_a8r8g8b8, 0x1e400ff, 1571 PIXMAN_a4r4g4b4, 0x66bd, 1572 PIXMAN_r3g3b2, 0x68 1573 }, 1574 { PIXMAN_OP_CONJOINT_IN, 1575 PIXMAN_a8r8g8b8, 0x25362ff, 1576 PIXMAN_a4r4g4b4, 0x31ff, 1577 PIXMAN_a8r8g8b8, 0x111433 1578 }, 1579 { PIXMAN_OP_CONJOINT_OUT, 1580 PIXMAN_a8r8g8b8, 0x3ad0039, 1581 PIXMAN_r3g3b2, 0x26, 1582 PIXMAN_a8r8g8b8, 0x3000026 1583 }, 1584 { PIXMAN_OP_DISJOINT_OUT, 1585 PIXMAN_a8r8g8b8, 0x2e442ef, 1586 PIXMAN_r3g3b2, 0x32, 1587 PIXMAN_r3g3b2, 0x20 1588 }, 1589 { PIXMAN_OP_SATURATE, 1590 PIXMAN_a8r8g8b8, 0x1720000, 1591 PIXMAN_a8r8g8b8, 0x55fdea00, 1592 PIXMAN_r3g3b2, 0x20 1593 }, 1594 { PIXMAN_OP_DISJOINT_IN, 1595 PIXMAN_a8r8g8b8, 0x14bb0d7, 1596 PIXMAN_a8r8g8b8, 0x7fffff47, 1597 PIXMAN_a2r2g2b2, 0x0 1598 }, 1599 { PIXMAN_OP_DISJOINT_IN, 1600 PIXMAN_a8r8g8b8, 0x13dffff, 1601 PIXMAN_a8r8g8b8, 0xa3860672, 1602 PIXMAN_r3g3b2, 0x20 1603 }, 1604 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1605 PIXMAN_a8r8g8b8, 0x120495a, 1606 PIXMAN_a4r4g4b4, 0x407e, 1607 PIXMAN_a8r8g8b8, 0x54 1608 }, 1609 { PIXMAN_OP_DISJOINT_OUT, 1610 PIXMAN_a8r8g8b8, 0x1ff8fff, 1611 PIXMAN_a2r2g2b2, 0x29, 1612 PIXMAN_r5g6b5, 0xa 1613 }, 1614 { PIXMAN_OP_DISJOINT_IN, 1615 PIXMAN_a8r8g8b8, 0x100a31a, 1616 PIXMAN_a4r4g4b4, 0xde4c, 1617 PIXMAN_a4r4g4b4, 0x1 1618 }, 1619 { PIXMAN_OP_CONJOINT_OUT, 1620 PIXMAN_a8r8g8b8, 0x1d4008c, 1621 PIXMAN_r3g3b2, 0x79, 1622 PIXMAN_a8r8g8b8, 0x1000000 1623 }, 1624 { PIXMAN_OP_DISJOINT_IN, 1625 PIXMAN_a8r8g8b8, 0x1ff0000, 1626 PIXMAN_a4r4g4b4, 0x7de4, 1627 PIXMAN_r5g6b5, 0x0 1628 }, 1629 { PIXMAN_OP_DISJOINT_ATOP, 1630 PIXMAN_a8r8g8b8, 0x1b27e62, 1631 PIXMAN_a4r4g4b4, 0x7941, 1632 PIXMAN_r3g3b2, 0x0 1633 }, 1634 { PIXMAN_OP_DISJOINT_OUT, 1635 PIXMAN_a8r8g8b8, 0x300ff00, 1636 PIXMAN_a8r8g8b8, 0xfcff255e, 1637 PIXMAN_r3g3b2, 0x4 1638 }, 1639 { PIXMAN_OP_DISJOINT_OUT, 1640 PIXMAN_a8r8g8b8, 0x2ff00b8, 1641 PIXMAN_a8r8g8b8, 0x19ff718d, 1642 PIXMAN_r5g6b5, 0x1802 1643 }, 1644 { PIXMAN_OP_DISJOINT_OUT, 1645 PIXMAN_a8r8g8b8, 0x235ff13, 1646 PIXMAN_a8r8g8b8, 0x34bcd9ff, 1647 PIXMAN_r3g3b2, 0x4 1648 }, 1649 { PIXMAN_OP_DISJOINT_OUT, 1650 PIXMAN_a8r8g8b8, 0x1006400, 1651 PIXMAN_a4r4g4b4, 0x7000, 1652 PIXMAN_a4r4g4b4, 0x20 1653 }, 1654 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 1655 PIXMAN_a8r8g8b8, 0x1ff8bff, 1656 PIXMAN_a4r4g4b4, 0xfff4, 1657 PIXMAN_a4r4g4b4, 0xf80 1658 }, 1659 { PIXMAN_OP_DISJOINT_OUT, 1660 PIXMAN_a8r8g8b8, 0x24630ff, 1661 PIXMAN_a8r8g8b8, 0x1f00000b, 1662 PIXMAN_a8r8g8b8, 0x9061f 1663 }, 1664 { PIXMAN_OP_DISJOINT_OUT, 1665 PIXMAN_a8r8g8b8, 0x1ff8a00, 1666 PIXMAN_a8r8g8b8, 0x79ffab00, 1667 PIXMAN_r5g6b5, 0x7a00 1668 }, 1669 { PIXMAN_OP_DISJOINT_ATOP, 1670 PIXMAN_a8r8g8b8, 0x19807ff, 1671 PIXMAN_a4r4g4b4, 0x6794, 1672 PIXMAN_a8r8g8b8, 0xff002e00 1673 }, 1674 { PIXMAN_OP_CONJOINT_OUT, 1675 PIXMAN_a8r8g8b8, 0x10000da, 1676 PIXMAN_a4r4g4b4, 0xf864, 1677 PIXMAN_a8r8g8b8, 0x1000000 1678 }, 1679 { PIXMAN_OP_DISJOINT_IN, 1680 PIXMAN_a8r8g8b8, 0x1ffffde, 1681 PIXMAN_a2r2g2b2, 0x94, 1682 PIXMAN_a8r8g8b8, 0x1000000 1683 }, 1684 { PIXMAN_OP_CONJOINT_ATOP, 1685 PIXMAN_a8r8g8b8, 0x200c800, 1686 PIXMAN_r5g6b5, 0xe9d4, 1687 PIXMAN_a8r8g8b8, 0x2c00 1688 }, 1689 { PIXMAN_OP_DISJOINT_OUT, 1690 PIXMAN_a8r8g8b8, 0x1ff00c9, 1691 PIXMAN_r3g3b2, 0x4c, 1692 PIXMAN_r5g6b5, 0x4800 1693 }, 1694 { PIXMAN_OP_DISJOINT_OUT, 1695 PIXMAN_a8r8g8b8, 0x122d5ff, 1696 PIXMAN_r5g6b5, 0x418b, 1697 PIXMAN_a4r4g4b4, 0x25 1698 }, 1699 { PIXMAN_OP_DISJOINT_IN, 1700 PIXMAN_a8r8g8b8, 0x1ffff55, 1701 PIXMAN_a2r2g2b2, 0x1c, 1702 PIXMAN_a8r8g8b8, 0xff00 1703 }, 1704 { PIXMAN_OP_DISJOINT_ATOP, 1705 PIXMAN_a8r8g8b8, 0x135ffff, 1706 PIXMAN_r5g6b5, 0x39c4, 1707 PIXMAN_r5g6b5, 0xb7 1708 }, 1709 { PIXMAN_OP_DISJOINT_OUT, 1710 PIXMAN_a8r8g8b8, 0x100d2c3, 1711 PIXMAN_r3g3b2, 0x2a, 1712 PIXMAN_a8r8g8b8, 0x3c00 1713 }, 1714 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1715 PIXMAN_a8r8g8b8, 0x17268ff, 1716 PIXMAN_a8r8g8b8, 0x7c00ffff, 1717 PIXMAN_r5g6b5, 0x318f 1718 }, 1719 { PIXMAN_OP_DISJOINT_ATOP, 1720 PIXMAN_a8r8g8b8, 0x1ff00ff, 1721 PIXMAN_r3g3b2, 0x68, 1722 PIXMAN_r3g3b2, 0xb4 1723 }, 1724 { PIXMAN_OP_CONJOINT_OUT, 1725 PIXMAN_a8r8g8b8, 0x200ffff, 1726 PIXMAN_r5g6b5, 0xff86, 1727 PIXMAN_a8r8g8b8, 0x200f300 1728 }, 1729 { PIXMAN_OP_CONJOINT_ATOP, 1730 PIXMAN_a8r8g8b8, 0x18a23ff, 1731 PIXMAN_a2r2g2b2, 0x44, 1732 PIXMAN_a4r4g4b4, 0x205 1733 }, 1734 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1735 PIXMAN_a8r8g8b8, 0x16bff23, 1736 PIXMAN_a8r8g8b8, 0x31fd00ff, 1737 PIXMAN_r3g3b2, 0x7 1738 }, 1739 { PIXMAN_OP_DISJOINT_IN, 1740 PIXMAN_a8r8g8b8, 0x137d1ff, 1741 PIXMAN_a4r4g4b4, 0x56c1, 1742 PIXMAN_r5g6b5, 0x0 1743 }, 1744 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 1745 PIXMAN_a8r8g8b8, 0x1ff5bff, 1746 PIXMAN_a4r4g4b4, 0xfff4, 1747 PIXMAN_a4r4g4b4, 0xf50 1748 }, 1749 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1750 PIXMAN_a8r8g8b8, 0x15c6b00, 1751 PIXMAN_a8r8g8b8, 0x7d008a, 1752 PIXMAN_a4r4g4b4, 0x200 1753 }, 1754 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1755 PIXMAN_a8r8g8b8, 0x12091ff, 1756 PIXMAN_a8r8g8b8, 0xb74cff6b, 1757 PIXMAN_a2r2g2b2, 0x8 1758 }, 1759 { PIXMAN_OP_CONJOINT_ATOP, 1760 PIXMAN_a8r8g8b8, 0x1ff5bff, 1761 PIXMAN_a8r8g8b8, 0xff6ddce8, 1762 PIXMAN_a2r2g2b2, 0x10 1763 }, 1764 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1765 PIXMAN_a8r8g8b8, 0x100ffff, 1766 PIXMAN_a4r4g4b4, 0xffb7, 1767 PIXMAN_a4r4g4b4, 0xb0 1768 }, 1769 { PIXMAN_OP_CONJOINT_IN, 1770 PIXMAN_a8r8g8b8, 0x173ffff, 1771 PIXMAN_r5g6b5, 0xff2c, 1772 PIXMAN_a4r4g4b4, 0x6 1773 }, 1774 { PIXMAN_OP_CONJOINT_IN, 1775 PIXMAN_a8r8g8b8, 0x17102ff, 1776 PIXMAN_a8r8g8b8, 0x955bff66, 1777 PIXMAN_a8r8g8b8, 0x280066 1778 }, 1779 { PIXMAN_OP_DISJOINT_XOR, 1780 PIXMAN_a8r8g8b8, 0x3c7ff24, 1781 PIXMAN_r5g6b5, 0xc4, 1782 PIXMAN_r5g6b5, 0x163 1783 }, 1784 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1785 PIXMAN_a8r8g8b8, 0x100c2a6, 1786 PIXMAN_r5g6b5, 0xa9b9, 1787 PIXMAN_a4r4g4b4, 0x8 1788 }, 1789 { PIXMAN_OP_DISJOINT_XOR, 1790 PIXMAN_a8r8g8b8, 0x26049ff, 1791 PIXMAN_a4r4g4b4, 0xb2, 1792 PIXMAN_r5g6b5, 0x8904 1793 }, 1794 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1795 PIXMAN_a8r8g8b8, 0x2f100ff, 1796 PIXMAN_r3g3b2, 0x30, 1797 PIXMAN_a8r8g8b8, 0x2220100 1798 }, 1799 { PIXMAN_OP_DISJOINT_XOR, 1800 PIXMAN_a8r8g8b8, 0x1ffff88, 1801 PIXMAN_r3g3b2, 0x7e, 1802 PIXMAN_r3g3b2, 0x60 1803 }, 1804 { PIXMAN_OP_DISJOINT_IN, 1805 PIXMAN_a8r8g8b8, 0x153ffab, 1806 PIXMAN_a8r8g8b8, 0xfd10725a, 1807 PIXMAN_r3g3b2, 0x0 1808 }, 1809 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1810 PIXMAN_a8r8g8b8, 0x1ff00d2, 1811 PIXMAN_r5g6b5, 0xff6b, 1812 PIXMAN_a8r8g8b8, 0x101014a 1813 }, 1814 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1815 PIXMAN_a8r8g8b8, 0x100d965, 1816 PIXMAN_a8r8g8b8, 0xff007b00, 1817 PIXMAN_r3g3b2, 0xc 1818 }, 1819 { PIXMAN_OP_DISJOINT_OUT, 1820 PIXMAN_a8r8g8b8, 0x1ec0000, 1821 PIXMAN_r5g6b5, 0x6fff, 1822 PIXMAN_r5g6b5, 0x6000 1823 }, 1824 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1825 PIXMAN_a8r8g8b8, 0x19d59a2, 1826 PIXMAN_a8r8g8b8, 0x4a00ff7a, 1827 PIXMAN_a8r8g8b8, 0x2e1a2f 1828 }, 1829 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1830 PIXMAN_a8r8g8b8, 0x1eb0000, 1831 PIXMAN_a4r4g4b4, 0x72bc, 1832 PIXMAN_r5g6b5, 0x1800 1833 }, 1834 { PIXMAN_OP_DISJOINT_IN, 1835 PIXMAN_a8r8g8b8, 0x100ffff, 1836 PIXMAN_a4r4g4b4, 0xc034, 1837 PIXMAN_a4r4g4b4, 0x0 1838 }, 1839 { PIXMAN_OP_SATURATE, 1840 PIXMAN_a8r8g8b8, 0x195ff15, 1841 PIXMAN_a4r4g4b4, 0xb7b1, 1842 PIXMAN_r5g6b5, 0x4000 1843 }, 1844 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1845 PIXMAN_a8r8g8b8, 0x1ffdf94, 1846 PIXMAN_a4r4g4b4, 0x78, 1847 PIXMAN_r3g3b2, 0xc 1848 }, 1849 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1850 PIXMAN_a8r8g8b8, 0x26f00ff, 1851 PIXMAN_a4r4g4b4, 0xff93, 1852 PIXMAN_r5g6b5, 0x1dd2 1853 }, 1854 { PIXMAN_OP_CONJOINT_IN, 1855 PIXMAN_a8r8g8b8, 0x2ff3fc5, 1856 PIXMAN_r3g3b2, 0x2f, 1857 PIXMAN_a8r8g8b8, 0x240000 1858 }, 1859 { PIXMAN_OP_DISJOINT_IN, 1860 PIXMAN_a8r8g8b8, 0x1ff696e, 1861 PIXMAN_a4r4g4b4, 0x22ff, 1862 PIXMAN_r5g6b5, 0x34d 1863 }, 1864 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1865 PIXMAN_a8r8g8b8, 0x10033d9, 1866 PIXMAN_a8r8g8b8, 0x38650000, 1867 PIXMAN_a8r8g8b8, 0x0 1868 }, 1869 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1870 PIXMAN_a8r8g8b8, 0x2ffff00, 1871 PIXMAN_a4r4g4b4, 0x2070, 1872 PIXMAN_r5g6b5, 0x2100 1873 }, 1874 { PIXMAN_OP_DISJOINT_XOR, 1875 PIXMAN_a8r8g8b8, 0x1008746, 1876 PIXMAN_a8r8g8b8, 0xb56971, 1877 PIXMAN_r5g6b5, 0xc25c 1878 }, 1879 { PIXMAN_OP_DISJOINT_OUT, 1880 PIXMAN_a8r8g8b8, 0x144d200, 1881 PIXMAN_a4r4g4b4, 0xff42, 1882 PIXMAN_r3g3b2, 0x4 1883 }, 1884 { PIXMAN_OP_DISJOINT_XOR, 1885 PIXMAN_a8r8g8b8, 0x1ffffd0, 1886 PIXMAN_r5g6b5, 0x5b00, 1887 PIXMAN_r3g3b2, 0x4c 1888 }, 1889 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1890 PIXMAN_a8r8g8b8, 0x10000ff, 1891 PIXMAN_a8r8g8b8, 0xff006f, 1892 PIXMAN_r5g6b5, 0xd 1893 }, 1894 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1895 PIXMAN_a8r8g8b8, 0x10666ff, 1896 PIXMAN_a4r4g4b4, 0x39b2, 1897 PIXMAN_r5g6b5, 0xa6 1898 }, 1899 { PIXMAN_OP_CONJOINT_OUT, 1900 PIXMAN_a8r8g8b8, 0x11a007d, 1901 PIXMAN_r3g3b2, 0xf9, 1902 PIXMAN_a8r8g8b8, 0x11a0000 1903 }, 1904 { PIXMAN_OP_CONJOINT_ATOP, 1905 PIXMAN_a8r8g8b8, 0x1eb90ee, 1906 PIXMAN_r5g6b5, 0xd, 1907 PIXMAN_a2r2g2b2, 0x1 1908 }, 1909 { PIXMAN_OP_DISJOINT_OUT, 1910 PIXMAN_a8r8g8b8, 0x1ff42d5, 1911 PIXMAN_a4r4g4b4, 0x3400, 1912 PIXMAN_r3g3b2, 0x40 1913 }, 1914 { PIXMAN_OP_DISJOINT_IN, 1915 PIXMAN_a8r8g8b8, 0x1dfff00, 1916 PIXMAN_a8r8g8b8, 0x3ffff9d2, 1917 PIXMAN_r5g6b5, 0x0 1918 }, 1919 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1920 PIXMAN_a8r8g8b8, 0x1ff6500, 1921 PIXMAN_a2r2g2b2, 0x56, 1922 PIXMAN_r3g3b2, 0x44 1923 }, 1924 { PIXMAN_OP_DISJOINT_ATOP, 1925 PIXMAN_a8r8g8b8, 0x119ffe6, 1926 PIXMAN_r3g3b2, 0x8d, 1927 PIXMAN_a4r4g4b4, 0xff00 1928 }, 1929 { PIXMAN_OP_DISJOINT_IN, 1930 PIXMAN_a8r8g8b8, 0x100cd00, 1931 PIXMAN_r5g6b5, 0x33ff, 1932 PIXMAN_a4r4g4b4, 0x0 1933 }, 1934 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1935 PIXMAN_a8r8g8b8, 0x569ffd7, 1936 PIXMAN_r5g6b5, 0x8cc, 1937 PIXMAN_r5g6b5, 0xc0 1938 }, 1939 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1940 PIXMAN_a8r8g8b8, 0x100876a, 1941 PIXMAN_a8r8g8b8, 0x575447a5, 1942 PIXMAN_r5g6b5, 0x164 1943 }, 1944 { PIXMAN_OP_CONJOINT_OUT, 1945 PIXMAN_a8r8g8b8, 0x12d00ff, 1946 PIXMAN_a4r4g4b4, 0x3fff, 1947 PIXMAN_a4r4g4b4, 0x0 1948 }, 1949 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1950 PIXMAN_a8r8g8b8, 0x2ff953b, 1951 PIXMAN_a4r4g4b4, 0x2914, 1952 PIXMAN_r5g6b5, 0x20a1 1953 }, 1954 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 1955 PIXMAN_a8r8g8b8, 0x1ffead4, 1956 PIXMAN_a8r8g8b8, 0xff00ea4e, 1957 PIXMAN_r3g3b2, 0x5a 1958 }, 1959 { PIXMAN_OP_DISJOINT_ATOP, 1960 PIXMAN_a8r8g8b8, 0x1ff6400, 1961 PIXMAN_a2r2g2b2, 0x99, 1962 PIXMAN_r5g6b5, 0xa620 1963 }, 1964 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1965 PIXMAN_a8r8g8b8, 0x17b0084, 1966 PIXMAN_r3g3b2, 0xbd, 1967 PIXMAN_a4r4g4b4, 0x500 1968 }, 1969 { PIXMAN_OP_DISJOINT_XOR, 1970 PIXMAN_a8r8g8b8, 0x4f90bbb, 1971 PIXMAN_a8r8g8b8, 0xff00d21f, 1972 PIXMAN_a8r8g8b8, 0xfb00fc4a 1973 }, 1974 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1975 PIXMAN_a8r8g8b8, 0x1ffbb1d, 1976 PIXMAN_a8r8g8b8, 0x2dff79ff, 1977 PIXMAN_r5g6b5, 0x2c0 1978 }, 1979 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 1980 PIXMAN_a8r8g8b8, 0x100ffff, 1981 PIXMAN_a2r2g2b2, 0x43, 1982 PIXMAN_a4r4g4b4, 0x6f 1983 }, 1984 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 1985 PIXMAN_a8r8g8b8, 0x1f000ff, 1986 PIXMAN_a4r4g4b4, 0xb393, 1987 PIXMAN_r3g3b2, 0x20 1988 }, 1989 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 1990 PIXMAN_a8r8g8b8, 0x1c60020, 1991 PIXMAN_a8r8g8b8, 0x6bffffff, 1992 PIXMAN_a8r8g8b8, 0x0 1993 }, 1994 { PIXMAN_OP_CONJOINT_OUT, 1995 PIXMAN_a8r8g8b8, 0x1727d00, 1996 PIXMAN_a2r2g2b2, 0x67, 1997 PIXMAN_a4r4g4b4, 0x400 1998 }, 1999 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2000 PIXMAN_a8r8g8b8, 0x14a5194, 2001 PIXMAN_a4r4g4b4, 0xd7ff, 2002 PIXMAN_r5g6b5, 0x2000 2003 }, 2004 { PIXMAN_OP_DISJOINT_ATOP, 2005 PIXMAN_a8r8g8b8, 0x20003fa, 2006 PIXMAN_a4r4g4b4, 0x24ff, 2007 PIXMAN_a8r8g8b8, 0xffff1550 2008 }, 2009 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2010 PIXMAN_a8r8g8b8, 0x1a6ff83, 2011 PIXMAN_a4r4g4b4, 0xf400, 2012 PIXMAN_r5g6b5, 0x2800 2013 }, 2014 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2015 PIXMAN_a8r8g8b8, 0x2ffcf00, 2016 PIXMAN_r5g6b5, 0x71ff, 2017 PIXMAN_a4r4g4b4, 0x30 2018 }, 2019 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2020 PIXMAN_a8r8g8b8, 0x333ffff, 2021 PIXMAN_a4r4g4b4, 0x2c00, 2022 PIXMAN_r3g3b2, 0x4 2023 }, 2024 { PIXMAN_OP_DISJOINT_XOR, 2025 PIXMAN_a8r8g8b8, 0x1c2ffe8, 2026 PIXMAN_r5g6b5, 0xc200, 2027 PIXMAN_a8r8g8b8, 0xfeca41ff 2028 }, 2029 { PIXMAN_OP_CONJOINT_ATOP, 2030 PIXMAN_a2r2g2b2, 0x47, 2031 PIXMAN_a8r8g8b8, 0x2ffff00, 2032 PIXMAN_a8r8g8b8, 0x3aa0102 2033 }, 2034 { PIXMAN_OP_DISJOINT_OUT, 2035 PIXMAN_a8r8g8b8, 0x1ffeb00, 2036 PIXMAN_a4r4g4b4, 0xb493, 2037 PIXMAN_a4r4g4b4, 0x400 2038 }, 2039 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2040 PIXMAN_a8r8g8b8, 0x2afffff, 2041 PIXMAN_r5g6b5, 0xcb, 2042 PIXMAN_r5g6b5, 0xc0 2043 }, 2044 { PIXMAN_OP_SATURATE, 2045 PIXMAN_a8r8g8b8, 0x183ff00, 2046 PIXMAN_r3g3b2, 0x87, 2047 PIXMAN_r5g6b5, 0xae91 2048 }, 2049 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2050 PIXMAN_a8r8g8b8, 0x3ffff00, 2051 PIXMAN_a4r4g4b4, 0x2ba4, 2052 PIXMAN_r5g6b5, 0x2100 2053 }, 2054 { PIXMAN_OP_CONJOINT_OUT, 2055 PIXMAN_a8r8g8b8, 0x215cbc2, 2056 PIXMAN_a4r4g4b4, 0xafd3, 2057 PIXMAN_a8r8g8b8, 0x115b000 2058 }, 2059 { PIXMAN_OP_SATURATE, 2060 PIXMAN_a8r8g8b8, 0x1853f65, 2061 PIXMAN_a8r8g8b8, 0xc68cdc41, 2062 PIXMAN_r5g6b5, 0x3 2063 }, 2064 { PIXMAN_OP_CONJOINT_IN, 2065 PIXMAN_a8r8g8b8, 0x3ffff8f, 2066 PIXMAN_a4r4g4b4, 0x8824, 2067 PIXMAN_a4r4g4b4, 0x20 2068 }, 2069 { PIXMAN_OP_DISJOINT_OUT, 2070 PIXMAN_a8r8g8b8, 0x28e08e6, 2071 PIXMAN_a8r8g8b8, 0x2cffff31, 2072 PIXMAN_r5g6b5, 0x1805 2073 }, 2074 { PIXMAN_OP_DISJOINT_IN, 2075 PIXMAN_a8r8g8b8, 0x1b500be, 2076 PIXMAN_r5g6b5, 0xd946, 2077 PIXMAN_r5g6b5, 0x9800 2078 }, 2079 { PIXMAN_OP_DISJOINT_OUT, 2080 PIXMAN_a8r8g8b8, 0x133ffb3, 2081 PIXMAN_a2r2g2b2, 0x42, 2082 PIXMAN_a8r8g8b8, 0x11553c 2083 }, 2084 { PIXMAN_OP_DISJOINT_XOR, 2085 PIXMAN_a8r8g8b8, 0x21aff81, 2086 PIXMAN_r3g3b2, 0xc7, 2087 PIXMAN_r5g6b5, 0x120 2088 }, 2089 { PIXMAN_OP_CONJOINT_ATOP, 2090 PIXMAN_a8r8g8b8, 0x12e004f, 2091 PIXMAN_a4r4g4b4, 0xf617, 2092 PIXMAN_a4r4g4b4, 0x102 2093 }, 2094 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2095 PIXMAN_a8r8g8b8, 0x164861f, 2096 PIXMAN_r3g3b2, 0x4e, 2097 PIXMAN_r5g6b5, 0x19c0 2098 }, 2099 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 2100 PIXMAN_a8r8g8b8, 0x1ff0eff, 2101 PIXMAN_a8r8g8b8, 0xff5c00aa, 2102 PIXMAN_r5g6b5, 0x5800 2103 }, 2104 { PIXMAN_OP_DISJOINT_XOR, 2105 PIXMAN_a8r8g8b8, 0x1e4c60f, 2106 PIXMAN_a8r8g8b8, 0x38ff0e0c, 2107 PIXMAN_a4r4g4b4, 0xff2a 2108 }, 2109 { PIXMAN_OP_DISJOINT_OVER_REVERSE, 2110 PIXMAN_a8r8g8b8, 0x1ff0000, 2111 PIXMAN_a8r8g8b8, 0x9f3d6700, 2112 PIXMAN_r5g6b5, 0xf3ff 2113 }, 2114 { PIXMAN_OP_DISJOINT_IN, 2115 PIXMAN_a8r8g8b8, 0x205ffd0, 2116 PIXMAN_a8r8g8b8, 0xffc22b3b, 2117 PIXMAN_a8r8g8b8, 0x2040000 2118 }, 2119 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2120 PIXMAN_a8r8g8b8, 0x1ff0059, 2121 PIXMAN_r5g6b5, 0x74ff, 2122 PIXMAN_a8r8g8b8, 0x1730101 2123 }, 2124 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 2125 PIXMAN_a8r8g8b8, 0x29affb8, 2126 PIXMAN_r5g6b5, 0xff, 2127 PIXMAN_a8r8g8b8, 0x2d25cff 2128 }, 2129 { PIXMAN_OP_DISJOINT_OUT, 2130 PIXMAN_a8r8g8b8, 0x1ffff8b, 2131 PIXMAN_a4r4g4b4, 0xff7b, 2132 PIXMAN_r5g6b5, 0x3a0 2133 }, 2134 { PIXMAN_OP_DISJOINT_IN, 2135 PIXMAN_a8r8g8b8, 0x2a86ad7, 2136 PIXMAN_a4r4g4b4, 0xdc22, 2137 PIXMAN_a8r8g8b8, 0x2860000 2138 }, 2139 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2140 PIXMAN_a8r8g8b8, 0x3ff00ff, 2141 PIXMAN_r3g3b2, 0x33, 2142 PIXMAN_r5g6b5, 0x2000 2143 }, 2144 { PIXMAN_OP_SATURATE, 2145 PIXMAN_a8r8g8b8, 0x1e50063, 2146 PIXMAN_a8r8g8b8, 0x35ff95d7, 2147 PIXMAN_r3g3b2, 0x20 2148 }, 2149 { PIXMAN_OP_DISJOINT_IN, 2150 PIXMAN_a8r8g8b8, 0x2ffe6ff, 2151 PIXMAN_a8r8g8b8, 0x153ef297, 2152 PIXMAN_r5g6b5, 0x6d2 2153 }, 2154 { PIXMAN_OP_DISJOINT_IN, 2155 PIXMAN_a8r8g8b8, 0x34ffeff, 2156 PIXMAN_a4r4g4b4, 0x2e, 2157 PIXMAN_r5g6b5, 0x1d 2158 }, 2159 { PIXMAN_OP_DISJOINT_XOR, 2160 PIXMAN_a8r8g8b8, 0x2ffeada, 2161 PIXMAN_r5g6b5, 0xabc6, 2162 PIXMAN_a8r8g8b8, 0xfd15b256 2163 }, 2164 { PIXMAN_OP_CONJOINT_ATOP, 2165 PIXMAN_a8r8g8b8, 0x100ff00, 2166 PIXMAN_a8r8g8b8, 0xcff3f32, 2167 PIXMAN_a8r8g8b8, 0x3f00 2168 }, 2169 { PIXMAN_OP_SATURATE, 2170 PIXMAN_a8r8g8b8, 0x1e1b0f1, 2171 PIXMAN_a8r8g8b8, 0xff63ff54, 2172 PIXMAN_r3g3b2, 0x5d 2173 }, 2174 { PIXMAN_OP_DISJOINT_XOR, 2175 PIXMAN_a8r8g8b8, 0x2ffff23, 2176 PIXMAN_a8r8g8b8, 0x380094ff, 2177 PIXMAN_r5g6b5, 0x3a4b 2178 }, 2179 { PIXMAN_OP_CONJOINT_ATOP, 2180 PIXMAN_a4r4g4b4, 0x1000, 2181 PIXMAN_r5g6b5, 0xca, 2182 PIXMAN_a8r8g8b8, 0x3434500 2183 }, 2184 { PIXMAN_OP_DISJOINT_IN, 2185 PIXMAN_a8r8g8b8, 0x195ffe5, 2186 PIXMAN_a4r4g4b4, 0x3a29, 2187 PIXMAN_a8r8g8b8, 0x0 2188 }, 2189 { PIXMAN_OP_DISJOINT_ATOP, 2190 PIXMAN_a8r8g8b8, 0x139007a, 2191 PIXMAN_a4r4g4b4, 0x4979, 2192 PIXMAN_r5g6b5, 0x84 2193 }, 2194 { PIXMAN_OP_SOFT_LIGHT, 2195 PIXMAN_a2r2g2b2, 0xa9, 2196 PIXMAN_a4r4g4b4, 0xfa18, 2197 PIXMAN_a8r8g8b8, 0xabff67ff 2198 }, 2199 { PIXMAN_OP_SOFT_LIGHT, 2200 PIXMAN_a2r2g2b2, 0x94, 2201 PIXMAN_a4r4g4b4, 0x5109, 2202 PIXMAN_a8r8g8b8, 0x3affffff 2203 }, 2204 { PIXMAN_OP_COLOR_BURN, 2205 PIXMAN_r5g6b5, 0xd038, 2206 PIXMAN_r5g6b5, 0xff00, 2207 PIXMAN_r5g6b5, 0xf9a5 2208 }, 2209 { PIXMAN_OP_SOFT_LIGHT, 2210 PIXMAN_a8r8g8b8, 0x543128ff, 2211 PIXMAN_a8r8g8b8, 0x7029ff, 2212 PIXMAN_a8r8g8b8, 0x316b1d7 2213 }, 2214 { PIXMAN_OP_SOFT_LIGHT, 2215 PIXMAN_r5g6b5, 0x53ff, 2216 PIXMAN_r5g6b5, 0x72ff, 2217 PIXMAN_a8r8g8b8, 0xffffdeff 2218 }, 2219 { PIXMAN_OP_SOFT_LIGHT, 2220 PIXMAN_a8r8g8b8, 0x5b00002b, 2221 PIXMAN_a4r4g4b4, 0xc3, 2222 PIXMAN_a8r8g8b8, 0x23530be 2223 }, 2224 { PIXMAN_OP_SOFT_LIGHT, 2225 PIXMAN_a8r8g8b8, 0xcefc0041, 2226 PIXMAN_a8r8g8b8, 0xf60d02, 2227 PIXMAN_a8r8g8b8, 0x1f2ffe5 2228 }, 2229 { PIXMAN_OP_COLOR_DODGE, 2230 PIXMAN_r5g6b5, 0xffdb, 2231 PIXMAN_r5g6b5, 0xc700, 2232 PIXMAN_r5g6b5, 0x654 2233 }, 2234 { PIXMAN_OP_COLOR_DODGE, 2235 PIXMAN_r5g6b5, 0xffc6, 2236 PIXMAN_r5g6b5, 0xff09, 2237 PIXMAN_r5g6b5, 0xfe58 2238 }, 2239 { PIXMAN_OP_SOFT_LIGHT, 2240 PIXMAN_a2r2g2b2, 0x95, 2241 PIXMAN_r5g6b5, 0x1b4a, 2242 PIXMAN_a8r8g8b8, 0xab234cff 2243 }, 2244 { PIXMAN_OP_SOFT_LIGHT, 2245 PIXMAN_a2r2g2b2, 0x95, 2246 PIXMAN_a4r4g4b4, 0x5e99, 2247 PIXMAN_a8r8g8b8, 0x3b1c1cdd 2248 }, 2249 { PIXMAN_OP_COLOR_BURN, 2250 PIXMAN_r5g6b5, 0x22, 2251 PIXMAN_r5g6b5, 0xd00, 2252 PIXMAN_r5g6b5, 0xfbb1 2253 }, 2254 { PIXMAN_OP_COLOR_DODGE, 2255 PIXMAN_r5g6b5, 0xffc8, 2256 PIXMAN_a8r8g8b8, 0xa1a3ffff, 2257 PIXMAN_r5g6b5, 0x44a 2258 }, 2259 { PIXMAN_OP_SOFT_LIGHT, 2260 PIXMAN_a8r8g8b8, 0xffff7cff, 2261 PIXMAN_r5g6b5, 0x900, 2262 PIXMAN_a8r8g8b8, 0xffff94ec 2263 }, 2264 { PIXMAN_OP_SOFT_LIGHT, 2265 PIXMAN_a2r2g2b2, 0xa7, 2266 PIXMAN_r5g6b5, 0xff, 2267 PIXMAN_a8r8g8b8, 0xaa00cffe 2268 }, 2269 { PIXMAN_OP_SOFT_LIGHT, 2270 PIXMAN_a2r2g2b2, 0x85, 2271 PIXMAN_r5g6b5, 0xffb3, 2272 PIXMAN_a8r8g8b8, 0xaaffff4a 2273 }, 2274 { PIXMAN_OP_SOFT_LIGHT, 2275 PIXMAN_a8r8g8b8, 0x3500a118, 2276 PIXMAN_a4r4g4b4, 0x9942, 2277 PIXMAN_a8r8g8b8, 0x01ff405e 2278 }, 2279 { PIXMAN_OP_SOFT_LIGHT, 2280 PIXMAN_a2r2g2b2, 0xb5, 2281 PIXMAN_x4a4, 0xe, 2282 PIXMAN_a8r8g8b8, 0xffbaff 2283 }, 2284 { PIXMAN_OP_SOFT_LIGHT, 2285 PIXMAN_a4r4g4b4, 0xe872, 2286 PIXMAN_x2r10g10b10, 0xa648ff00, 2287 PIXMAN_a2r10g10b10, 0x14ff00e8, 2288 }, 2289 { PIXMAN_OP_SATURATE, 2290 PIXMAN_a8r8g8b8, 0x4d2db34, 2291 PIXMAN_a8, 0x19, 2292 PIXMAN_r5g6b5, 0x9700, 2293 }, 2294 { PIXMAN_OP_SATURATE, 2295 PIXMAN_a8r8g8b8, 0x2ff0076, 2296 PIXMAN_a8r8g8b8, 0x2a0000, 2297 PIXMAN_r3g3b2, 0x0, 2298 }, 2299 { PIXMAN_OP_CONJOINT_OVER_REVERSE, 2300 PIXMAN_a8r8g8b8, 0x14f00ff, 2301 PIXMAN_r5g6b5, 0xd48, 2302 PIXMAN_a4r4g4b4, 0x0, 2303 }, 2304 { PIXMAN_OP_CONJOINT_OUT, 2305 PIXMAN_a8r8g8b8, 0x3d8bbff, 2306 PIXMAN_r5g6b5, 0x6900, 2307 PIXMAN_a8r8g8b8, 0x0, 2308 }, 2309 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2310 PIXMAN_a8r8g8b8, 0x2ff00ff, 2311 PIXMAN_a4r4g4b4, 0x2300, 2312 PIXMAN_r3g3b2, 0x0, 2313 }, 2314 { PIXMAN_OP_SATURATE, 2315 PIXMAN_a8r8g8b8, 0x4d2db34, 2316 PIXMAN_a8r8g8b8, 0xff0019ff, 2317 PIXMAN_r5g6b5, 0x9700, 2318 }, 2319 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2320 PIXMAN_a8r8g8b8, 0x100ac05, 2321 PIXMAN_r3g3b2, 0xef, 2322 PIXMAN_a2r2g2b2, 0xff, 2323 }, 2324 { PIXMAN_OP_EXCLUSION, 2325 PIXMAN_a2r2g2b2, 0xbf, 2326 PIXMAN_null, 0x00, 2327 PIXMAN_r5g6b5, 0x7e 2328 }, 2329 { PIXMAN_OP_DIFFERENCE, 2330 PIXMAN_r5g6b5, 0xffff, 2331 PIXMAN_null, 0x00, 2332 PIXMAN_a2r2g2b2, 0x33 2333 }, 2334 { PIXMAN_OP_HARD_LIGHT, 2335 PIXMAN_a8r8g8b8, 0x84c4ffd7, 2336 PIXMAN_null, 0x00, 2337 PIXMAN_a8r8g8b8, 0xffddff 2338 }, 2339 { PIXMAN_OP_EXCLUSION, 2340 PIXMAN_a8r8g8b8, 0xff6e56, 2341 PIXMAN_null, 0x00, 2342 PIXMAN_a8r8g8b8, 0x20ff1ade 2343 }, 2344 { PIXMAN_OP_OVERLAY, 2345 PIXMAN_a4r4g4b4, 0xfe0, 2346 PIXMAN_null, 0x00, 2347 PIXMAN_a4r4g4b4, 0xbdff 2348 }, 2349 { PIXMAN_OP_SCREEN, 2350 PIXMAN_a8r8g8b8, 0x9671ff, 2351 PIXMAN_null, 0x00, 2352 PIXMAN_a2r2g2b2, 0x43 2353 }, 2354 { PIXMAN_OP_EXCLUSION, 2355 PIXMAN_a2r2g2b2, 0xff, 2356 PIXMAN_null, 0x00, 2357 PIXMAN_a4r4g4b4, 0x39ff 2358 }, 2359 { PIXMAN_OP_EXCLUSION, 2360 PIXMAN_r5g6b5, 0xffff, 2361 PIXMAN_null, 0x00, 2362 PIXMAN_a4r4g4b4, 0x1968 2363 }, 2364 { PIXMAN_OP_EXCLUSION, 2365 PIXMAN_a4r4g4b4, 0x4247, 2366 PIXMAN_null, 0x00, 2367 PIXMAN_a8r8g8b8, 0xd8ffff 2368 }, 2369 { PIXMAN_OP_EXCLUSION, 2370 PIXMAN_r5g6b5, 0xff00, 2371 PIXMAN_null, 0x00, 2372 PIXMAN_a2r2g2b2, 0x79 2373 }, 2374 { PIXMAN_OP_DIFFERENCE, 2375 PIXMAN_r3g3b2, 0xe0, 2376 PIXMAN_null, 0x00, 2377 PIXMAN_a2r2g2b2, 0x39 2378 }, 2379 { PIXMAN_OP_EXCLUSION, 2380 PIXMAN_a8r8g8b8, 0xfff8, 2381 PIXMAN_null, 0x00, 2382 PIXMAN_r3g3b2, 0xff 2383 }, 2384 { PIXMAN_OP_COLOR_DODGE, 2385 PIXMAN_r5g6b5, 0x75fc, 2386 PIXMAN_null, 0x00, 2387 PIXMAN_r5g6b5, 0x11ff, 2388 }, 2389 { PIXMAN_OP_COLOR_BURN, 2390 PIXMAN_r3g3b2, 0x52, 2391 PIXMAN_null, 0x00, 2392 PIXMAN_r5g6b5, 0xc627 2393 }, 2394 { PIXMAN_OP_HARD_LIGHT, 2395 PIXMAN_r5g6b5, 0x9f2b, 2396 PIXMAN_null, 0x00, 2397 PIXMAN_a8r8g8b8, 0x4b00e7f5 2398 }, 2399 { PIXMAN_OP_OVERLAY, 2400 PIXMAN_a8r8g8b8, 0x00dfff5c, 2401 PIXMAN_null, 0x00, 2402 PIXMAN_r5g6b5, 0x5e0f, 2403 }, 2404 { PIXMAN_OP_COLOR_BURN, 2405 PIXMAN_a8r8g8b8, 0xff00121b, 2406 PIXMAN_null, 0x00, 2407 PIXMAN_r5g6b5, 0x3776 2408 }, 2409 { PIXMAN_OP_SOFT_LIGHT, 2410 PIXMAN_r5g6b5, 0x03e0, 2411 PIXMAN_null, 0x00, 2412 PIXMAN_a8r8g8b8, 0x01003c00, 2413 }, 2414 { PIXMAN_OP_OVER, 2415 PIXMAN_a8r8g8b8, 0x0f00c300, 2416 PIXMAN_null, 0x00, 2417 PIXMAN_x14r6g6b6, 0x003c0, 2418 }, 2419 { PIXMAN_OP_DISJOINT_XOR, 2420 PIXMAN_a4r4g4b4, 0xd0c0, 2421 PIXMAN_null, 0x00, 2422 PIXMAN_a8r8g8b8, 0x5300ea00, 2423 }, 2424 { PIXMAN_OP_OVER, 2425 PIXMAN_a8r8g8b8, 0x20c6bf00, 2426 PIXMAN_null, 0x00, 2427 PIXMAN_r5g6b5, 0xb9ff 2428 }, 2429 { PIXMAN_OP_OVER, 2430 PIXMAN_a8r8g8b8, 0x204ac7ff, 2431 PIXMAN_null, 0x00, 2432 PIXMAN_r5g6b5, 0xc1ff 2433 }, 2434 { PIXMAN_OP_OVER_REVERSE, 2435 PIXMAN_r5g6b5, 0xffc3, 2436 PIXMAN_null, 0x00, 2437 PIXMAN_a8r8g8b8, 0x102d00dd 2438 }, 2439 { PIXMAN_OP_OVER_REVERSE, 2440 PIXMAN_r5g6b5, 0x1f00, 2441 PIXMAN_null, 0x00, 2442 PIXMAN_a8r8g8b8, 0x1bdf0c89 2443 }, 2444 { PIXMAN_OP_OVER_REVERSE, 2445 PIXMAN_r5g6b5, 0xf9d2, 2446 PIXMAN_null, 0x00, 2447 PIXMAN_a8r8g8b8, 0x1076bcf7 2448 }, 2449 { PIXMAN_OP_OVER_REVERSE, 2450 PIXMAN_r5g6b5, 0x00c3, 2451 PIXMAN_null, 0x00, 2452 PIXMAN_a8r8g8b8, 0x1bfe9ae5 2453 }, 2454 { PIXMAN_OP_OVER_REVERSE, 2455 PIXMAN_r5g6b5, 0x09ff, 2456 PIXMAN_null, 0x00, 2457 PIXMAN_a8r8g8b8, 0x0b00c16c 2458 }, 2459 { PIXMAN_OP_DISJOINT_ATOP, 2460 PIXMAN_a2r2g2b2, 0xbc, 2461 PIXMAN_null, 0x00, 2462 PIXMAN_a8r8g8b8, 0x9efff1ff 2463 }, 2464 { PIXMAN_OP_DISJOINT_ATOP, 2465 PIXMAN_a4r4g4b4, 0xae5f, 2466 PIXMAN_null, 0x00, 2467 PIXMAN_a8r8g8b8, 0xf215b675 2468 }, 2469 { PIXMAN_OP_DISJOINT_ATOP_REVERSE, 2470 PIXMAN_a8r8g8b8, 0xce007980, 2471 PIXMAN_null, 0x00, 2472 PIXMAN_a8r8g8b8, 0x80ffe4ad 2473 }, 2474 { PIXMAN_OP_DISJOINT_XOR, 2475 PIXMAN_a8r8g8b8, 0xb8b07bea, 2476 PIXMAN_null, 0x00, 2477 PIXMAN_a4r4g4b4, 0x939c 2478 }, 2479 { PIXMAN_OP_CONJOINT_ATOP_REVERSE, 2480 PIXMAN_r5g6b5, 0x0063, 2481 PIXMAN_null, 0x00, 2482 PIXMAN_a8r8g8b8, 0x10bb1ed7, 2483 }, 2484 { PIXMAN_OP_EXCLUSION, 2485 PIXMAN_a2r2g2b2, 0xbf, 2486 PIXMAN_null, 0x00, 2487 PIXMAN_r5g6b5, 0x7e 2488 }, 2489 { PIXMAN_OP_LIGHTEN, 2490 PIXMAN_a8r8g8b8, 0xffffff, 2491 PIXMAN_null, 0x00, 2492 PIXMAN_a8r8g8b8, 0xff3fffff 2493 }, 2494 { PIXMAN_OP_SOFT_LIGHT, 2495 PIXMAN_r3g3b2, 0x38, 2496 PIXMAN_null, 0x00, 2497 PIXMAN_a2r2g2b2, 0x5b 2498 }, 2499 { PIXMAN_OP_COLOR_DODGE, 2500 PIXMAN_a8r8g8b8, 0x2e9effff, 2501 PIXMAN_null, 0x00, 2502 PIXMAN_a2r2g2b2, 0x77 2503 }, 2504 { PIXMAN_OP_DIFFERENCE, 2505 PIXMAN_r5g6b5, 0xffff, 2506 PIXMAN_null, 0x00, 2507 PIXMAN_a2r2g2b2, 0x33 2508 }, 2509 { PIXMAN_OP_OVERLAY, 2510 PIXMAN_a8r8g8b8, 0xd0089ff, 2511 PIXMAN_null, 0x00, 2512 PIXMAN_r3g3b2, 0xb1 2513 }, 2514 { PIXMAN_OP_OVERLAY, 2515 PIXMAN_r3g3b2, 0x8a, 2516 PIXMAN_null, 0x00, 2517 PIXMAN_a8r8g8b8, 0xcd0004 2518 }, 2519 { PIXMAN_OP_COLOR_BURN, 2520 PIXMAN_a8r8g8b8, 0xffff1e3a, 2521 PIXMAN_null, 0x00, 2522 PIXMAN_a4r4g4b4, 0xcf00 2523 }, 2524 { PIXMAN_OP_HARD_LIGHT, 2525 PIXMAN_a8r8g8b8, 0x84c4ffd7, 2526 PIXMAN_null, 0x00, 2527 PIXMAN_a8r8g8b8, 0xffddff 2528 }, 2529 { PIXMAN_OP_DIFFERENCE, 2530 PIXMAN_a4r4g4b4, 0xfd75, 2531 PIXMAN_null, 0x00, 2532 PIXMAN_a2r2g2b2, 0x7f 2533 }, 2534 { PIXMAN_OP_LIGHTEN, 2535 PIXMAN_r3g3b2, 0xff, 2536 PIXMAN_null, 0x00, 2537 PIXMAN_a4r4g4b4, 0x63ff 2538 }, 2539 { PIXMAN_OP_EXCLUSION, 2540 PIXMAN_a8r8g8b8, 0xff6e56, 2541 PIXMAN_null, 0x00, 2542 PIXMAN_a8r8g8b8, 0x20ff1ade 2543 }, 2544 { PIXMAN_OP_OVERLAY, 2545 PIXMAN_a4r4g4b4, 0xfe0, 2546 PIXMAN_null, 0x00, 2547 PIXMAN_a4r4g4b4, 0xbdff 2548 }, 2549 { PIXMAN_OP_OVERLAY, 2550 PIXMAN_r5g6b5, 0x9799, 2551 PIXMAN_null, 0x00, 2552 PIXMAN_a4r4g4b4, 0x8d 2553 }, 2554 { PIXMAN_OP_HARD_LIGHT, 2555 PIXMAN_a8r8g8b8, 0xe8ff1c33, 2556 PIXMAN_null, 0x00, 2557 PIXMAN_r5g6b5, 0x6200 2558 }, 2559 { PIXMAN_OP_DIFFERENCE, 2560 PIXMAN_a8r8g8b8, 0x22ffffff, 2561 PIXMAN_null, 0x00, 2562 PIXMAN_a2r2g2b2, 0x63 2563 }, 2564 { PIXMAN_OP_SCREEN, 2565 PIXMAN_a8r8g8b8, 0x9671ff, 2566 PIXMAN_null, 0x00, 2567 PIXMAN_a2r2g2b2, 0x43 2568 }, 2569 { PIXMAN_OP_LIGHTEN, 2570 PIXMAN_a2r2g2b2, 0x83, 2571 PIXMAN_null, 0x00, 2572 PIXMAN_r5g6b5, 0xff 2573 }, 2574 { PIXMAN_OP_OVERLAY, 2575 PIXMAN_r3g3b2, 0x0, 2576 PIXMAN_null, 0x00, 2577 PIXMAN_a2r2g2b2, 0x97 2578 }, 2579 { PIXMAN_OP_SOFT_LIGHT, 2580 PIXMAN_r5g6b5, 0xb900, 2581 PIXMAN_null, 0x00, 2582 PIXMAN_a8r8g8b8, 0x6800ff00 2583 }, 2584 { PIXMAN_OP_OVERLAY, 2585 PIXMAN_a4r4g4b4, 0xff, 2586 PIXMAN_null, 0x00, 2587 PIXMAN_r3g3b2, 0x8e 2588 }, 2589 { PIXMAN_OP_SOFT_LIGHT, 2590 PIXMAN_a4r4g4b4, 0xff00, 2591 PIXMAN_null, 0x00, 2592 PIXMAN_a2r2g2b2, 0xbc 2593 }, 2594 { PIXMAN_OP_DIFFERENCE, 2595 PIXMAN_r5g6b5, 0xfffe, 2596 PIXMAN_null, 0x00, 2597 PIXMAN_a4r4g4b4, 0x90 2598 }, 2599 { PIXMAN_OP_LIGHTEN, 2600 PIXMAN_r3g3b2, 0xff, 2601 PIXMAN_null, 0x00, 2602 PIXMAN_a8r8g8b8, 0xc35f 2603 }, 2604 { PIXMAN_OP_EXCLUSION, 2605 PIXMAN_a2r2g2b2, 0xff, 2606 PIXMAN_null, 0x00, 2607 PIXMAN_a4r4g4b4, 0x39ff 2608 }, 2609 { PIXMAN_OP_LIGHTEN, 2610 PIXMAN_a2r2g2b2, 0x1e, 2611 PIXMAN_null, 0x00, 2612 PIXMAN_a4r4g4b4, 0xbaff 2613 }, 2614 { PIXMAN_OP_LIGHTEN, 2615 PIXMAN_a8r8g8b8, 0xb4ffff26, 2616 PIXMAN_null, 0x00, 2617 PIXMAN_r5g6b5, 0xff 2618 }, 2619 { PIXMAN_OP_COLOR_DODGE, 2620 PIXMAN_a4r4g4b4, 0xe3ff, 2621 PIXMAN_null, 0x00, 2622 PIXMAN_a4r4g4b4, 0x878b 2623 }, 2624 { PIXMAN_OP_OVERLAY, 2625 PIXMAN_a8r8g8b8, 0xff700044, 2626 PIXMAN_null, 0x00, 2627 PIXMAN_a2r2g2b2, 0x6 2628 }, 2629 { PIXMAN_OP_DARKEN, 2630 PIXMAN_a2r2g2b2, 0xb6, 2631 PIXMAN_null, 0x00, 2632 PIXMAN_a4r4g4b4, 0xcd00 2633 }, 2634 { PIXMAN_OP_HARD_LIGHT, 2635 PIXMAN_a2r2g2b2, 0xfe, 2636 PIXMAN_null, 0x00, 2637 PIXMAN_a2r2g2b2, 0x12 2638 }, 2639 { PIXMAN_OP_LIGHTEN, 2640 PIXMAN_a8r8g8b8, 0xb1ff006c, 2641 PIXMAN_null, 0x00, 2642 PIXMAN_a4r4g4b4, 0xff7c 2643 }, 2644 { PIXMAN_OP_HARD_LIGHT, 2645 PIXMAN_r3g3b2, 0x4e, 2646 PIXMAN_null, 0x00, 2647 PIXMAN_a2r2g2b2, 0x3c 2648 }, 2649 { PIXMAN_OP_EXCLUSION, 2650 PIXMAN_r5g6b5, 0xffff, 2651 PIXMAN_null, 0x00, 2652 PIXMAN_a4r4g4b4, 0x1968 2653 }, 2654 { PIXMAN_OP_COLOR_BURN, 2655 PIXMAN_r3g3b2, 0xe7, 2656 PIXMAN_null, 0x00, 2657 PIXMAN_a8r8g8b8, 0x8cced6ac 2658 }, 2659 { PIXMAN_OP_SOFT_LIGHT, 2660 PIXMAN_a4r4g4b4, 0xa500, 2661 PIXMAN_null, 0x00, 2662 PIXMAN_a8r8g8b8, 0x1bff009d 2663 }, 2664 { PIXMAN_OP_DIFFERENCE, 2665 PIXMAN_r5g6b5, 0x45ff, 2666 PIXMAN_null, 0x00, 2667 PIXMAN_a2r2g2b2, 0x32 2668 }, 2669 { PIXMAN_OP_OVERLAY, 2670 PIXMAN_a2r2g2b2, 0x18, 2671 PIXMAN_null, 0x00, 2672 PIXMAN_r5g6b5, 0xdc00 2673 }, 2674 { PIXMAN_OP_EXCLUSION, 2675 PIXMAN_a4r4g4b4, 0x4247, 2676 PIXMAN_null, 0x00, 2677 PIXMAN_a8r8g8b8, 0xd8ffff 2678 }, 2679 { PIXMAN_OP_EXCLUSION, 2680 PIXMAN_r5g6b5, 0xff00, 2681 PIXMAN_null, 0x00, 2682 PIXMAN_a2r2g2b2, 0x79 2683 }, 2684 { PIXMAN_OP_COLOR_BURN, 2685 PIXMAN_r3g3b2, 0xf, 2686 PIXMAN_null, 0x00, 2687 PIXMAN_a8r8g8b8, 0x9fff00ff 2688 }, 2689 { PIXMAN_OP_EXCLUSION, 2690 PIXMAN_a2r2g2b2, 0x93, 2691 PIXMAN_null, 0x00, 2692 PIXMAN_a4r4g4b4, 0xff 2693 }, 2694 { PIXMAN_OP_LIGHTEN, 2695 PIXMAN_a2r2g2b2, 0xa3, 2696 PIXMAN_null, 0x00, 2697 PIXMAN_r3g3b2, 0xca 2698 }, 2699 { PIXMAN_OP_DIFFERENCE, 2700 PIXMAN_r3g3b2, 0xe0, 2701 PIXMAN_null, 0x00, 2702 PIXMAN_a2r2g2b2, 0x39 2703 }, 2704 { PIXMAN_OP_HARD_LIGHT, 2705 PIXMAN_r3g3b2, 0x16, 2706 PIXMAN_null, 0x00, 2707 PIXMAN_a8r8g8b8, 0x98ffff 2708 }, 2709 { PIXMAN_OP_LIGHTEN, 2710 PIXMAN_r3g3b2, 0x96, 2711 PIXMAN_null, 0x00, 2712 PIXMAN_a8r8g8b8, 0x225f6c 2713 }, 2714 { PIXMAN_OP_HARD_LIGHT, 2715 PIXMAN_a4r4g4b4, 0x12c7, 2716 PIXMAN_null, 0x00, 2717 PIXMAN_a4r4g4b4, 0xb100 2718 }, 2719 { PIXMAN_OP_LIGHTEN, 2720 PIXMAN_a8r8g8b8, 0xffda91, 2721 PIXMAN_null, 0x00, 2722 PIXMAN_r3g3b2, 0x6a 2723 }, 2724 { PIXMAN_OP_EXCLUSION, 2725 PIXMAN_a8r8g8b8, 0xfff8, 2726 PIXMAN_null, 0x00, 2727 PIXMAN_r3g3b2, 0xff 2728 }, 2729 { PIXMAN_OP_SOFT_LIGHT, 2730 PIXMAN_a2r2g2b2, 0xff, 2731 PIXMAN_null, 0x00, 2732 PIXMAN_a8r8g8b8, 0xf0ff48ca 2733 }, 2734 { PIXMAN_OP_HARD_LIGHT, 2735 PIXMAN_r5g6b5, 0xf1ff, 2736 PIXMAN_r5g6b5, 0x6eff, 2737 PIXMAN_a8r8g8b8, 0xffffff, 2738 }, 2739 { PIXMAN_OP_HARD_LIGHT, 2740 PIXMAN_r5g6b5, 0xf1ff, 2741 PIXMAN_a8, 0xdf, 2742 PIXMAN_a8r8g8b8, 0xffffff, 2743 }, 2744 { PIXMAN_OP_HARD_LIGHT, 2745 PIXMAN_r5g6b5, 0xf1ff, 2746 PIXMAN_null, 0x00, 2747 PIXMAN_a8r8g8b8, 0xffffff, 2748 }, 2749 { PIXMAN_OP_HARD_LIGHT, 2750 PIXMAN_r5g6b5, 0xb867, 2751 PIXMAN_a4r4g4b4, 0x82d9, 2752 PIXMAN_a8r8g8b8, 0xffc5, 2753 }, 2754 { PIXMAN_OP_HARD_LIGHT, 2755 PIXMAN_r5g6b5, 0xa9f5, 2756 PIXMAN_r5g6b5, 0xadff, 2757 PIXMAN_a8r8g8b8, 0xffff00, 2758 }, 2759 { PIXMAN_OP_HARD_LIGHT, 2760 PIXMAN_r5g6b5, 0x4900, 2761 PIXMAN_r5g6b5, 0x865c, 2762 PIXMAN_a8r8g8b8, 0xebff, 2763 }, 2764 { PIXMAN_OP_HARD_LIGHT, 2765 PIXMAN_r5g6b5, 0xd9ff, 2766 PIXMAN_a8r8g8b8, 0xffffffff, 2767 PIXMAN_a8r8g8b8, 0x8ff0d, 2768 }, 2769 { PIXMAN_OP_HARD_LIGHT, 2770 PIXMAN_r5g6b5, 0x41ff, 2771 PIXMAN_a4r4g4b4, 0xcff, 2772 PIXMAN_a8r8g8b8, 0xe1ff00, 2773 }, 2774 { PIXMAN_OP_HARD_LIGHT, 2775 PIXMAN_r5g6b5, 0x91ff, 2776 PIXMAN_a2r2g2b2, 0xf3, 2777 PIXMAN_a8r8g8b8, 0xe4ffb4, 2778 }, 2779 { PIXMAN_OP_HARD_LIGHT, 2780 PIXMAN_r5g6b5, 0xb9ff, 2781 PIXMAN_a2r2g2b2, 0xff, 2782 PIXMAN_a8r8g8b8, 0xffff, 2783 }, 2784 { PIXMAN_OP_OVERLAY, 2785 PIXMAN_a8r8g8b8, 0x473affff, 2786 PIXMAN_r5g6b5, 0x2b00, 2787 PIXMAN_r5g6b5, 0x1ff, 2788 }, 2789 { PIXMAN_OP_OVERLAY, 2790 PIXMAN_a8r8g8b8, 0xe4ff, 2791 PIXMAN_r3g3b2, 0xff, 2792 PIXMAN_r5g6b5, 0x89ff, 2793 }, 2794}; 2795 2796static void 2797fill (pixman_image_t *image, uint32_t pixel) 2798{ 2799 uint8_t *data = (uint8_t *)pixman_image_get_data (image); 2800 int bytes_per_pixel = PIXMAN_FORMAT_BPP (pixman_image_get_format (image)) / 8; 2801 int n_bytes = pixman_image_get_stride (image) * pixman_image_get_height (image); 2802 int i; 2803 2804 switch (bytes_per_pixel) 2805 { 2806 case 4: 2807 for (i = 0; i < n_bytes / 4; ++i) 2808 ((uint32_t *)data)[i] = pixel; 2809 break; 2810 2811 case 2: 2812 pixel &= 0xffff; 2813 for (i = 0; i < n_bytes / 2; ++i) 2814 ((uint16_t *)data)[i] = pixel; 2815 break; 2816 2817 case 1: 2818 pixel &= 0xff; 2819 for (i = 0; i < n_bytes; ++i) 2820 ((uint8_t *)data)[i] = pixel; 2821 break; 2822 2823 default: 2824 assert (0); 2825 break; 2826 } 2827} 2828 2829static uint32_t 2830access (pixman_image_t *image, int x, int y) 2831{ 2832 int bytes_per_pixel; 2833 int stride; 2834 uint32_t result; 2835 uint8_t *location; 2836 2837 if (x < 0 || x >= image->bits.width || y < 0 || y >= image->bits.height) 2838 return 0; 2839 2840 bytes_per_pixel = PIXMAN_FORMAT_BPP (image->bits.format) / 8; 2841 stride = image->bits.rowstride * 4; 2842 2843 location = (uint8_t *)image->bits.bits + y * stride + x * bytes_per_pixel; 2844 2845 if (bytes_per_pixel == 4) 2846 result = *(uint32_t *)location; 2847 else if (bytes_per_pixel == 2) 2848 result = *(uint16_t *)location; 2849 else if (bytes_per_pixel == 1) 2850 result = *(uint8_t *)location; 2851 else 2852 assert (0); 2853 2854 return result; 2855} 2856 2857static pixman_bool_t 2858verify (int test_no, const pixel_combination_t *combination, int size, 2859 pixman_bool_t component_alpha) 2860{ 2861 pixman_image_t *src, *mask, *dest; 2862 pixel_checker_t src_checker, mask_checker, dest_checker; 2863 color_t source_color, mask_color, dest_color, reference_color; 2864 pixman_bool_t have_mask = (combination->mask_format != PIXMAN_null); 2865 pixman_bool_t result = TRUE; 2866 int i, j; 2867 2868 /* Compute reference color */ 2869 pixel_checker_init (&src_checker, combination->src_format); 2870 if (have_mask) 2871 pixel_checker_init (&mask_checker, combination->mask_format); 2872 pixel_checker_init (&dest_checker, combination->dest_format); 2873 2874 pixel_checker_convert_pixel_to_color ( 2875 &src_checker, combination->src_pixel, &source_color); 2876 if (combination->mask_format != PIXMAN_null) 2877 { 2878 pixel_checker_convert_pixel_to_color ( 2879 &mask_checker, combination->mask_pixel, &mask_color); 2880 } 2881 pixel_checker_convert_pixel_to_color ( 2882 &dest_checker, combination->dest_pixel, &dest_color); 2883 2884 do_composite (combination->op, 2885 &source_color, 2886 have_mask? &mask_color : NULL, 2887 &dest_color, 2888 &reference_color, component_alpha); 2889 2890 src = pixman_image_create_bits ( 2891 combination->src_format, size, size, NULL, -1); 2892 if (have_mask) 2893 { 2894 mask = pixman_image_create_bits ( 2895 combination->mask_format, size, size, NULL, -1); 2896 2897 pixman_image_set_component_alpha (mask, component_alpha); 2898 } 2899 dest = pixman_image_create_bits ( 2900 combination->dest_format, size, size, NULL, -1); 2901 2902 fill (src, combination->src_pixel); 2903 if (have_mask) 2904 fill (mask, combination->mask_pixel); 2905 fill (dest, combination->dest_pixel); 2906 2907 pixman_image_composite32 ( 2908 combination->op, src, 2909 have_mask ? mask : NULL, 2910 dest, 0, 0, 0, 0, 0, 0, size, size); 2911 2912 for (j = 0; j < size; ++j) 2913 { 2914 for (i = 0; i < size; ++i) 2915 { 2916 uint32_t computed = access (dest, i, j); 2917 int32_t a, r, g, b; 2918 2919 if (!pixel_checker_check (&dest_checker, computed, &reference_color)) 2920 { 2921 printf ("----------- Test %d failed ----------\n", test_no); 2922 2923 printf (" operator: %s (%s)\n", operator_name (combination->op), 2924 have_mask? component_alpha ? "component alpha" : "unified alpha" : "no mask"); 2925 printf (" src format: %s\n", format_name (combination->src_format)); 2926 if (have_mask != PIXMAN_null) 2927 printf (" mask format: %s\n", format_name (combination->mask_format)); 2928 printf (" dest format: %s\n", format_name (combination->dest_format)); 2929 2930 printf (" - source ARGB: %f %f %f %f (pixel: %8x)\n", 2931 source_color.a, source_color.r, source_color.g, source_color.b, 2932 combination->src_pixel); 2933 pixel_checker_split_pixel (&src_checker, combination->src_pixel, 2934 &a, &r, &g, &b); 2935 printf (" %8d %8d %8d %8d\n", a, r, g, b); 2936 2937 if (have_mask) 2938 { 2939 printf (" - mask ARGB: %f %f %f %f (pixel: %8x)\n", 2940 mask_color.a, mask_color.r, mask_color.g, mask_color.b, 2941 combination->mask_pixel); 2942 pixel_checker_split_pixel (&mask_checker, combination->mask_pixel, 2943 &a, &r, &g, &b); 2944 printf (" %8d %8d %8d %8d\n", a, r, g, b); 2945 } 2946 2947 printf (" - dest ARGB: %f %f %f %f (pixel: %8x)\n", 2948 dest_color.a, dest_color.r, dest_color.g, dest_color.b, 2949 combination->dest_pixel); 2950 pixel_checker_split_pixel (&dest_checker, combination->dest_pixel, 2951 &a, &r, &g, &b); 2952 printf (" %8d %8d %8d %8d\n", a, r, g, b); 2953 2954 pixel_checker_split_pixel (&dest_checker, computed, &a, &r, &g, &b); 2955 printf (" - expected ARGB: %f %f %f %f\n", 2956 reference_color.a, reference_color.r, reference_color.g, reference_color.b); 2957 2958 pixel_checker_get_min (&dest_checker, &reference_color, &a, &r, &g, &b); 2959 printf (" min acceptable: %8d %8d %8d %8d\n", a, r, g, b); 2960 2961 pixel_checker_split_pixel (&dest_checker, computed, &a, &r, &g, &b); 2962 printf (" got: %8d %8d %8d %8d (pixel: %8x)\n", a, r, g, b, computed); 2963 2964 pixel_checker_get_max (&dest_checker, &reference_color, &a, &r, &g, &b); 2965 printf (" max acceptable: %8d %8d %8d %8d\n", a, r, g, b); 2966 2967 result = FALSE; 2968 goto done; 2969 } 2970 } 2971 } 2972 2973done: 2974 pixman_image_unref (src); 2975 pixman_image_unref (dest); 2976 2977 if (have_mask && mask != NULL) 2978 pixman_image_unref (mask); 2979 2980 return result; 2981} 2982 2983int 2984main (int argc, char **argv) 2985{ 2986 int result = 0; 2987 int i, j; 2988 int lo, hi; 2989 2990 if (argc > 1) 2991 { 2992 lo = atoi (argv[1]); 2993 hi = lo + 1; 2994 } 2995 else 2996 { 2997 lo = 0; 2998 hi = ARRAY_LENGTH (regressions); 2999 } 3000 3001 for (i = lo; i < hi; ++i) 3002 { 3003 const pixel_combination_t *combination = &(regressions[i]); 3004 3005 for (j = 1; j < 34; ++j) 3006 { 3007 int k, ca; 3008 3009 ca = combination->mask_format == PIXMAN_null ? 1 : 2; 3010 3011 for (k = 0; k < ca; ++k) 3012 { 3013 if (!verify (i, combination, j, k)) 3014 { 3015 result = 1; 3016 goto next_regression; 3017 } 3018 } 3019 } 3020 3021 next_regression: 3022 ; 3023 } 3024 3025 return result; 3026} 3027