| 691 | } |
| 692 | |
| 693 | static ax::backend::PixelFormat convertRGB5A1ToFormat(const unsigned char* data, |
| 694 | size_t dataLen, |
| 695 | PixelFormat format, |
| 696 | unsigned char** outData, |
| 697 | size_t* outDataLen) |
| 698 | { |
| 699 | switch (format) |
| 700 | { |
| 701 | case PixelFormat::RGBA8: |
| 702 | *outDataLen = dataLen / 2 * 4; |
| 703 | *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen)); |
| 704 | convertRGB5A1ToRGBA8(data, dataLen, *outData); |
| 705 | break; |
| 706 | case PixelFormat::RGB5A1: |
| 707 | *outDataLen = dataLen; |
| 708 | *outData = (unsigned char*)data; |
| 709 | break; |
| 710 | default: |
| 711 | // unsupported conversion or don't need to convert |
| 712 | if (format != PixelFormat::RGBA8) |
| 713 | { |
| 714 | AXLOGW( |
| 715 | "Can not convert image format PixelFormat::RGB5A1 to format ID:{}, we will use it's origin format " |
| 716 | "PixelFormat::RGB51A", |
| 717 | static_cast<int>(format)); |
| 718 | } |
| 719 | *outData = (unsigned char*)data; |
| 720 | *outDataLen = dataLen; |
| 721 | return PixelFormat::RGBA8; |
| 722 | } |
| 723 | |
| 724 | return format; |
| 725 | } |
| 726 | |
| 727 | static ax::backend::PixelFormat convertRGB565ToFormat(const unsigned char* data, |
| 728 | size_t dataLen, |
no test coverage detected