【发布时间】:2018-08-15 02:43:26
【问题描述】:
我在尝试将一个渲染器链接到多个文件时遇到了困难。我尝试过使用静态渲染器,但我遇到了这个问题。我的问题是有哪些方法可以在多个类和文件中使用相同的渲染器来帮助内存使用。如果这有什么不同的话,我在 Linux 上。
【问题讨论】:
我在尝试将一个渲染器链接到多个文件时遇到了困难。我尝试过使用静态渲染器,但我遇到了这个问题。我的问题是有哪些方法可以在多个类和文件中使用相同的渲染器来帮助内存使用。如果这有什么不同的话,我在 Linux 上。
【问题讨论】:
您可以在每个类中都有一个引用成员变量,在 main() 中初始化渲染器并将引用传递给类的构造函数。
【讨论】:
假设这些类中的每一个都有一个Render() 方法或类似的方法,在您需要SDL_Renderer 的地方,您可以传递对在一个地方声明的SDL_Renderer 的引用Class->Renderer(const SDL_Renderer& Renderer )。但是,这可能意味着通过各种调用堆栈传播SDL_Renderer 对象。
另一种方法是在您的类上保留对SDL_Renderer 的引用,并将其设置在这些类的构造函数中。然后在任何需要的方法中使用您的成员引用。
另一种方法是将SDL_Renderer 包装在一个singleton 中,在您需要它的方法中,只需从Singleton 中获取它。这样,就可以避免通过调用堆栈传播它并在您的类上保留引用。
【讨论】: