Pārlūkot izejas kodu

REVIEWED: ExportImage(), optimized #1218

Avoid GetImageData() retrieval and free
pull/1271/head
raysan5 pirms 5 gadiem
vecāks
revīzija
7cf1e76d53
1 mainītis faili ar 5 papildinājumiem un 9 dzēšanām
  1. +5
    -9
      src/textures.c

+ 5
- 9
src/textures.c Parādīt failu

@ -376,22 +376,20 @@ void ExportImage(Image image, const char *fileName)
int success = 0; int success = 0;
#if defined(SUPPORT_IMAGE_EXPORT) #if defined(SUPPORT_IMAGE_EXPORT)
// NOTE: Getting Color array as RGBA unsigned char values
unsigned char *imgData = (unsigned char *)GetImageData(image);
#if defined(SUPPORT_FILEFORMAT_PNG) #if defined(SUPPORT_FILEFORMAT_PNG)
if (IsFileExtension(fileName, ".png")) success = stbi_write_png(fileName, image.width, image.height, 4, n">imgData, image.width*4);
if (IsFileExtension(fileName, ".png")) success = stbi_write_png(fileName, image.width, image.height, 4, p">(unsigned char *)image.data, image.width*4);
#else #else
if (false) {} if (false) {}
#endif #endif
#if defined(SUPPORT_FILEFORMAT_BMP) #if defined(SUPPORT_FILEFORMAT_BMP)
else if (IsFileExtension(fileName, ".bmp")) success = stbi_write_bmp(fileName, image.width, image.height, 4, n">imgData);
else if (IsFileExtension(fileName, ".bmp")) success = stbi_write_bmp(fileName, image.width, image.height, 4, p">(unsigned char *)image.data);
#endif #endif
#if defined(SUPPORT_FILEFORMAT_TGA) #if defined(SUPPORT_FILEFORMAT_TGA)
else if (IsFileExtension(fileName, ".tga")) success = stbi_write_tga(fileName, image.width, image.height, 4, n">imgData);
else if (IsFileExtension(fileName, ".tga")) success = stbi_write_tga(fileName, image.width, image.height, 4, p">(unsigned char *)image.data);
#endif #endif
#if defined(SUPPORT_FILEFORMAT_JPG) #if defined(SUPPORT_FILEFORMAT_JPG)
else if (IsFileExtension(fileName, ".jpg")) success = stbi_write_jpg(fileName, image.width, image.height, 4, n">imgData, 80); // JPG quality: between 1 and 100
else if (IsFileExtension(fileName, ".jpg")) success = stbi_write_jpg(fileName, image.width, image.height, 4, p">(unsigned char *)image.data, 80); // JPG quality: between 1 and 100
#endif #endif
#if defined(SUPPORT_FILEFORMAT_KTX) #if defined(SUPPORT_FILEFORMAT_KTX)
else if (IsFileExtension(fileName, ".ktx")) success = SaveKTX(image, fileName); else if (IsFileExtension(fileName, ".ktx")) success = SaveKTX(image, fileName);
@ -403,9 +401,7 @@ void ExportImage(Image image, const char *fileName)
SaveFileData(fileName, image.data, GetPixelDataSize(image.width, image.height, image.format)); SaveFileData(fileName, image.data, GetPixelDataSize(image.width, image.height, image.format));
success = true; success = true;
} }
RL_FREE(imgData);
#endif
#endif // SUPPORT_IMAGE_EXPORT
if (success != 0) TRACELOG(LOG_INFO, "FILEIO: [%s] Image exported successfully", fileName); if (success != 0) TRACELOG(LOG_INFO, "FILEIO: [%s] Image exported successfully", fileName);
else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to export image", fileName); else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to export image", fileName);

Notiek ielāde…
Atcelt
Saglabāt