【发布时间】:2010-11-26 19:58:40
【问题描述】:
我的应用程序以每像素的方式生成“动画”,因此我需要有效地绘制它们。我尝试了不同的策略/库,但结果并不令人满意,尤其是在更高的分辨率下。
这是我尝试过的:
SDL: 好的,但是很慢;OpenGL:像素操作效率低;xlib:更好,但还是太慢了;svgalib,directfb,(其他帧缓冲区实现):它们看起来完美,但对于最终用户来说设置起来太棘手了。
(注意:我可能对这些断言有误,如果是,请纠正我)
我需要的是:
快速像素绘制,性能媲美
OpenGL渲染;它应该可以在 Linux 上运行(作为额外功能的跨平台);
应该支持双缓冲和垂直同步;
对于硬件而言,它应该是可移植的;
应该是开源的。
你能给我一些启示/想法/建议吗?
【问题讨论】:
-
您有没有找到好的解决方案?我有同样的问题。我想手动绘制 1920x1080p 帧的每个像素,想不出一个快速的方法。
-
是的,最好的方法似乎是the accepted answer 建议的 OpenGL 纹理。
-
我怀疑 SDL 本身不是瓶颈,而是 X11。我假设您正在运行 X,因此由于 SDL 是一个抽象层,因此它将 SDL 像素操作转换为使用 X11 后端,这是延迟的来源。尝试在没有 X 的机器上执行 SDL,您会发现它的运行速度要快得多,因为它现在将直接打印到 Linux 帧缓冲区。
标签: linux drawing pixel performance