HWSURFACE 与纹理有何不同?

How does HWSURFACE differ from a texture?

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

我试过谷歌搜索,但我只能在常规软件界面上找到信息。

SDL1 中没有纹理支持,SDL2 中没有 HWSURFACE(或任何其他表面标志)。 flags in SDL_CreateRGBSurface in SDL2 注释为 "The flags are obsolete and should be set to 0"。没有合理的方法来混合它们。

指定SDL_HWSURFACE 将导致使用显存创建表面。没有 GPU 的 PC 仍然有视频内存,将内存区域中的数据放到屏幕上比从系统 RAM 中复制数据更快。

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