Wiki Page Content

Differences between revisions 9 and 10
Revision 9 as of 2013-11-04 13:38:19
Size: 2190
Editor: urkle
Comment: remove draft
Revision 10 as of 2014-02-14 01:26:24
Size: 2190
Comment: Changed descriptions to lower case.
Deletions are marked like this. Additions are marked like this.
Line 49: Line 49:
||'''resource'''||The bundle resource directory (the default)||/Applications/SDLApp/MyApp.app/Contents/Resources||
||'''bundle'''||The Bundle directory||/Applications/SDLApp/MyApp.app/||
||'''parent'''||The containing directory of the bundle||/Applications/SDLApp/||
||'''resource'''||the bundle resource directory (the default)||/Applications/SDLApp/MyApp.app/Contents/Resources||
||'''bundle'''||the Bundle directory||/Applications/SDLApp/MyApp.app/||
||'''parent'''||the containing directory of the bundle||/Applications/SDLApp/||

SDL_GetBasePath

Use this function to get the directory where the application was run from. This is where the application data directory is.

Syntax

char* SDL_GetBasePath(void)

Return Value

Returns the an absolute path in UTF-8 encoding to the application data directory. NULL will be returned on error or when the platform doesn't implement this functionality, call SDL_GetError() for more information.

The return path will be guaranteed to end with a path separator ('\' on Windows, '/' on most other platforms)

The pointer returned is owned by you. Please call SDL_free() on the pointer when you are done with it.

Code Examples

char *data_path = NULL;

void InitializeDataPath() {
    char *base_path = SDL_GetBasePath();
    if (base_path) {
        data_path = SDL_strdup(base_path);
        SDL_free(base_path);
    } else {
        data_path = SDL_strdup("./");
    }
}

Remarks

This is not necessarily a fast call, though, so you should call this once near startup and save the string if you need it.

*Mac OS X and iOS Specific Functionality* If the application is in a ".app" bundle, this function returns the Resource directory (e.g. MyApp.app/Contents/Resources/). This behaviour can be overridden by adding a property to the Info.plist file. Adding a string key with the name SDL_FILESYSTEM_BASE_DIR_TYPE with a supported value will change the behaviour.

Supported values for the SDL_FILESYSTEM_BASE_DIR_TYPE property (Given an application in /Applications/SDLApp/MyApp.app):

Value

Description

Example returned path

resource

the bundle resource directory (the default)

/Applications/SDLApp/MyApp.app/Contents/Resources

bundle

the Bundle directory

/Applications/SDLApp/MyApp.app/

parent

the containing directory of the bundle

/Applications/SDLApp/

Version

This function is available since SDL 2.0.1.


CategoryAPI, CategoryFilesystem

None: SDL_GetBasePath (last edited 2015-05-08 19:32:03 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit