首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
DirectFB和Cairo的嵌入式图形开发实践
来源:本站整理  作者:佚名  2009-09-14 10:45:46



上面几行代码分别声明了DirectFB的主接口、显示层接口、窗口接口、绘图表面接口和消息缓冲接口。然后通过下列代码对DirectFB和它的接口进行初始化:


    一旦接口创建完毕,即可调用接口的相关方法实现DirectFB的提供图形操作功能。比如,下面的代码实现了在窗体的绘图表面绘制矩形框的操作:

   


    值得一提的是DirectFB实现了消息系统,用以响应用户输入、键盘鼠标等事件。对于嵌入式系统,DirectFB支持tslib方式接口的触摸屏输入消息响应。

3 以DirectFB为后端的2D图形处理
    考虑以跨平台输出,引入2D图形处理库Cairo。令Cairo以DirectFB为实际绘图后端(back end)的方案,在嵌入式系统中可以获得很好的性能以及极大的通用性。
    Cairo广泛地应用在GNOME、GTK+、pango等著名的软件中进行2D图形处理。以C语言开发的Cairo绑定了C++、Ruby、Perl、Java和.Net/mono等多种语言接口。其中Python和C++绑定在开源社区代码中得到广泛的应用。
    Cairo有自己的Surface管理机制,可以在SDL、XWindow或者DirectFB的Surface上创建Cairo Surface。然后,在这个Cairo Surface上创立Cairo主接口。下面的代码演示了这一过程:

   

    得到Cairo的主接口cr之后,就可调用一系列Cairo的2D绘图API了。下面的代码演示了用Cairo的API划线:

   
    Cairo丰富的特性在解决移植性的同时,可以弥补直接使用DirectFB 2D功能上的不足。比如DirectFB没有画虚线的API,但是调用Cairo的cairo_set_dash和cairo_stroke可以很轻松地实现这一功能。

4 小 结
    本文在介绍了DirectFB的特性和基本框架之后,阐述了DirectFB的基本开发方法,并提出一种使用基于DirectFB的Cairo 2D图形处理库的方案。它是一种兼顾了效率、通用性和功能性的嵌入式系统2D图形处理方案。笔者采用该方案实现了Windows CE GDI接口在ARM—Linux上的移植,工作良好,特在此与广大嵌入式系统开发人员分享。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:52,296.88000 毫秒