Browse Source

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.
raysan5 5 years ago
parent
commit
cc816345bf
3 changed files with 17 additions and 30 deletions
  1. 17 12
      src/models.c
  2. 0 1
      src/raylib.h
  3. 0 17
      src/textures.c

+ 17 - 12
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");
             if (image->uri[i] == 0) TRACELOG(LOG_WARNING, "IMAGE: glTF data URI is not a valid image");
             else
             else
             {
             {
-                int size;
+                int size = 0;
                 unsigned char *data = DecodeBase64(image->uri + i + 1, &size);
                 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!
                 // TODO: Tint shouldn't be applied here!
                 ImageColorTint(&rimage, tint);
                 ImageColorTint(&rimage, tint);
@@ -3462,20 +3467,20 @@ static Image LoadImageFromCgltfImage(cgltf_image *image, const char *texPath, Co
             n += stride;
             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);
         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!
         // TODO: Tint shouldn't be applied here!
         ImageColorTint(&rimage, tint);
         ImageColorTint(&rimage, tint);
     }
     }
-    else
-    {
-        rimage = LoadImageEx(&tint, 1, 1);
-    }
+    else rimage = GenImageColor(1, 1, tint);
 
 
     return rimage;
     return rimage;
 }
 }

+ 0 - 1
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
 // NOTE: This functions do not require GPU access
 RLAPI Image LoadImage(const char *fileName);                                                             // Load image from file into CPU memory (RAM)
 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 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 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 UnloadImage(Image image);                                                                     // Unload image from CPU memory (RAM)
 RLAPI void ExportImage(Image image, const char *fileName);                                               // Export image data to file
 RLAPI void ExportImage(Image image, const char *fileName);                                               // Export image data to file

+ 0 - 17
src/textures.c

@@ -332,23 +332,6 @@ Image LoadImageEx(Color *pixels, int width, int height)
     return image;
     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
 // Load an image from RAW file data
 Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize)
 Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize)
 {
 {