私のアプリケーションでは、設定ファイルを使いたいと思います。しかし、私はここで鶏と卵の問題を抱えています。設定ファイルはSDL(と他のもの)をどのように初期化するべきかを記述することさえできます。したがって、SDL_GetPrefPath()
の前にSDL_Init()
と呼ぶ必要があります。私のアプリケーションの設定がユーザ単位で保存される共通の場所を得るためです。それが可能かどうかはわかりません。私も同様の(フォールバック)目的のためにSDL_GetBasePath()
が必要ですが、私はそれが醜いと知っていますが、一部のユーザーはオプションで設定ファイルを探してみたいと思っています。 SDL関連の関数を使用しないので、設定ファイル自体を読むことは問題ではありませんが、設定ファイルがあるディレクトリを取得する必要があります。SDL_Init()の前にSDL_GetBasePath()およびSDL_GetPrefPath()を呼び出せますか?
確かに、私はそれが仕事であるかどうかをテストできますが、それは最高ではない、異なるSDLバージョン、他のアーキテクチャ、または誰が知っているかで失敗する可能性があります。私はそれが "設計によって"安全であることを知りたいと思います。
SDL-2ウィキでは、SDL_ShowSimpleMessageBox()
のようないくつかの機能がありますが、それはSDL_Init()
より前でも使用するのが安全だと言われていますが、これがこの場合の状況かどうかはわかりません。私はSDL-2 wikiがこのような状況を常に示すのに十分詳細であるかどうかはわかりません(SDL_ShowSimpleMessageBox()
と同じ)。なぜならこの情報は私が今話している機能のページには言及されていないからです。
私のアプリケーションはLinux、MacOS、Windows上で動作するように設計されているため、初期化後にSDLが環境設定ディレクトリを作成する場所を自分で判断するのは難しいでしょう。
[ソース](http://hg.libsdl.org/SDL/file/f76299105635/src/filesystem)に依存している(「Wiki」(https ://wiki.libsdl.org/SDL_Init)は、ロギングシステムが初期化を必要としないと主張しています)、[メーリングリスト](https://discourse.libsdl。org/c/sdl-development)、場合によっては[The Bugzilla](https://bugzilla.libsdl.org/)にドキュメントの明確化要求を追加することができます。 – genpfault
はい、私もソースを見ようとしました。私の解決策に欠陥があるかもしれないと私は考えている。私はこれを救済する方法がわかりませんが、SDL_Init()の前に行うことができる "希望"に依存せず、今後も変わる可能性がある記述されていない動作として変更される可能性があります。たぶんSDL_Init(0);何かそんなことをして、設定読み込み後にサブシステムを初期化しましょうか?私はあまり考えはしていませんが、経験豊富なSDLユーザーがここで良いアイデアを持っていることを期待しています。実際にはメーリングリスト:D –
私はメーリングリストが最善の策だと思っていますが、これはドキュメントの問題であるべきであり、あなたには魅力的なユースケースがあると思います。 – genpfault