纹理的SDL渲染器参数,但表面不需要

时间:2014-09-09 20:57:49

标签: c++ sdl game-engine sdl-2

我正在研究SDL的基础知识,然后我陷入了这个疑问。我了解到SDL纹理是使用CPU的SDL表面的GPU对应物。但是为了获得表面没有渲染器参数,只需要加载的资产作为参数。但是,需要将表面转换为纹理渲染器参数。我在这里缺少什么?

SDL_Surface* pTempSurface=SDL_LoadBMP("image.bmp");
SDL_Texture* pTexture=SDL_CreateTextureFromSurface(m_pRenderer,pTempSurface);

1 个答案:

答案 0 :(得分:1)

SDL_Surface没有使用SDL_Renderer,它仅由/ SDL_Texture使用。使用SDL_SurfacesSDL_Flip从内存复制到屏幕缓冲区。因此,当将位图加载到表面时,不需要渲染器(实际上渲染器在SDL 2.0之前不存在),但是当您使用CreateTextureFromSurface时,您需要告诉函数应该加载纹理的渲染器上下文。 / p>

也许不是最好的解释,但我希望你能有所作为。

如果您熟悉SDL 1.2但不熟悉2.0 Migration guide应该对您有帮助。