对多个类使用一个 SDL2 渲染器

Using one SDL2 renderer for multiple classes

本文关键字:SDL2 一个      更新时间:2023-10-16

我一直在尝试将一个渲染器链接到多个文件时遇到困难。我尝试使用静态渲染器,但我遇到了问题。我的问题是,在多个类和文件中使用相同的渲染器来帮助使用内存的方法是什么。我在 Linux 上,如果这有所作为。

您可以在每个类中都有一个引用成员变量,在main()中初始化渲染器,并将引用传递给类的构造函数。

假设每个类都有一个Render()方法或类似的东西,你需要SDL_Renderer,你可以传递对在一个地方声明的SDL_Renderer的引用Class->Renderer(const SDL_Renderer& Renderer )。但是,这可能意味着通过各种调用堆栈传播SDL_Renderer对象。

另一种方法是在类上保留对SDL_Renderer的引用,并将其设置在这些类的构造函数中。然后在所需的任何方法中使用成员引用。

另一种方法是将SDL_Renderer包装在单例中,在您需要它的方法中,只需从单例中获取它即可。这样,就可以避免通过调用堆栈传播它并保留对类的引用。