MCPcopy Create free account
hub / github.com/axmolengine/axmol / convertRGBA8ToFormat

Function convertRGBA8ToFormat

core/renderer/backend/PixelFormatUtils.cpp:636–691  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

634}
635
636static ax::backend::PixelFormat convertRGBA8ToFormat(const unsigned char* data,
637 size_t dataLen,
638 PixelFormat format,
639 unsigned char** outData,
640 size_t* outDataLen)
641{
642
643 switch (format)
644 {
645 case PixelFormat::RGB8:
646 *outDataLen = dataLen / 4 * 3;
647 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
648 convertRGBA8ToRGB8(data, dataLen, *outData);
649 break;
650 case PixelFormat::RGB565:
651 *outDataLen = dataLen / 2;
652 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
653 convertRGBA8ToRGB565(data, dataLen, *outData);
654 break;
655 case PixelFormat::RGBA4:
656 *outDataLen = dataLen / 2;
657 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
658 convertRGBA8ToRGBA4(data, dataLen, *outData);
659 break;
660 case PixelFormat::RGB5A1:
661 *outDataLen = dataLen / 2;
662 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
663 convertRGBA8ToRGB5A1(data, dataLen, *outData);
664 break;
665 case PixelFormat::R8:
666 *outDataLen = dataLen / 4;
667 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
668 convertRGBA8ToR8(data, dataLen, *outData);
669 break;
670 case PixelFormat::RG8:
671 *outDataLen = dataLen / 2;
672 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
673 convertRGBA8ToRG8(data, dataLen, *outData);
674 break;
675 default:
676 // unsupported conversion or don't need to convert
677 if (format != PixelFormat::RGBA8)
678 {
679 AXLOGW(
680 "Can not convert image format PixelFormat::RGBA8 to format ID:{}, we will use it's origin format "
681 "PixelFormat::RGBA8",
682 static_cast<int>(format));
683 }
684
685 *outData = (unsigned char*)data;
686 *outDataLen = dataLen;
687 return PixelFormat::RGBA8;
688 }
689
690 return format;
691}
692
693static ax::backend::PixelFormat convertRGB5A1ToFormat(const unsigned char* data,

Callers 1

convertDataToFormatFunction · 0.85

Calls 6

convertRGBA8ToRGB8Function · 0.85
convertRGBA8ToRGB565Function · 0.85
convertRGBA8ToRGBA4Function · 0.85
convertRGBA8ToRGB5A1Function · 0.85
convertRGBA8ToR8Function · 0.85
convertRGBA8ToRG8Function · 0.85

Tested by

no test coverage detected