summaryrefslogtreecommitdiffhomepage
path: root/src/raylib.h
diff options
context:
space:
mode:
authorRay <[email protected]>2022-06-11 23:24:13 +0200
committerRay <[email protected]>2022-06-11 23:24:13 +0200
commitb8f67c628553cb9199f51efc9b20eb5991d58e8f (patch)
tree9a5dd90da94402c4505b4e6952d0f831743ee7ee /src/raylib.h
parentf7744404d672743b01970429f7c5f4c9136f2c7c (diff)
downloadraylib-b8f67c628553cb9199f51efc9b20eb5991d58e8f.tar.gz
raylib-b8f67c628553cb9199f51efc9b20eb5991d58e8f.zip
WARNING: BREAKING: REDESIGNED: Filepath loading API
REDESIGNED: `LoadDirectoryFiles()` ADDED: `LoadDirectoryFilesEx()` REDESIGNED: `LoadDroppedFiles()` ADDED: `IsPathFile()` This BIG BREAKING change simplifies the functions and gives more control to the user: - A new `struct FilePathList` has been added to avoid exposing complex pointers. - User is responsible of memory loading/unloading - Filepaths loading support recursive directories and file extension filters
Diffstat (limited to 'src/raylib.h')
-rw-r--r--src/raylib.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/raylib.h b/src/raylib.h
index f71f4105..488f6e43 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -482,6 +482,12 @@ typedef struct VrStereoConfig {
float scaleIn[2]; // VR distortion scale in
} VrStereoConfig;
+// File path list
+typedef struct FilePathList {
+ unsigned int count; // Filepaths entries count
+ char **paths; // Filepaths entries
+} FilePathList;
+
//----------------------------------------------------------------------------------
// Enumerators Definition
//----------------------------------------------------------------------------------
@@ -891,8 +897,8 @@ typedef enum {
typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); // Logging: Redirect trace log messages
typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, unsigned int *bytesRead); // FileIO: Load binary data
typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, unsigned int bytesToWrite); // FileIO: Save binary data
-typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data
-typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileIO: Save text data
+typedef char *(*LoadFileTextCallback)(const char *fileName); // FileIO: Load text data
+typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); // FileIO: Save text data
//------------------------------------------------------------------------------------
// Global Variables Definition
@@ -1059,11 +1065,13 @@ RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previou
RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string)
RLAPI const char *GetApplicationDirectory(void); // Get the directory if the running application (uses static string)
RLAPI bool ChangeDirectory(const char *dir); // Change working directory, return true on success
-RLAPI char **LoadDirectoryFiles(const char *dirPath, int *count); // Load directory filepaths
-RLAPI void UnloadDirectoryFiles(void); // Unload directory filepaths
+RLAPI bool IsPathFile(const char *path); // Check if a given path is a file or a directory
+RLAPI FilePathList LoadDirectoryFiles(const char *dirPath); // Load directory filepaths
+RLAPI FilePathList LoadDirectoryFilesEx(const char *basePath, const char *filter, bool scanSubdirs); // Load directory filepaths with extension filtering and recursive directory scan
+RLAPI void UnloadDirectoryFiles(FilePathList files); // Unload filepaths
RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window
-RLAPI char **LoadDroppedFiles(int *count); // Load dropped filepaths
-RLAPI void UnloadDroppedFiles(void); // Unload dropped filepaths
+RLAPI FilePathList LoadDroppedFiles(void); // Load dropped filepaths
+RLAPI void UnloadDroppedFiles(FilePathList files); // Unload dropped filepaths
RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time)
// Compression/Encoding functionality