MCPcopy Create free account
hub / github.com/EasyRPG/Player / ChooseFormat

Method ChooseFormat

src/bitmap.cpp:479–500  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

477}
478
479DynamicFormat 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
502static void destroy_func(pixman_image_t * /* image */, void *data) {
503 free(data);

Callers

nothing calls this directly

Calls 2

DynamicFormatClass · 0.85
formatMethod · 0.80

Tested by

no test coverage detected