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

Function convertR8ToFormat

core/renderer/backend/PixelFormatUtils.cpp:465–523  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

463//////////////////////////////////////////////////////////////////////////
464
465static ax::backend::PixelFormat convertR8ToFormat(const unsigned char* data,
466 size_t dataLen,
467 PixelFormat format,
468 unsigned char** outData,
469 size_t* outDataLen)
470{
471 switch (format)
472 {
473 case PixelFormat::RGBA8:
474 *outDataLen = dataLen * 4;
475 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
476 convertR8ToRGBA8(data, dataLen, *outData);
477 break;
478 case PixelFormat::RGB8:
479 *outDataLen = dataLen * 3;
480 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
481 convertR8ToRGB8(data, dataLen, *outData);
482 break;
483 case PixelFormat::RGB565:
484 *outDataLen = dataLen * 2;
485 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
486 convertR8ToRGB565(data, dataLen, *outData);
487 break;
488 case PixelFormat::RGBA4:
489 *outDataLen = dataLen * 2;
490 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
491 convertR8ToRGBA4(data, dataLen, *outData);
492 break;
493 case PixelFormat::RGB5A1:
494 *outDataLen = dataLen * 2;
495 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
496 convertR8ToRGB5A1(data, dataLen, *outData);
497 break;
498 case PixelFormat::R8:
499 *outData = (unsigned char*)data;
500 *outDataLen = dataLen;
501 break;
502 case PixelFormat::RG8:
503 *outDataLen = dataLen * 2;
504 *outData = (unsigned char*)malloc(sizeof(unsigned char) * (*outDataLen));
505 convertR8ToRG8(data, dataLen, *outData);
506 break;
507 default:
508 // unsupported conversion or don't need to convert
509 if (format != PixelFormat::R8)
510 {
511 AXLOGW(
512 "Can not convert image format PixelFormat::L8 to format ID:{}, we will use it's origin format "
513 "PixelFormat::L8",
514 static_cast<int>(format));
515 }
516
517 *outData = (unsigned char*)data;
518 *outDataLen = dataLen;
519 return PixelFormat::R8;
520 }
521
522 return format;

Callers 1

convertDataToFormatFunction · 0.85

Calls 6

convertR8ToRGBA8Function · 0.85
convertR8ToRGB8Function · 0.85
convertR8ToRGB565Function · 0.85
convertR8ToRGBA4Function · 0.85
convertR8ToRGB5A1Function · 0.85
convertR8ToRG8Function · 0.85

Tested by

no test coverage detected