Fix/match MxBitmap::SetBitDepth

This commit is contained in:
Christian Semmler 2023-12-25 20:54:44 -05:00
parent 77755570f2
commit a25bcecf47
No known key found for this signature in database
GPG key ID: 086DAA1360BEEE5C

View file

@ -296,36 +296,41 @@ MxResult MxBitmap::SetBitDepth(MxBool p_isHighColor)
if (m_isHighColor == p_isHighColor) { if (m_isHighColor == p_isHighColor) {
// no change: do nothing. // no change: do nothing.
ret = SUCCESS; ret = SUCCESS;
goto done;
} }
else {
switch (p_isHighColor) {
case FALSE:
ImportColorsToPalette(m_paletteData, m_palette);
if (m_palette)
delete m_palette;
m_palette = NULL; switch (p_isHighColor) {
break; case FALSE:
ImportColorsToPalette(m_paletteData, m_palette);
if (m_palette)
delete m_palette;
case TRUE: m_palette = NULL;
pal = NULL; break;
pal = new MxPalette(m_paletteData); case TRUE: {
if (pal) { pal = NULL;
m_palette = pal; pal = new MxPalette(m_paletteData);
// TODO: what is this? zeroing out top half of palette? if (!pal)
MxU16* buf = (MxU16*) m_paletteData; goto done;
for (MxU16 i = 0; i < 256; i++) {
buf[i] = i;
}
m_isHighColor = p_isHighColor; m_palette = pal;
ret = SUCCESS;
} // TODO: what is this? zeroing out top half of palette?
break; MxU16* buf = (MxU16*) m_paletteData;
for (MxU16 i = 0; i < 256; i++) {
buf[i] = i;
} }
break;
}
default:
goto done;
} }
m_isHighColor = p_isHighColor;
ret = SUCCESS;
done:
// If we were unsuccessful overall but did manage to alloc // If we were unsuccessful overall but did manage to alloc
// the MxPalette, free it. // the MxPalette, free it.
if (ret && pal) if (ret && pal)