作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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 表面,但问题是,我希望能够拥有一个非全局的渲染对象。我想要一个分离的框架,但我不知道在这种情况下如何实现。我的第一个想法是制作一个渲染器类并将其作为构造函数参数,但这不可能发生,因为它会使事情复杂化并且不能成为一种选择。有没有其他方法可以将两者解耦?
最佳答案
如果您想将 Texture
与 renderer
和 surface
参数分离,我认为最好的办法是实际延迟对SDL_CreateTextureFromSurface
,直到您真正获得这些参数。
这样,您的Texture
纹理构造函数将不会使用/不需要这些参数。
关于c++ - 如何将 SDL_Texture 与 SDL_Renderer 解耦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24365243/
我是一名优秀的程序员,十分优秀!