我正在研究SDL的基础知识,然后我陷入了这个疑问。我了解到SDL纹理是使用CPU的SDL表面的GPU对应物。但是为了获得表面没有渲染器参数,只需要加载的资产作为参数。但是,需要将表面转换为纹理渲染器参数。我在这里缺少什么?
SDL_Surface* pTempSurface=SDL_LoadBMP("image.bmp");
SDL_Texture* pTexture=SDL_CreateTextureFromSurface(m_pRenderer,pTempSurface);
答案 0 :(得分:1)
SDL_Surface
没有使用SDL_Renderer
,它仅由/ SDL_Texture
使用。使用SDL_Surfaces
将SDL_Flip
从内存复制到屏幕缓冲区。因此,当将位图加载到表面时,不需要渲染器(实际上渲染器在SDL 2.0之前不存在),但是当您使用CreateTextureFromSurface
时,您需要告诉函数应该加载纹理的渲染器上下文。 / p>
也许不是最好的解释,但我希望你能有所作为。
如果您熟悉SDL 1.2但不熟悉2.0 Migration guide应该对您有帮助。