SDL - SDL_GetRenderer 和 SDL_CreateRenderer 之间的区别

SDL - Difference between SDL_GetRenderer and SDL_CreateRenderer

函数 SDL_GetRenderer(SDL_Window*)SDL_CreateRenderer(SDL_Window*, int, Uint32) 似乎做同样的事情:return 从 window 指向 SDL_Renderer 的指针。但是,哪种方法更适合任务SDL Wiki 没有提供太多关于应该在哪里使用哪种方法的信息,所以请解释每种方法的作用、它们的区别以及应该在哪里使用。

SDL_CreateRenderer 允许您通过指定一些选项为 window 创建渲染器。它存储在特定的 window 数据中,您可以使用 SDL_GetRenderer 查询(因此后者相当于 (SDL_Renderer *)SDL_GetWindowData(window, SDL_WINDOWRENDERDATA)

如果您调用 SDL_GetRenderer 而没有事先创建它,您将得到一个 NULL 指针。

如果您在 window 上调用 SDL_CreateRenderer 两次,第二次调用将失败并返回 SDL_SetError("Renderer already associated with window");(参见第 805 行)。

here