将一个SDL2渲染器用于多个类

时间:2018-08-14 12:15:47

标签: c++ sdl-2

尝试将一个渲染器链接到多个文件时遇到了困难。我尝试使用静态渲染器,但是与此有关。我的问题是在多个类和文件中使用同一渲染器以帮助使用内存的一些方法是什么。如果可以,那么我在Linux上。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

假设每个类都有一个Render()方法或类似的方法,而您需要SDL_Renderer,则可以传递对在一个地方{{ 1}}。但是,这可能意味着通过各种调用栈传播SDL_Renderer对象。

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

另一种方法是将SDL_Renderer包装在 singleton 中,在需要的方法中,只需从 Singleton 中抓取即可。这样,将避免通过调用栈传播它并在类上保留引用。