基于嵌入式Linux图形用户接口的实现[多图](2)

  SWT是基于Java语言开发出来的高级图形元件库,如图2所示SWT在Java端议决 JNI(Java Native InteRFace)技能直接调用native端的GtkFB来运用操作系统的资源,JNI技能使得SWT程序能够与其他语言编写的Native端的代码互相协作,将它们整合在一起;另一方面可使运行在JVM(JAava虚拟机)中的SWT代码调用GtkFB库函数或其他程序;此外运用 Invocation API,可将Java虚拟机嵌入到native端的使用中。JNI这个接口是双向的,相当于桥梁和纽带,它将SWT代码和native端的GtkFB代码连接起来。

基于嵌入式Linux图形用户接口的实现[多图]图片2

  2.1.2 Gtk库

  如图1所示,GTK会用到多个连接库,如基本数据类型用的Glib库,它是由基本类、核心使用支撑类、实用功能类、数据类和对象系统类五个部分组成的。

  Pango是用于国际化文本的布局和显示的全功能框架。Pango能够处理以非从左到右方向排列的文本,并且能够基本 地维护庞杂语言,甚至还能够处理根据运用环境而采用不一样形式的信函。比方它支撑双向文本,用户能够将从左到右的文本和从右到左的文本混合编排;还可有用于确定各种庞杂文本(如阿拉伯语和泰米尔语)形状的插件。Pango不仅仅是国际化,并且 Pango库在Xft和XRender的支撑下能很好地处理抗锯齿字体文本的显示。

  Pango还支撑各种图形格式如libpng,libjpeg,libtiff和Framebuffer port用的FreeType等。实际上GTK提供gdk-pixbuf,gdk和gtk三个连接库,其中Gdk-pixbuf让咱们可做相关 的图像工作,gdk是窗口绘图系统的抽象层,framebuffer相关 的工作大部分在此完成,而gtk则是高层的使用程序接口。

  Atk(Accessibility Toolkit)可访问性工具箱。GTK充分运用 ATK使残障人士(如视力低下或行动不便)与GTK使用程序交互成为可能。

  2.1.3 GtkFB的工作原理

  DirectFB访问图形硬件装备依靠于操作系统提供的内核接口,即帧缓冲装备(FrameBuffer)。FrameBuffer实际上是用一块硬件来做显卡和软件之间的桥梁,Linux的内核将其开放出来,运用户的程序能够议决块内存来存取显卡。比方设定显示分辨率和色彩数、存取显示内存区等。不一样的Linux须要提供针对不一样显示硬件 FrameBuffer的驱动程序,这就是说DirectFB须要运行于FramBuffer之上,然而Linux内核提供了多见芯片的 FrameBuffer驱动。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27427.html