|
|
@ -195,6 +195,7 @@ Image LoadImage(const char *fileName) |
|
|
|
defined(SUPPORT_FILEFORMAT_TGA) || \ |
|
|
|
defined(SUPPORT_FILEFORMAT_GIF) || \ |
|
|
|
defined(SUPPORT_FILEFORMAT_PIC) || \ |
|
|
|
defined(SUPPORT_FILEFORMAT_HDR) || \ |
|
|
|
defined(SUPPORT_FILEFORMAT_PSD) |
|
|
|
#define STBI_REQUIRED |
|
|
|
#endif |
|
|
@ -225,53 +226,53 @@ Image LoadImage(const char *fileName) |
|
|
|
) |
|
|
|
{ |
|
|
|
#if defined(STBI_REQUIRED) |
|
|
|
int imgWidth = 0; |
|
|
|
int imgHeight = 0; |
|
|
|
int imgBpp = 0; |
|
|
|
// NOTE: Using stb_image to load images (Supports multiple image formats) |
|
|
|
|
|
|
|
FILE *imFile = fopen(fileName, "rb"); |
|
|
|
|
|
|
|
if (imFile != NULL) |
|
|
|
int dataSize = 0; |
|
|
|
unsigned char *fileData = LoadFileData(fileName, &dataSize); |
|
|
|
|
|
|
|
if (fileData != NULL) |
|
|
|
{ |
|
|
|
// NOTE: Using stb_image to load images (Supports multiple image formats) |
|
|
|
image.data = stbi_load_from_file(imFile, &imgWidth, &imgHeight, &imgBpp, 0); |
|
|
|
|
|
|
|
fclose(imFile); |
|
|
|
int comp = 0; |
|
|
|
image.data = stbi_load_from_memory(fileData, dataSize, &image.width, &image.height, &comp, 0); |
|
|
|
|
|
|
|
image.width = imgWidth; |
|
|
|
image.height = imgHeight; |
|
|
|
image.mipmaps = 1; |
|
|
|
|
|
|
|
if (imgBpp == 1) image.format = UNCOMPRESSED_GRAYSCALE; |
|
|
|
else if (imgBpp == 2) image.format = UNCOMPRESSED_GRAY_ALPHA; |
|
|
|
else if (imgBpp == 3) image.format = UNCOMPRESSED_R8G8B8; |
|
|
|
else if (imgBpp == 4) image.format = UNCOMPRESSED_R8G8B8A8; |
|
|
|
|
|
|
|
if (comp == 1) image.format = UNCOMPRESSED_GRAYSCALE; |
|
|
|
else if (comp == 2) image.format = UNCOMPRESSED_GRAY_ALPHA; |
|
|
|
else if (comp == 3) image.format = UNCOMPRESSED_R8G8B8; |
|
|
|
else if (comp == 4) image.format = UNCOMPRESSED_R8G8B8A8; |
|
|
|
|
|
|
|
RL_FREE(fileData); |
|
|
|
} |
|
|
|
#endif |
|
|
|
} |
|
|
|
#if defined(SUPPORT_FILEFORMAT_HDR) |
|
|
|
else if (IsFileExtension(fileName, ".hdr")) |
|
|
|
{ |
|
|
|
int imgBpp = 0; |
|
|
|
|
|
|
|
FILE *imFile = fopen(fileName, "rb"); |
|
|
|
|
|
|
|
// Load 32 bit per channel floats data |
|
|
|
//stbi_set_flip_vertically_on_load(true); |
|
|
|
image.data = stbi_loadf_from_file(imFile, &image.width, &image.height, &imgBpp, 0); |
|
|
|
|
|
|
|
fclose(imFile); |
|
|
|
|
|
|
|
image.mipmaps = 1; |
|
|
|
|
|
|
|
if (imgBpp == 1) image.format = UNCOMPRESSED_R32; |
|
|
|
else if (imgBpp == 3) image.format = UNCOMPRESSED_R32G32B32; |
|
|
|
else if (imgBpp == 4) image.format = UNCOMPRESSED_R32G32B32A32; |
|
|
|
else |
|
|
|
#if defined(STBI_REQUIRED) |
|
|
|
int dataSize = 0; |
|
|
|
unsigned char *fileData = LoadFileData(fileName, &dataSize); |
|
|
|
|
|
|
|
if (fileData != NULL) |
|
|
|
{ |
|
|
|
TRACELOG(LOG_WARNING, "[%s] Image fileformat not supported", fileName); |
|
|
|
UnloadImage(image); |
|
|
|
int comp = 0; |
|
|
|
image.data = stbi_loadf_from_memory(fileData, dataSize, &image.width, &image.height, &comp, 0); |
|
|
|
|
|
|
|
image.mipmaps = 1; |
|
|
|
|
|
|
|
if (imgBpp == 1) image.format = UNCOMPRESSED_R32; |
|
|
|
else if (imgBpp == 3) image.format = UNCOMPRESSED_R32G32B32; |
|
|
|
else if (imgBpp == 4) image.format = UNCOMPRESSED_R32G32B32A32; |
|
|
|
else |
|
|
|
{ |
|
|
|
TRACELOG(LOG_WARNING, "[%s] HDR Image fileformat not supported", fileName); |
|
|
|
UnloadImage(image); |
|
|
|
} |
|
|
|
|
|
|
|
RL_FREE(fileData); |
|
|
|
} |
|
|
|
#endif |
|
|
|
} |
|
|
|
#endif |
|
|
|
#if defined(SUPPORT_FILEFORMAT_DDS) |
|
|
|