| 523 | } |
| 524 | |
| 525 | static ax::backend::PixelFormat convertRG8ToFormat(const unsigned char* data, |
| 526 | size_t dataLen, |
| 527 | PixelFormat format, |
| 528 | unsigned char** outData, |
| 529 | size_t* outDataLen) |
| 530 | { |
| 531 | switch (format) |
| 532 | { |
| 533 | case PixelFormat::RGBA8: |
| 534 | *outDataLen = dataLen * 2; |
| 535 | *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen)); |
| 536 | convertRG8ToRGBA8(data, dataLen, *outData); |
| 537 | break; |
| 538 | case PixelFormat::RGB8: |
| 539 | *outDataLen = dataLen / 2 * 3; |
| 540 | *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen)); |
| 541 | convertRG8ToRGB8(data, dataLen, *outData); |
| 542 | break; |
| 543 | case PixelFormat::RGB565: |
| 544 | *outDataLen = dataLen; |
| 545 | *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen)); |
| 546 | convertRG8ToRGB565(data, dataLen, *outData); |
| 547 | break; |
| 548 | case PixelFormat::RGBA4: |
| 549 | *outDataLen = dataLen; |
| 550 | *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen)); |
| 551 | convertRG8ToRGBA4(data, dataLen, *outData); |
| 552 | break; |
| 553 | case PixelFormat::RGB5A1: |
| 554 | *outDataLen = dataLen; |
| 555 | *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen)); |
| 556 | convertRG8ToRGB5A1(data, dataLen, *outData); |
| 557 | break; |
| 558 | case PixelFormat::R8: |
| 559 | *outDataLen = dataLen / 2; |
| 560 | *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen)); |
| 561 | convertRG8ToR8(data, dataLen, *outData); |
| 562 | break; |
| 563 | default: |
| 564 | // unsupported conversion or don't need to convert |
| 565 | if (format != PixelFormat::RG8) |
| 566 | { |
| 567 | AXLOGW( |
| 568 | "Can not convert image format PixelFormat::LA8 to format ID:{}, we will use it's origin format " |
| 569 | "PixelFormat::RG8", |
| 570 | static_cast<int>(format)); |
| 571 | } |
| 572 | *outData = (unsigned char*)data; |
| 573 | *outDataLen = dataLen; |
| 574 | return PixelFormat::RG8; |
| 575 | break; |
| 576 | } |
| 577 | |
| 578 | return format; |
| 579 | } |
| 580 | |
| 581 | static ax::backend::PixelFormat convertRGB8ToFormat(const unsigned char* data, |
| 582 | size_t dataLen, |
no test coverage detected