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

Function convertRGB8ToFormat

core/renderer/backend/PixelFormatUtils.cpp:581–634  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

579}
580
581static ax::backend::PixelFormat convertRGB8ToFormat(const unsigned char* data,
582 size_t dataLen,
583 PixelFormat format,
584 unsigned char** outData,
585 size_t* outDataLen)
586{
587 switch (format)
588 {
589 case PixelFormat::RGBA8:
590 *outDataLen = dataLen / 3 * 4;
591 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
592 convertRGB8ToRGBA8(data, dataLen, *outData);
593 break;
594 case PixelFormat::RGB565:
595 *outDataLen = dataLen / 3 * 2;
596 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
597 convertRGB8ToRGB565(data, dataLen, *outData);
598 break;
599 case PixelFormat::RGBA4:
600 *outDataLen = dataLen / 3 * 2;
601 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
602 convertRGB8ToRGBA4(data, dataLen, *outData);
603 break;
604 case PixelFormat::RGB5A1:
605 *outDataLen = dataLen / 3 * 2;
606 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
607 convertRGB8ToRGB5A1(data, dataLen, *outData);
608 break;
609 case PixelFormat::R8:
610 *outDataLen = dataLen / 3;
611 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
612 convertRGB8ToR8(data, dataLen, *outData);
613 break;
614 case PixelFormat::RG8:
615 *outDataLen = dataLen / 3 * 2;
616 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
617 convertRGB8ToRG8(data, dataLen, *outData);
618 break;
619 default:
620 // unsupported conversion or don't need to convert
621 if (format != PixelFormat::RGB8)
622 {
623 AXLOGW(
624 "Can not convert image format PixelFormat::RGB8 to format ID:{}, we will use it's origin format "
625 "PixelFormat::RGB8",
626 static_cast<int>(format));
627 }
628
629 *outData = (unsigned char*)data;
630 *outDataLen = dataLen;
631 return PixelFormat::RGB8;
632 }
633 return format;
634}
635
636static ax::backend::PixelFormat convertRGBA8ToFormat(const unsigned char* data,
637 size_t dataLen,

Callers 1

convertDataToFormatFunction · 0.85

Calls 6

convertRGB8ToRGBA8Function · 0.85
convertRGB8ToRGB565Function · 0.85
convertRGB8ToRGBA4Function · 0.85
convertRGB8ToRGB5A1Function · 0.85
convertRGB8ToR8Function · 0.85
convertRGB8ToRG8Function · 0.85

Tested by

no test coverage detected