我需要一个简单的图形C库来在我将直接写入帧的设备上使用.
框架位于常规存储器中.没有图形加速硬件.
没有什么花哨.我只是想绘制线条,圆圈,像字符串一样的OSD东西.
拥有使用优质精益算法的功能会很棒(我的CPU是运行在400MHz的ARM9).
有什么建议吗?
对于非常简单的需求(线,圆,多边形,文本),我总是自己制作。查看bresenham的直线和圆弧算法,Wu的直线和圆弧抗锯齿修改。
Gimp将为图像输出C代码,这就是我对字体所做的工作,并且绘制它们非常简单。我使用了抗锯齿功能(gimp->灰度,将灰度值用作Alpha),但是还没有完成比例字体。它们并不难,并且可以使显示效果更好一些,但我还不需要它们。
多边形只是多条线,填充的多边形实现起来很有趣。
这不是很多工作,您将从经验中成长。
但是,如果您决定渲染SVG或其他复杂的矢量语言,则需要准备一个库。但是对于简单的事情,这并不复杂。
-亚当
我想选择第二个 OpenGL,尤其是 OpenGL|ES 变体。
以下是基于软件的 OpenGL 渲染器的链接: http: //sourceforge.net/projects/ogl-es
过去三年我一直在 ARM9 和类似处理器上编写商业软件光栅化代码,所以我想我可以评论 cairo 和其他高级 API 的使用:
它们工作得很好并且非常强大,但是在像 ARM9 这样有限的目标上,你永远不会对其性能感到满意。图形库是根据典型的台式电脑编写的,它们以精度换取性能。这对于高质量 SVG 渲染来说很好,但在简陋的 ARM 上会很慢。
我上面建议的 Vincent OpenGL|ES 具有用于ARM -CPU 的动态代码生成引擎,因此您几乎可以获得手动优化的汇编代码的性能。
如果您可以将自己限制为仅一种位图格式、两种混合模式和大量渲染基元,那么您可以通过自己编写十几个渲染例程来获得更好的性能。不过,根据您的经验和要求,可能需要两天到一个月的时间。