我在哪里可以找到一个简单的图形C库直接写入帧?

我需要一个简单的图形C库来在我将直接写入帧的设备上使用。

框架位于常规存储器中。 没有图形加速硬件。

没有什么花哨。 我只是想绘制线条,圆圈,OSD之类的字符串。

拥有使用优质精益算法的function会很棒(我的CPU是运行在400MHz的ARM9)。

有什么建议吗?

我想第二个OpenGL,特别是OpenGL | ES变体。

以下是基于软件的OpenGL-Renderer的链接: http : //sourceforge.net/projects/ogl-es

我花了三年时间在ARM9和类似的处理器上编写商业软件光栅化代码,所以我想我可以评论cairo和其他高级API的使用:

它们运行得非常好并且非常强大,但是在像ARM9这样有限的目标上,你将永远不会对性能感到满意。 图形库是为您的典型台式PC而编写的,它们以精确的性能进行交易。 这对于高质量的SVG渲染很有用,但是对于一个不起眼的ARM来说是慢的。

Vincent OpenGL | ES我上面提到过,它有一个用于ARM-CPU的动态动态代码生成引擎 ,因此您几乎可以获得手动优化的汇编程序代码的性能。

如果您可以将自己限制为只有一个位图格式,只需要两个混合模式和一个充满渲染原语的手,您可以通过自己编写十几个渲染例程来获得更好的性能。 根据您的经验和要求,可能需要两天到一个月的时间,但..

对于非常简单的需求(线条,圆圈,多边形,文本),我一直都是自己做的。 查看bresenham的线和圆算法, Wu对圆和线上的抗锯齿进行修改。

Gimp将为图像输出C代码,这就是我对字体所做的,绘制它们非常简单。 我使用了抗锯齿(gimp – >灰度,使用灰度值作为alpha),但没有使用比例字体。 它们并不难,并且可以使显示更好一些,但我还没有需要它们。

多边形只是多条线, 填充多边形实现起来非常有趣 。

这不是很多工作,你将从经验中成长。

但是,如果您决定要渲染SVG或其他复杂的矢量语言,那么库就是有序的。 但对于简单的事情,这并不复杂。

-亚当

开罗非常强大且易于使用。 我认为Mozilla使用它作为元素和SVG渲染器的基础。

根据您的要求,您似乎需要类似嵌入式帧缓冲库(或其他任何名称)的东西。 几年前,我使用嵌入式浏览器(没有进入市场)的时候玩了一些以下内容。 不幸的是,我不记得给你任何分析。 看一看:

  • DirectFB的
  • GTK / X (或使用directFB的端口)
  • 开罗(正如另一张海报所暗示的那样 – 这非常强大)

此外,这篇文章可能是有意义的。

OPENGL有一组2dfunction,不确定它是否过于膨胀或是否可以减少。 它至少用C语言编写。

试试SDL 。 从网页:

简单的DirectMedia Layer是一个跨平台的多媒体库,旨在通过OpenGL和2Dvideo帧缓冲提供对音频,键盘,鼠标,操纵杆,3D硬件的低级访问。 它被MPEG播放软件,模拟器和许多流行的游戏使用,包括获奖的Linux端口“文明:呼唤权力”。

我根据自己的喜好找到了Adafruit GFX库。 非常简单和基本: https : //github.com/adafruit/Adafruit-GFX-Library