加入收藏
设为首页
联系站长
您现在的位置: 61IC电子在线 >> 厂商 >> ADI亚德诺 >> Blackfin >> 正文
  基于Blackfin 平台的虚拟帧缓冲技术           ★★★ 【字体:
基于Blackfin 平台的虚拟帧缓冲技术
作者:snifer    文章来源:snifer    点击数:    更新时间:2012-2-3    

最近一直用Blackfin做图像方面的开发,其中就用用到了虚拟帧缓冲技术,在此做一个介绍,与大家共同研究。
 
虚拟帧缓冲允许在你的桌面机器上开发Qt/嵌入式程序,而不用在命令台和X11之间来回切换。
 
位于The virtual framebuffer is located in $QTDIR/tools/qvfb
 
运行前保证已经存在一个可以运行 ulinux 系统(内核需要支持 unix socket 选项 )且支持 frambuffer 的 Blackfin 平台环境 , 并且有了 blackfin 平台编译工具链。

使用虚拟帧缓冲
 
确认$QTDIR/src/tools/qconfig.h中的QT_NO_QWS_VFB是没有被定义的,并且编译Qt/Embedded库。
 把qvfb作为一个普通的Qt/X11应用程序来编译并且运行它。不要把它作为一个Qt/嵌入式应用程序来编译。
启动一个Qt/嵌入式主程序(比如,使用QApplication::GuiServer标志来构造一个QApplication或者在命令行下使用-qws参数)。你将会需要指定你所要使用虚拟帧缓冲驱动的服务器,例如:      widgets -qws -display QVFb:0
   
 你也可以设置QWS_DISPLAY环境变量为QVFb:0。
 
qvfb支持下列命令行参数:
 
 
 -width width
虚拟帧缓冲的宽度(默认:240)。

 

-height height
虚拟帧缓冲的高度(默认:320)。

 

-depth depth
虚拟帧缓冲的色深(1、8或者32,默认:8)。

 

-nocursor
在帧缓冲窗口不显示X11光标。

 

-qwsdisplay :id
提供的Qt/嵌入式显示id(默认:0)。

 
 
虚拟帧缓冲设计
 
虚拟帧缓冲使用了共享存储区域(虚拟的帧缓冲)来模拟帧缓冲并且在一个窗口中(qvfb)模拟一个应用来显示帧缓冲。显示的区域被周期性的改变和更新,所以你会看到帧缓冲的不连续的快照,而不是每一个单独的绘画操作。因为这个原因的绘画问题,比如闪烁,知道程序在使用真正的帧缓冲而运行的时候就不会再出现了。
 
目标刷新速度可以通过View|Refresh Rate菜单项来设置。这将会倒置qvfb更加频繁地检查要被刷新的区域。速度仅仅是一个目标。如果一个小的绘画操作完成了,帧缓冲将不会在绘画事件之间显示任何更新。如果一个应用程序正在显示一个动画,更新将会更频繁,并且应用程序和qvfb将会争夺处理器时间。
 
鼠标和键盘事件通过命名管道传递给Qt/嵌入式主程序处理。
 
虚拟帧缓冲只是一个开发工具。在虚拟帧缓冲设计中没有考虑任何安全问题。在产品环境中应该避免这个问题,QT_NO_QWS_VFB在产品库中应该是被定义的。
 
这个技术对图形界面的操作,真的非常给力,在此严重推介!!!

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于Blackfin ADSP BF535实现…
    基于blackfin平台的嵌入式系…
    Blackfin处理器的浮点运算功…
    基于Blackfin处理器的嵌入式…
    Blackfin嵌入式系统的Poling…
    Blackfin处理器在硬件设计上…
    Blackfin嵌入式系统中守护进…
    基于Blackfin的音频子系统的…
    Blackfin系列处理器的C代码优…
    基于Blackfin系列的数组vs.动…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号