Fix OpenJPEG uploading small textures by correctly accounting for the maximum numresolutions

master
Hecklezz 2025-09-19 18:49:25 +10:00 committed by Andrey Kleshchev
parent acd8794775
commit 569d7c6a8b
1 changed files with 13 additions and 5 deletions

View File

@ -554,11 +554,6 @@ public:
}
if (!opj_setup_encoder(encoder, &parameters, image))
{
return false;
}
U32 width_tiles = (rawImageIn.getWidth() >> 6);
U32 height_tiles = (rawImageIn.getHeight() >> 6);
@ -572,6 +567,19 @@ public:
height_tiles = 1;
}
if (width_tiles == 1 || height_tiles == 1)
{
// Images with either dimension less than 32 need less number of resolutions otherwise they error
int min_dim = rawImageIn.getWidth() < rawImageIn.getHeight() ? rawImageIn.getWidth() : rawImageIn.getHeight();
int max_res = 1 + (int)floor(log2(min_dim));
parameters.numresolution = max_res;
}
if (!opj_setup_encoder(encoder, &parameters, image))
{
return false;
}
U32 tile_count = width_tiles * height_tiles;
U32 data_size_guess = tile_count * TILE_SIZE;