如何在已经取决于SDL的程序可能使用的库中初始化SDL?

时间:2012-05-30 09:32:06

标签: c shared-libraries sdl

我想将SDL_net用于将由少数程序使用的帮助程序库。但是,其中一些程序可能已经在使用SDL。如果我解决问题,这意味着在初始化/释放我的库时我不能盲目地使用SDL_InitSDL_Quit,因为SDL实例在主程序和我的库之间共享。

到目前为止,我最好的想法是让程序传递一个参数,指示它是否已经在使用SDL,这将使程序首先负责调用SDL_Init。我想知道是否有更清洁的解决方案。 SDL_WasInit看起来很有希望,但显然只允许检查已初始化的子系统,而不是SDL本身是否已初始化(可能使用SDL_Init(0)完成)。

这是关于SDL 1.2。

1 个答案:

答案 0 :(得分:0)

SDL_WasInit()可用于通过SDL_WasInit(SDL_INIT_VIDEO) != 0之类的检查检查特定子系统是否正在运行,但SDL_WasInit()上的SDL docs也表示如果传入{{1} }或SDL_WasInit(SDL_INIT_EVERYTHING) != 0,这将告诉您SDL的任何子系统是否正在运行。