Added proper import support for 3D and Array textures

This commit is contained in:
Juan Linietsky
2018-08-06 14:56:06 -03:00
parent 80a8636aa3
commit edde52c8de
16 changed files with 906 additions and 215 deletions

View File

@ -46,7 +46,7 @@ void image_decompress_squish(Image *p_image) {
Image::Format target_format = Image::FORMAT_RGBA8;
PoolVector<uint8_t> data;
int target_size = Image::get_image_data_size(w, h, target_format, p_image->has_mipmaps() ? -1 : 0);
int target_size = Image::get_image_data_size(w, h, target_format, p_image->has_mipmaps());
int mm_count = p_image->get_mipmap_count();
data.resize(target_size);
@ -96,6 +96,33 @@ void image_compress_squish(Image *p_image, Image::CompressSource p_source) {
Image::DetectChannels dc = p_image->get_detected_channels();
if (p_source == Image::COMPRESS_SOURCE_LAYERED) {
//keep what comes in
switch (p_image->get_format()) {
case Image::FORMAT_L8: {
dc = Image::DETECTED_L;
} break;
case Image::FORMAT_LA8: {
dc = Image::DETECTED_LA;
} break;
case Image::FORMAT_R8: {
dc = Image::DETECTED_R;
} break;
case Image::FORMAT_RG8: {
dc = Image::DETECTED_RG;
} break;
case Image::FORMAT_RGB8: {
dc = Image::DETECTED_RGB;
} break;
case Image::FORMAT_RGBA8:
case Image::FORMAT_RGBA4444:
case Image::FORMAT_RGBA5551: {
dc = Image::DETECTED_RGBA;
} break;
default: {}
}
}
p_image->convert(Image::FORMAT_RGBA8); //still uses RGBA to convert
if (p_source == Image::COMPRESS_SOURCE_SRGB && (dc == Image::DETECTED_R || dc == Image::DETECTED_RG)) {
@ -148,7 +175,7 @@ void image_compress_squish(Image *p_image, Image::CompressSource p_source) {
}
PoolVector<uint8_t> data;
int target_size = Image::get_image_data_size(w, h, target_format, p_image->has_mipmaps() ? -1 : 0);
int target_size = Image::get_image_data_size(w, h, target_format, p_image->has_mipmaps());
int mm_count = p_image->has_mipmaps() ? Image::get_image_required_mipmaps(w, h, target_format) : 0;
data.resize(target_size);
int shift = Image::get_format_pixel_rshift(target_format);