SDL对接2D渲染库
最近玩了几个2D渲染库,有老牌的cairo,大名鼎鼎的skia,还有blend2d。其中blend2d比较有意思,只支持软渲染,就是只用CPU不用GPU,在现在一堆争着用GPU的渲染库里算是比较奇葩的;还有就是用了asmjit,这点就比较有意思,官网的描述是“利用内置的 JIT 编译器在运行时生成优化的管道,并且能够使用多线程来提升性能”。
至于对接渲染结果到SDL,我用的方法都是先渲染到内存里的位图缓冲区bitmap里,然后把bitmap复制到SDL的Texture里,最后提交到窗口的Render里显示。因为SDL的Texture缓存貌似是在显存里,读写前还需要先”固定“,不方便跟渲染库对接。而且我想在程序的整个生命周期都只渲染到一个块内存里,不想每次渲染都走[申请内存]-[读写]-[销毁内存]这套流程。

上图只用了一个Texture,SDL支持多个Texture叠加到窗口,所以可以同时渲染多个Texture,最后图层叠加、拼接或者是切换显示某个Texture。