Fix TGA indexed images loaded with flipped color table

This fixes incorrect color table lookup where red and blue channels were flipped.
This commit is contained in:
Andrii Doroshenko (Xrayez) 2019-04-21 14:29:40 +03:00
parent e003324a1e
commit d0f0f1f1cb
1 changed files with 4 additions and 2 deletions

View File

@ -148,9 +148,11 @@ Error ImageLoaderTGA::convert_to_image(Ref<Image> p_image, const uint8_t *p_buff
uint8_t a = 0xff;
if (p_header.color_map_depth == 24) {
r = (p_palette[(index * 3) + 0]);
// Due to low-high byte order, the color table must be
// read in the same order as image data (little endian)
r = (p_palette[(index * 3) + 2]);
g = (p_palette[(index * 3) + 1]);
b = (p_palette[(index * 3) + 2]);
b = (p_palette[(index * 3) + 0]);
} else {
return ERR_INVALID_DATA;
}