ソースを参照

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 d0f0f1f1cb1ef5478b3ac3b00597c8b17974ffc4)
Andrii Doroshenko (Xrayez) 6 年 前
コミット
f6c0078264
1 ファイル変更4 行追加2 行削除
  1. 4 2
      modules/tga/image_loader_tga.cpp

+ 4 - 2
modules/tga/image_loader_tga.cpp

@@ -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;
 					}