我正在关注lazyfoo http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php的教程 当绘制到屏幕时,使用表面。它是什么,它与SDL_Texture类似?是否与缓冲区有关?
答案 0 :(得分:10)
通过查看文档可以轻松回答这个问题。
SDL_Texture
SDL_Texture包含像素数据的有效/优化表示。在{SDL2.0}中引入了SDL_Texture
并启用了硬件渲染。呈现SDL_Texture
的方式是
void SDL_RenderPresent
(
SDL_Renderer* renderer
)
您应该尝试仅使用SDL_Texture
,因为它们针对渲染进行了优化,与SDL_Surface
相反
SDL_Surface
SDL_Surface基本上是一个结构,它包含所有原始像素数据以及一些元信息,如大小和像素格式。由于SDL_Surface
只是原始像素数据,因此不会以任何方式进行优化,在渲染时应避免使用。
SDL2.0的某些部分仍然使用SDL_Texture
(如图像加载或文本渲染)
幸运的是,您只需使用
将SDL_Surface
转换为SDL_Texture
即可
SDL_Texture* SDL_CreateTextureFromSurface
(
SDL_Renderer* renderer,
SDL_Surface* surface
)
有关SDL2以及如何使用它制作游戏的更多信息,您可以查看我的blog.