Fix TGA indexed images loaded with flipped color table

This fixes incorrect color table lookup where red and blue channels were flipped.

(cherry picked from commit d0f0f1f1cb)
This commit is contained in:
Andrii Doroshenko (Xrayez) 2019-04-21 14:29:40 +03:00 committed by Rémi Verschelde
parent 660acc3913
commit f6c0078264
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;
}