summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRay <[email protected]>2018-12-18 18:18:40 +0100
committerRay <[email protected]>2018-12-18 18:18:40 +0100
commit965a91cebb18b3cad62ce805fae109b4a6244300 (patch)
tree1820a6b47ab5c4ff740706ff88c5747cdfa3b887
parent8f95518858545ffb9c9ddc49bbb638385cb37503 (diff)
downloadraylib-965a91cebb18b3cad62ce805fae109b4a6244300.tar.gz
raylib-965a91cebb18b3cad62ce805fae109b4a6244300.zip
Support PIC image format loading
-rw-r--r--src/textures.c35
1 files changed, 25 insertions, 10 deletions
diff --git a/src/textures.c b/src/textures.c
index 45419e82..fa1d7f0e 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -10,13 +10,14 @@
* #define SUPPORT_FILEFORMAT_JPG
* #define SUPPORT_FILEFORMAT_GIF
* #define SUPPORT_FILEFORMAT_PSD
+* #define SUPPORT_FILEFORMAT_PIC
* #define SUPPORT_FILEFORMAT_HDR
* #define SUPPORT_FILEFORMAT_DDS
* #define SUPPORT_FILEFORMAT_PKM
* #define SUPPORT_FILEFORMAT_KTX
* #define SUPPORT_FILEFORMAT_PVR
* #define SUPPORT_FILEFORMAT_ASTC
-* Selecte desired fileformats to be supported for image data loading. Some of those formats are
+* Select desired fileformats to be supported for image data loading. Some of those formats are
* supported by default, to remove support, just comment unrequired #define in this module
*
* #define SUPPORT_IMAGE_EXPORT
@@ -65,16 +66,14 @@
#include <stdlib.h> // Required for: malloc(), free()
#include <string.h> // Required for: strlen()
+#include <stdio.h> // Required for: FILE, fopen(), fclose(), fread()
+
+#include "utils.h" // Required for: fopen() Android mapping
#include "rlgl.h" // raylib OpenGL abstraction layer to OpenGL 1.1, 3.3 or ES2
// Required for: rlLoadTexture() rlDeleteTextures(),
// rlGenerateMipmaps(), some funcs for DrawTexturePro()
-#include "utils.h" // Required for: fopen() Android mapping
-
-#define STB_PERLIN_IMPLEMENTATION
-#include "external/stb_perlin.h"// Required for: stb_perlin_fbm_noise3
-
// Support only desired texture formats on stb_image
#if !defined(SUPPORT_FILEFORMAT_BMP)
#define STBI_NO_BMP
@@ -94,6 +93,9 @@
#if !defined(SUPPORT_FILEFORMAT_GIF)
#define STBI_NO_GIF
#endif
+#if !defined(SUPPORT_FILEFORMAT_PIC)
+ #define STBI_NO_PIC
+#endif
#if !defined(SUPPORT_FILEFORMAT_HDR)
#define STBI_NO_HDR
#endif
@@ -102,8 +104,13 @@
#define STBI_NO_PIC
#define STBI_NO_PNM // Image format .ppm and .pgm
-#if (defined(SUPPORT_FILEFORMAT_BMP) || defined(SUPPORT_FILEFORMAT_PNG) || defined(SUPPORT_FILEFORMAT_TGA) || \
- defined(SUPPORT_FILEFORMAT_JPG) || defined(SUPPORT_FILEFORMAT_PSD) || defined(SUPPORT_FILEFORMAT_GIF) || \
+#if (defined(SUPPORT_FILEFORMAT_BMP) || \
+ defined(SUPPORT_FILEFORMAT_PNG) || \
+ defined(SUPPORT_FILEFORMAT_TGA) || \
+ defined(SUPPORT_FILEFORMAT_JPG) || \
+ defined(SUPPORT_FILEFORMAT_PSD) || \
+ defined(SUPPORT_FILEFORMAT_GIF) || \
+ defined(SUPPORT_FILEFORMAT_PIC) || \
defined(SUPPORT_FILEFORMAT_HDR))
#define STB_IMAGE_IMPLEMENTATION
#include "external/stb_image.h" // Required for: stbi_load_from_file()
@@ -121,6 +128,11 @@
// NOTE: Used for image scaling on ImageResize()
#endif
+#if defined(SUPPORT_IMAGE_GENERATION)
+ #define STB_PERLIN_IMPLEMENTATION
+ #include "external/stb_perlin.h" // Required for: stb_perlin_fbm_noise3
+#endif
+
//----------------------------------------------------------------------------------
// Defines and Macros
//----------------------------------------------------------------------------------
@@ -180,9 +192,12 @@ Image LoadImage(const char *fileName)
#if defined(SUPPORT_FILEFORMAT_JPG)
|| (IsFileExtension(fileName, ".jpg"))
#endif
-#if defined(SUPPORT_FILEFORMAT_DDS)
+#if defined(SUPPORT_FILEFORMAT_GIF)
|| (IsFileExtension(fileName, ".gif"))
#endif
+#if defined(SUPPORT_FILEFORMAT_PIC)
+ || (IsFileExtension(fileName, ".pic"))
+#endif
#if defined(SUPPORT_FILEFORMAT_PSD)
|| (IsFileExtension(fileName, ".psd"))
#endif
@@ -196,7 +211,7 @@ Image LoadImage(const char *fileName)
if (imFile != NULL)
{
- // NOTE: Using stb_image to load images (Supports: BMP, TGA, PNG, JPG, ...)
+ // NOTE: Using stb_image to load images (Supports multiple image formats)
image.data = stbi_load_from_file(imFile, &imgWidth, &imgHeight, &imgBpp, 0);
fclose(imFile);