diff --git a/src/SDL2.cs b/src/SDL2.cs index 8b4bf9f..b770500 100644 --- a/src/SDL2.cs +++ b/src/SDL2.cs @@ -5311,5 +5311,52 @@ namespace SDL2 ); #endregion + + #region SDL_filesystem.h + + /// + /// Get the path where the application resides. + /// + /// Get the "base path". This is the directory where the application was run + /// from, which is probably the installation directory, and may or may not + /// be the process's current working directory. + /// + /// This returns an absolute path in UTF-8 encoding, and is garunteed to + /// end with a path separator ('\\' on Windows, '/' most other places). + /// + /// string of base dir in UTF-8 encoding + /// The underlying C string is owned by the application, + /// and can be NULL on some platforms. + [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] + [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] + public static extern string SDL_GetBasePath(); + + /// + /// Get the user-and-app-specific path where files can be written. + /// + /// Get the "pref dir". This is meant to be where users can write personal + /// files (preferences and save games, etc) that are specific to your + /// application. This directory is unique per user, per application. + /// + /// This function will decide the appropriate location in the native filesystem¸ + /// create the directory if necessary, and return a string of the absolute + /// path to the directory in UTF-8 encoding. + /// + /// The name of your organization. + /// The name of your application. + /// UTF-8 string of user dir in platform-dependent notation. NULL + /// if there's a problem (creating directory failed, etc). + /// The underlying C string is owned by the application, + /// and can be NULL on some platforms. .NET provides some similar functions. + [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] + [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] + public static extern string SDL_GetPrefPath( + [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] + string org, + [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] + string app + ); + + #endregion } }