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,不能使用旧方法在屏幕上获取图形。
在 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,不能使用旧方法在屏幕上获取图形。