我正在从SDL转向SDL2,并对引入的"渲染和纹理"系统感到困惑.
回到SDL,最常见的操作是在屏幕上创建Surface和BlitSurface.现在似乎有使用渲染器和纹理的趋势.但是,从我的观点来看,这是非常慢的(在编码开销方面).为什么我不能像以前一样只负载_BMP和BlitSurface?从整个窗口渲染器纹理的东西可以带来什么好处?
我读了几个线程什么是SDL渲染器?但还是有点混乱.
所以..
旧的Surface方式是否适用于SDL2?
渲染器和纹理有什么意义?(可能是关于硬件加速,根据一点点谷歌搜索,但不知道这意味着什么)
您可能需要查看SDL2 的迁移指南,它提供了有关处理2D图形的新方法的信息.
使用纹理而不是表面的关键是纹理在GPU上运行并加载到视频内存中,并且表面在CPU中与系统内存一起工作,并且因为GPU比CPU更适合处理图形,所以它会更快.此外,渲染器隐藏了所使用的底层系统(可能是D3D,OpenGL或其他东西).
您仍然可以加载曲面,但在渲染之前必须将它们转换为纹理,或者使用SDL_ UpdateWindowSurface和SDL_GetWindowSurface函数; 后一个链接包含一个如何使用它们的示例.
至于SDL2方法很慢,正如你断言的那样,我不同意你,你设置窗口和渲染器一次,加载纹理就像加载表面一样,将它们复制到渲染器而不是blitting,最后使用SDL_RenderPresent而不是SDL_Flip.真的没那么不同:)
但是,看看迁移指南,它有您正在寻找的信息.
| 归档时间: |
|
| 查看次数: |
1748 次 |
| 最近记录: |