HWSURFACE与纹理有何不同?

时间:2016-07-09 23:23:59

标签: c++ textures rendering sdl surface

在SDL中制作曲面时,可以选择使用HWSURFACE标记,我想这意味着表面由GPU而不是CPU处理。但是现在SDL2有纹理,我想知道,差异是什么?使用硬件表面而不是纹理会有和性能差异吗?他们的行为是否相同?

我已经尝试了谷歌搜索,但我只能在常规软件表面上找到信息。

2 个答案:

答案 0 :(得分:2)

SDL1中没有纹理支持,SDL2中没有HWSURFACE(或任何其他表面标志)。 SDL2中flags中的SDL_CreateRGBSurface注释为“标志已过时,应设置为0”。没有理智的方式来混合它们。

答案 1 :(得分:1)

指定SDL_HWSURFACE会导致使用视频内存创建曲面。没有GPU的电脑仍然有视频存储器,将数据存储在屏幕上比将其从系统RAM复制更快。

纹理被上传到GPU自己的专用RAM,数据必须通过该内存才能完全放在屏幕上。 SDL2不再具有SDL_HWSURFACE标志,因为渲染子系统通过OpenGL或Direct3D使用GPU,并且无法使用旧方法在屏幕上获取图形。