mirror of
https://github.com/elasota/Aerofoil.git
synced 2025-09-23 14:53:52 +00:00
Handle RGB15BE blit
This commit is contained in:
@@ -624,7 +624,7 @@ void BMPDumperContext::BlitScanlineAndAdvance(const void *scanlineData)
|
||||
outRowStart[i] = m_blitParams.m_colors[colorIndex];
|
||||
}
|
||||
break;
|
||||
case PortabilityLayer::QDPictBlitSourceType_RGB15:
|
||||
case PortabilityLayer::QDPictBlitSourceType_RGB15Native:
|
||||
for (size_t i = 0; i < rowSize; i++)
|
||||
{
|
||||
const size_t originCol = i + firstSrcCol;
|
||||
@@ -637,6 +637,20 @@ void BMPDumperContext::BlitScanlineAndAdvance(const void *scanlineData)
|
||||
outputItem.a = 255;
|
||||
}
|
||||
break;
|
||||
case PortabilityLayer::QDPictBlitSourceType_RGB15BE:
|
||||
for (size_t i = 0; i < rowSize; i++)
|
||||
{
|
||||
const size_t originCol = i + firstSrcCol;
|
||||
const uint8_t *itemBytes = (scanlineBytes + originCol * 2);
|
||||
const uint16_t item = static_cast<uint16_t>((itemBytes[0] << 8) | itemBytes[1]);
|
||||
PortabilityLayer::RGBAColor &outputItem = outRowStart[i];
|
||||
|
||||
outputItem.b = FiveToEight(item & 0x1f);
|
||||
outputItem.g = FiveToEight((item >> 5) & 0x1f);
|
||||
outputItem.r = FiveToEight((item >> 10) & 0x1f);
|
||||
outputItem.a = 255;
|
||||
}
|
||||
break;
|
||||
case PortabilityLayer::QDPictBlitSourceType_RGB24_Interleaved:
|
||||
for (size_t i = 0; i < rowSize; i++)
|
||||
{
|
||||
|
Reference in New Issue
Block a user