【发布时间】:2016-01-05 18:29:02
【问题描述】:
我有一个精灵类,它使用SDL_Texture 而不是SDL_Surface 来代替性能。这个类看起来像这样:
class Sprite
{
public:
...
private:
SDL_Texture *m_texture;
SDL_Rect m_blitRect;
int m_x;
int m_y;
};
现在的问题是,在创建 SDL_Texture 时,您还需要一个 SDL_Renderer 对象以及一个 SDL_Surface 来创建它。通常这看起来像这样:
SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);
可以在创建纹理时创建和处理 SDL 表面,但问题是,我希望能够拥有一个非全局的渲染对象。我想要一个解耦的框架,但我不知道在这种情况下如何实现。我的第一个想法是创建一个渲染器类并将其作为构造函数参数,但这不可能发生,因为它会使事情变得复杂并且不能成为一种选择。还有其他方法可以将两者解耦吗?
【问题讨论】:
-
有一个
Texture在实际需要之前不会调用 SDL_Createxxx 方法? -
将其添加为答案,以便我将其标记为正确。不过谢谢:)
标签: c++ sdl sdl-2 decoupling