attempt to prevent too-small textures from being compressed
This commit is contained in:
parent
278e10d8ff
commit
9752545e0b
|
|
@ -147,8 +147,10 @@ create_texture(DXScreenData &scrn) {
|
|||
// check for texture compression
|
||||
Texture::CompressionMode compression_mode = Texture::CompressionMode::CM_off;
|
||||
bool texture_stored_compressed = false;
|
||||
bool texture_wants_compressed = false;
|
||||
|
||||
if (get_texture()->get_compression() != Texture::CompressionMode::CM_off) {
|
||||
texture_wants_compressed = true;
|
||||
compression_mode = get_texture()->get_ram_image_compression();
|
||||
// assert my assumption that CM_dxt1..CM_dxt5 enum values are ascending without gaps
|
||||
nassertr(((Texture::CompressionMode::CM_dxt1+1)==Texture::CompressionMode::CM_dxt2)&&((Texture::CompressionMode::CM_dxt2+1)==Texture::CompressionMode::CM_dxt3)&&((Texture::CompressionMode::CM_dxt3+1)==Texture::CompressionMode::CM_dxt4)&&((Texture::CompressionMode::CM_dxt4+1)==Texture::CompressionMode::CM_dxt5),false);
|
||||
|
|
@ -160,12 +162,14 @@ create_texture(DXScreenData &scrn) {
|
|||
case Texture::TT_1d_texture:
|
||||
case Texture::TT_2d_texture:
|
||||
case Texture::TT_cube_map:
|
||||
// no compression for render target textures
|
||||
if (get_texture()->get_render_to_texture() == false) {
|
||||
// check config setting and stored format
|
||||
if (compressed_textures || texture_stored_compressed){
|
||||
// no compression for render target textures, or very small
|
||||
// textures
|
||||
if (!get_texture()->get_render_to_texture() &&
|
||||
orig_width >= 4 && orig_height >= 4) {
|
||||
if (texture_wants_compressed){
|
||||
compress_texture = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case Texture::TT_3d_texture:
|
||||
|
|
|
|||
Loading…
Reference in New Issue