소스 검색

Support external config flags

Ray 6 년 전
부모
커밋
477ea4d660
4개의 변경된 파일25개의 추가작업 그리고 3개의 파일을 삭제
  1. 2 0
      src/core.c
  2. 4 1
      src/rlgl.h
  3. 13 0
      src/textures.c
  4. 6 2
      src/utils.c

+ 2 - 0
src/core.c

@@ -92,6 +92,8 @@
 // Check if config flags have been externally provided on compilation line
 #if !defined(EXTERNAL_CONFIG_FLAGS)
     #include "config.h"         // Defines module configuration flags
+#else
+    #define RAYLIB_VERSION  "2.5"
 #endif
 
 #if (defined(__linux__) || defined(PLATFORM_WEB)) && _POSIX_C_SOURCE < 199309L

+ 4 - 1
src/rlgl.h

@@ -563,7 +563,10 @@ int GetPixelDataSize(int width, int height, int format);// Get pixel data size i
     #define SUPPORT_VR_SIMULATOR
     #define SUPPORT_DISTORTION_SHADER
 #else
-    #include "config.h"             // rlgl module configuration
+    // Check if config flags have been externally provided on compilation line
+    #if !defined(EXTERNAL_CONFIG_FLAGS)
+        #include "config.h"         // Defines module configuration flags
+    #endif
 #endif
 
 #include <stdio.h>                  // Required for: fopen(), fclose(), fread()... [Used only on LoadText()]

+ 13 - 0
src/textures.c

@@ -181,6 +181,15 @@ static Image LoadASTC(const char *fileName);  // Load ASTC file
 Image LoadImage(const char *fileName)
 {
     Image image = { 0 };
+    
+#if defined(SUPPORT_FILEFORMAT_PNG) || \
+    defined(SUPPORT_FILEFORMAT_BMP) || \
+    defined(SUPPORT_FILEFORMAT_TGA) || \
+    defined(SUPPORT_FILEFORMAT_GIF) || \
+    defined(SUPPORT_FILEFORMAT_PIC) || \
+    defined(SUPPORT_FILEFORMAT_PSD)
+#define STBI_REQUIRED
+#endif
 
 #if defined(SUPPORT_FILEFORMAT_PNG)
     if ((IsFileExtension(fileName, ".png"))
@@ -207,6 +216,7 @@ Image LoadImage(const char *fileName)
 #endif
        )
     {
+#if defined(STBI_REQUIRED)
         int imgWidth = 0;
         int imgHeight = 0;
         int imgBpp = 0;
@@ -229,6 +239,7 @@ Image LoadImage(const char *fileName)
             else if (imgBpp == 3) image.format = UNCOMPRESSED_R8G8B8;
             else if (imgBpp == 4) image.format = UNCOMPRESSED_R8G8B8A8;
         }
+#endif
     }
 #if defined(SUPPORT_FILEFORMAT_HDR)
     else if (IsFileExtension(fileName, ".hdr"))
@@ -1403,6 +1414,8 @@ void ImageResizeCanvas(Image *image, int newWidth,int newHeight, int offsetX, in
     else
     {
         // TODO: ImageCrop(), define proper cropping rectangle
+        
+        UnloadImage(imTemp);
     }
 }
 

+ 6 - 2
src/utils.c

@@ -30,9 +30,13 @@
 *
 **********************************************************************************************/
 
-#include "config.h"
-
 #include "raylib.h"                     // WARNING: Required for: LogType enum
+
+// Check if config flags have been externally provided on compilation line
+#if !defined(EXTERNAL_CONFIG_FLAGS)
+    #include "config.h"         // Defines module configuration flags
+#endif
+
 #include "utils.h"
 
 #if defined(PLATFORM_ANDROID)