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
函数 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