diff options
| author | raysan5 <[email protected]> | 2020-06-07 11:57:22 +0200 |
|---|---|---|
| committer | raysan5 <[email protected]> | 2020-06-07 11:57:22 +0200 |
| commit | 7cf1e76d538f37cc658cbb6fd82aa7a3110de004 (patch) | |
| tree | 892c8366354e62f11c5966a36dbf4936fbd0f967 | |
| parent | 776e4a37ef0266374e5232a63377c411af81ec67 (diff) | |
| download | raylib-7cf1e76d538f37cc658cbb6fd82aa7a3110de004.tar.gz raylib-7cf1e76d538f37cc658cbb6fd82aa7a3110de004.zip | |
REVIEWED: ExportImage(), optimized #1218
Avoid GetImageData() retrieval and free
| -rw-r--r-- | src/textures.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/textures.c b/src/textures.c index fe4ac217..15f3f4fe 100644 --- a/src/textures.c +++ b/src/textures.c @@ -376,22 +376,20 @@ void ExportImage(Image image, const char *fileName) int success = 0; #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 (IsFileExtension(fileName, ".png")) success = stbi_write_png(fileName, image.width, image.height, 4, imgData, image.width*4); + if (IsFileExtension(fileName, ".png")) success = stbi_write_png(fileName, image.width, image.height, 4, (unsigned char *)image.data, image.width*4); #else if (false) {} #endif #if defined(SUPPORT_FILEFORMAT_BMP) - else if (IsFileExtension(fileName, ".bmp")) success = stbi_write_bmp(fileName, image.width, image.height, 4, imgData); + else if (IsFileExtension(fileName, ".bmp")) success = stbi_write_bmp(fileName, image.width, image.height, 4, (unsigned char *)image.data); #endif #if defined(SUPPORT_FILEFORMAT_TGA) - else if (IsFileExtension(fileName, ".tga")) success = stbi_write_tga(fileName, image.width, image.height, 4, imgData); + else if (IsFileExtension(fileName, ".tga")) success = stbi_write_tga(fileName, image.width, image.height, 4, (unsigned char *)image.data); #endif #if defined(SUPPORT_FILEFORMAT_JPG) - else if (IsFileExtension(fileName, ".jpg")) success = stbi_write_jpg(fileName, image.width, image.height, 4, imgData, 80); // JPG quality: between 1 and 100 + else if (IsFileExtension(fileName, ".jpg")) success = stbi_write_jpg(fileName, image.width, image.height, 4, (unsigned char *)image.data, 80); // JPG quality: between 1 and 100 #endif #if defined(SUPPORT_FILEFORMAT_KTX) 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)); success = true; } - - RL_FREE(imgData); -#endif +#endif // SUPPORT_IMAGE_EXPORT if (success != 0) TRACELOG(LOG_INFO, "FILEIO: [%s] Image exported successfully", fileName); else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to export image", fileName); |
