From cc816345bf24c8da911e080589b5653a52b8404e Mon Sep 17 00:00:00 2001 From: raysan5 Date: Fri, 10 Apr 2020 19:26:36 +0200 Subject: [PATCH] WARNING: API BREAK: Removed LoadImagePro() Actually this function is useless and potentially dangerous, internally, a shallow copy of data was done. Same could be accomplished accesing image.data directly. --- src/models.c | 29 +++++++++++++++++------------ src/raylib.h | 1 - src/textures.c | 17 ----------------- 3 files changed, 17 insertions(+), 30 deletions(-) diff --git a/src/models.c b/src/models.c index 69d78560..2629ea70 100644 --- a/src/models.c +++ b/src/models.c @@ -3430,13 +3430,18 @@ static Image LoadImageFromCgltfImage(cgltf_image *image, const char *texPath, Co if (image->uri[i] == 0) TRACELOG(LOG_WARNING, "IMAGE: glTF data URI is not a valid image"); else { - int size; + int size = 0; unsigned char *data = DecodeBase64(image->uri + i + 1, &size); - int w, h; - unsigned char *raw = stbi_load_from_memory(data, size, &w, &h, NULL, 4); + int width, height; + unsigned char *raw = stbi_load_from_memory(data, size, &width, &height, NULL, 4); + free(data); - rimage = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); + rimage.data = raw; + rimage.width = width; + rimage.height = height; + rimage.format = UNCOMPRESSED_R8G8B8A8; + rimage.mipmaps = 1; // TODO: Tint shouldn't be applied here! ImageColorTint(&rimage, tint); @@ -3462,20 +3467,20 @@ static Image LoadImageFromCgltfImage(cgltf_image *image, const char *texPath, Co n += stride; } - int w, h; - unsigned char *raw = stbi_load_from_memory(data, image->buffer_view->size, &w, &h, NULL, 4); + int width, height; + unsigned char *raw = stbi_load_from_memory(data, image->buffer_view->size, &width, &height, NULL, 4); free(data); - rimage = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); - free(raw); + rimage.data = raw; + rimage.width = width; + rimage.height = height; + rimage.format = UNCOMPRESSED_R8G8B8A8; + rimage.mipmaps = 1; // TODO: Tint shouldn't be applied here! ImageColorTint(&rimage, tint); } - else - { - rimage = LoadImageEx(&tint, 1, 1); - } + else rimage = GenImageColor(1, 1, tint); return rimage; } diff --git a/src/raylib.h b/src/raylib.h index ba6f23fc..627fa1d6 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1106,7 +1106,6 @@ RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Ve // NOTE: This functions do not require GPU access RLAPI Image LoadImage(const char *fileName); // Load image from file into CPU memory (RAM) RLAPI Image LoadImageEx(Color *pixels, int width, int height); // Load image from Color array data (RGBA - 32bit) -RLAPI Image LoadImagePro(void *data, int width, int height, int format); // Load image from raw data with parameters RLAPI Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize); // Load image from RAW file data RLAPI void UnloadImage(Image image); // Unload image from CPU memory (RAM) RLAPI void ExportImage(Image image, const char *fileName); // Export image data to file diff --git a/src/textures.c b/src/textures.c index 7c7ffc02..ba866dbc 100644 --- a/src/textures.c +++ b/src/textures.c @@ -332,23 +332,6 @@ Image LoadImageEx(Color *pixels, int width, int height) return image; } -// Load image from raw data with parameters -// NOTE: This functions makes a copy of provided data -Image LoadImagePro(void *data, int width, int height, int format) -{ - Image srcImage = { 0 }; - - srcImage.data = data; - srcImage.width = width; - srcImage.height = height; - srcImage.mipmaps = 1; - srcImage.format = format; - - Image dstImage = ImageCopy(srcImage); - - return dstImage; -} - // Load an image from RAW file data Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize) {