summaryrefslogtreecommitdiff
path: root/modules/tga/image_loader_tga.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/tga/image_loader_tga.cpp')
-rw-r--r--modules/tga/image_loader_tga.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/modules/tga/image_loader_tga.cpp b/modules/tga/image_loader_tga.cpp
index 419229677b..6ee408d472 100644
--- a/modules/tga/image_loader_tga.cpp
+++ b/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;
}
@@ -197,7 +199,7 @@ Error ImageLoaderTGA::convert_to_image(Ref<Image> p_image, const uint8_t *p_buff
}
}
- image_data_w = PoolVector<uint8_t>::Write();
+ image_data_w.release();
p_image->create(width, height, 0, Image::FORMAT_RGBA8, image_data);