Added proper import support for 3D and Array textures
This commit is contained in:
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user