我正在关注lazyfoo的教程http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php当绘制到屏幕上时,使用“表面”。它是什么,与SDL_Texture类似吗?和缓冲区有关系吗?
这个问题很容易通过查看文档来回答。
SDL_Texture https://wiki.libsdl.org/SDL_Texture
SDL_Texture 包含像素数据的高效/优化表示。SDL_Texture
在SDL2.0中引入并启用硬件渲染。渲染方式SDL_Texture
is
void SDL_RenderPresent https://wiki.libsdl.org/SDL_RenderPresent
(
SDL_Renderer* renderer
)
你应该尝试只使用SDL_Texture
因为它们针对渲染进行了优化,与SDL_Surface
SDL_Surface https://wiki.libsdl.org/SDL_Surface
SDL_Surface 基本上是一个结构体,其中包含所有原始像素数据以及一些元信息(例如大小和像素格式)。自从SDL_Surface
只是原始像素数据,没有以任何方式优化,渲染时应该避免。
SDL2.0的某些部分仍然使用SDL_Texture
(如图像加载或文本渲染)
幸运的是,您可以简单地转换SDL_Surface
to SDL_Texture
using
SDL_Texture* SDL_CreateTextureFromSurface https://wiki.libsdl.org/SDL_CreateTextureFromSurface?highlight=%28%5CbCategoryAPI%5Cb%29%7C%28SDLFunctionTemplate%29
(
SDL_Renderer* renderer,
SDL_Surface* surface
)
有关 SDL2 以及如何使用它制作游戏的更多信息,您可以查看我的blog. http://headerphile.com/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)