我想使用 SDL_net 作为一个供少数程序使用的帮助程序库。然而,其中一些程序本身可能已经在使用 SDL。如果我理解正确的话,这意味着我在初始化/释放我的库时不能盲目使用 SDL_Init
和 SDL_Quit
,因为 SDL 实例在主程序和我的程序之间共享图书馆。
到目前为止我最好的想法是让程序传递一个参数来指示它是否已经在使用SDL,这将使程序负责首先调用SDL_Init。我想知道是否有更清洁的解决方案。 SDL_WasInit
看起来很有希望,但显然只允许检查初始化的子系统,而不允许检查 SDL 本身是否已初始化(这可以通过 SDL_Init(0)
完成)。
这是关于 SDL 1.2 的。
最佳答案
SDL_WasInit()
可用于检查特定子系统是否正在运行,通过类似 SDL_WasInit(SDL_INIT_VIDEO) != 0
的检查,但 SDL docs在 SDL_WasInit() 上还说,如果您传入 SDL_WasInit(SDL_INIT_EVERYTHING) != 0
或 SDL_WasInit(0) != 0
,这会让您知道是否存在以下任何一个: SDL的子系统正在运行。
关于c - 如何在可能已依赖于 SDL 的程序使用的库中初始化 SDL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813574/