Force mipmaps off when importing RGBA4444 textures

This commit is contained in:
clayjohn 2020-02-29 19:23:56 -08:00
parent f4e3701893
commit 2c0d391c48
2 changed files with 8 additions and 0 deletions

View file

@ -1448,6 +1448,8 @@ Error Image::generate_mipmaps(bool p_renormalize) {
ERR_FAIL_COND_V_MSG(!_can_modify(format), ERR_UNAVAILABLE, "Cannot generate mipmaps in compressed or custom image formats.");
ERR_FAIL_COND_V_MSG(format == FORMAT_RGBA4444 || format == FORMAT_RGBA5551, ERR_UNAVAILABLE, "Cannot generate mipmaps in custom image formats.");
ERR_FAIL_COND_V_MSG(width == 0 || height == 0, ERR_UNCONFIGURED, "Cannot generate mipmaps with width or height equal to 0.");
int mmcount;

View file

@ -143,9 +143,15 @@ static void _compress_etc(Image *p_img, float p_lossy_quality, bool force_etc1_f
// If VRAM compression is using ETC, but image has alpha, convert to RGBA4444 or LA8
// This saves space while maintaining the alpha channel
if (detected_channels == Image::DETECTED_RGBA) {
if (p_img->has_mipmaps()) {
// Image doesn't support mipmaps with RGBA4444 textures
p_img->clear_mipmaps();
}
p_img->convert(Image::FORMAT_RGBA4444);
return;
} else if (detected_channels == Image::DETECTED_LA) {
p_img->convert(Image::FORMAT_LA8);
return;
}