我有一个sprite类,它使用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表面,但问题是,我希望能够拥有一个不是全局的渲染对象。我想要一个分离的框架,我不知道在这种情况下如何实现它。我的第一个想法是创建一个渲染器类并将其作为构造函数参数,但这不可能发生,因为它会使事情变得复杂并且不能成为一种选择。有没有其他方法可以解耦这两个?
答案 0 :(得分:1)
如果您想将Texture
与renderer
和surface
参数分离,我认为您最好将实际延迟拨打SDL_CreateTextureFromSurface
,直到您实际得到这些论点。
这样,你的Texture
纹理构造函数将不会使用/需要这些参数。