mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-24 08:54:15 +00:00
Fix/match MxBitmap::SetBitDepth
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user