aboutsummaryrefslogtreecommitdiff
path: root/raylib/src/external/rl_gputex.h
diff options
context:
space:
mode:
Diffstat (limited to 'raylib/src/external/rl_gputex.h')
-rw-r--r--raylib/src/external/rl_gputex.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/raylib/src/external/rl_gputex.h b/raylib/src/external/rl_gputex.h
index fa39fe2..2cbe596 100644
--- a/raylib/src/external/rl_gputex.h
+++ b/raylib/src/external/rl_gputex.h
@@ -1,6 +1,6 @@
/**********************************************************************************************
*
-* rl_gputex - GPU compressed textures loading and saving
+* rl_gputex v1.0 - GPU compressed textures loading and saving
*
* DESCRIPTION:
*
@@ -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));