|
@@ -261,11 +261,9 @@ void *rl_load_dds_from_memory(const unsigned char *file_data, unsigned int file_
|
|
|
}
|
|
|
else if (((header->ddspf.flags == 0x04) || (header->ddspf.flags == 0x05)) && (header->ddspf.fourcc > 0)) // Compressed
|
|
|
{
|
|
|
- int data_size = 0;
|
|
|
-
|
|
|
- // Calculate data size, including all mipmaps
|
|
|
- if (header->mipmap_count > 1) data_size = header->pitch_or_linear_size*2;
|
|
|
- else data_size = header->pitch_or_linear_size;
|
|
|
+ // NOTE: This forces only 1 mipmap to be loaded which is not really correct but it works
|
|
|
+ int data_size = (header->pitch_or_linear_size < file_size - 0x80) ? header->pitch_or_linear_size : file_size - 0x80;
|
|
|
+ *mips = 1;
|
|
|
|
|
|
image_data = RL_MALLOC(data_size*sizeof(unsigned char));
|
|
|
|