내 응용 프로그램에서 구성 파일을 사용하고 싶습니다. 그러나 여기에 닭고기와 달걀 문제가 있습니다. 설정 파일은 SDL (및 다른 것들)이 어떻게 init'ed되어야 하는지를 기술 할 수 있습니다. 따라서 SDL_GetPrefPath()
을 SDL_Init()
전에 호출해야 내 응용 프로그램의 구성이 사용자별로 저장되는 일반적인 장소를 얻을 수 있습니다. 가능한지 확실하지 않습니다. 비슷한 (fall-back) 목적을 위해서 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)에 의존적 인'-SDL_Init()'이 보이지 않습니다 ([The Wiki] (https : //wiki.libsdl.org/SDL_Init) 로깅 시스템이 initing을 필요로하지 않는다고 주장한다면, [mailing list] (https : //discourse.libsdl.org/c/sdl-development), 문서 정리 요청을 [Bugzilla] (https://bugzilla.libsdl.org/)에 추가 할 수도 있습니다. – genpfault
예, 원본을 보려고했습니다. 어쩌면 내 솔루션에 결함이 있다고 생각합니다. 비록 이것이 "희망"에 의존하지 않고 우아함을 고치는 방법을 잘 모르겠지만 SDL_Init()은 나중에 달라질 수있는 설명되지 않은 행동으로 바뀔 수도 있습니다. 어쩌면 SDL_Init (0); 또는 그와 비슷한 것을 만들고, 설정을 읽은 후에 하위 시스템을 초기화하자. 현재 너무 많은 아이디어가 없지만 경험이 풍부한 SDL 사용자가 좋은 아이디어를 얻길 희망합니다. 또는 실제로 메일 링리스트 : D –
나는 메일 링리스트가 최선의 방법이라고 생각합니다. * "그냥"문서화 문제 일 것입니다. 당신은 매력적인 유스 케이스가 있다고 생각합니다. – genpfault