char* SDL_GetBasePath(void)
Returns 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. アプリケーションデータディレクトリのUTF-8の絶対パス名を戻す. 失敗またはこの関数が実装されていない環境の場合NULLを戻す. SDL_GetError()で詳細を知ることができる.
戻されたパスは最後が区切り記号(Windowsなら'\', 他の環境なら'/')で終わっていることが保障されている.
このポインタの管理はプログラマが行う. 使い終わったらSDL_free()を呼ぶ必要がある.
char *data_path = NULL;
void InitializeDataPath() {
char *base_path = SDL_GetBasePath();
if (base_path) {
data_path = base_path;
} else {
data_path = SDL_strdup("./");
}
}
この関数は速い必要はない. それにも関わらず速さが必要ならば, 最初に呼んだときに文字列を保存する必要がある.
Mac OS XとiOSの特別な仕様: アプリケーションが".app"バンドルされていれば, この関数はリソースディレクトリ(例: MyApp.app/Contents/Resources/)を戻す. この動作はInfo.plistにプロパティを追加して上書きできる. SDL_FILESYSTEM_BASE_DIR_TYPE 文字列キーに値を追加すると動作を変えられる.
SDL_FILESYSTEM_BASE_DIR_TYPE プロパティの値 (アプリケーションは /Applications/SDLApp/MyApp.app にあるとする):
値 | 説明 | 例 |
---|---|---|
resource | バンドルされたリソースディレクトリ (デフォルト) | /Applications/SDLApp/MyApp.app/Contents/Resources |
bundle | バンドルディレクトリ | /Applications/SDLApp/MyApp.app/ |
parent | バンドルディレクトリのあるディレクトリ | /Applications/SDLApp/ |