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

Function convertRG8ToFormat

core/renderer/backend/PixelFormatUtils.cpp:525–579  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

523}
524
525static 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
581static ax::backend::PixelFormat convertRGB8ToFormat(const unsigned char* data,
582 size_t dataLen,

Callers 1

convertDataToFormatFunction · 0.85

Calls 6

convertRG8ToRGBA8Function · 0.85
convertRG8ToRGB8Function · 0.85
convertRG8ToRGB565Function · 0.85
convertRG8ToRGBA4Function · 0.85
convertRG8ToRGB5A1Function · 0.85
convertRG8ToR8Function · 0.85

Tested by

no test coverage detected