| 477 | } |
| 478 | |
| 479 | DynamicFormat Bitmap::ChooseFormat(const DynamicFormat& format) { |
| 480 | uint32_t amask; |
| 481 | amask = (format.a.mask == 0) |
| 482 | ? ((~0U >> (32 - format.bits)) ^ (format.r.mask | format.g.mask | format.b.mask)) |
| 483 | : format.a.mask; |
| 484 | if (amask != 0) |
| 485 | return DynamicFormat(format.bits, |
| 486 | format.r.mask, format.g.mask, format.b.mask, |
| 487 | amask, PF::Alpha); |
| 488 | switch (format.bits) { |
| 489 | case 16: |
| 490 | return (format.r.shift > format.b.shift) |
| 491 | ? DynamicFormat(16,5,10,5,5,5,0,1,15,PF::Alpha) |
| 492 | : DynamicFormat(16,5,0,5,5,5,10,1,15,PF::Alpha); |
| 493 | case 24: |
| 494 | return (format.r.shift > format.b.shift) |
| 495 | ? DynamicFormat(32,8,16,8,8,8,0,8,24,PF::Alpha) |
| 496 | : DynamicFormat(32,8,0,8,8,8,16,8,24,PF::Alpha); |
| 497 | default: |
| 498 | return format_B8G8R8A8_a().format(); |
| 499 | } |
| 500 | } |
| 501 | |
| 502 | static void destroy_func(pixman_image_t * /* image */, void *data) { |
| 503 | free(data); |
nothing calls this directly
no test coverage detected