注意,三个程序全部载入图形驱动程序 (devg),并直接控制图形硬件。每个程序都有机会使用图形硬件(通过请求并接收 io-display 监视进程控制的互斥)。独占访问的顺序是根据请求程序的优先级确定的。
io-display 监视进程启动后,应用程序就可使用图形框架库 (libgf) 和 OpenGL® ES 库以获取图形上下文并交给设备。
第三方应用程序框架或现有的内部框架可与 QNX 高级图形技术开发工具包一起轻松连用。现有的图形框架可选择使用任何一种底层支持功能,如 2D/3D 绘图、图像和字体支持。简单的包装例程可以淡化方式使绘图操作抽象化,同时仍能为现有框架提供图形框架本身固有的性能和实时功能。
图形框架组件
QNX 图形框架内部的概念组件可将图形环境划分成可理解的层次。这些组件包括:
· 图形设备
· 显示器
· 图层
· 表面
· 上下文
图形设备与显示器是代表图形框架管理的硬件组件的逻辑实体。图形设备是一个图形硬件,它隶属 io-display 显示进程并由其通过适当的 devg-* 驱动程序进行控制。每个设备在 /dev/io-display 中都有一个入口。
每个设备都至少有一个显示器,代表终端用户观看的视频显示器。某些设备是多头的,即其支持多台显示器。
图形层表示显示器显示的内存区域。某些现代图形设备支持多个图层,尽管从图形框架的角度看,所有显示器应至少有一个图层(层 0)。图层为在显示器上对内容进行分层提供了极大的灵活性。例如,用户可在背景图层中置入卷动地图,然后通过图形用户界面控制地图在前面图层中的卷动。应用程序可顺利地卷动地图而无需重画图形用户界面控制,从而消除了闪烁并减少了对 CPU 的占用。用户无论何时想显示文本或在视觉信息上方显示图形用户界面,分层都能提供极大的帮助。
该图说明了图形设备、显示器和图层三者间的关系:
示意图:图形设备、显示器和图形层阶
注意,三个程序全部载入图形驱动程序 (devg),并直接控制图形硬件。每个程序都有机会使用图形硬件(通过请求并接收 io-display 监视进程控制的互斥)。独占访问的顺序是根据请求程序的优先级确定的。
io-display 监视进程启动后,应用程序就可使用图形框架库 (libgf) 和 OpenGL® ES 库以获取图形上下文并交给设备。
第三方应用程序框架或现有的内部框架可与 QNX 高级图形技术开发工具包一起轻松连用。现有的图形框架可选择使用任何一种底层支持功能,如 2D/3D 绘图、图像和字体支持。简单的包装例程可以淡化方式使绘图操作抽象化,同时仍能为现有框架提供图形框架本身固有的性能和实时功能。
图形框架组件
QNX 图形框架内部的概念组件可将图形环境划分成可理解的层次。这些组件包括:
· 图形设备
· 显示器
· 图层
· 表面
· 上下文
图形设备与显示器是代表图形框架管理的硬件组件的逻辑实体。图形设备是一个图形硬件,它隶属 io-display 显示进程并由其通过适当的 devg-* 驱动程序进行控制。每个设备在 /dev/io-display 中都有一个入口。
每个设备都至少有一个显示器,代表终端用户观看的视频显示器。某些设备是多头的,即其支持多台显示器。
图形层表示显示器显示的内存区域。某些现代图形设备支持多个图层,尽管从图形框架的角度看,所有显示器应至少有一个图层(层 0)。图层为在显示器上对内容进行分层提供了极大的灵活性。例如,用户可在背景图层中置入卷动地图,然后通过图形用户界面控制地图在前面图层中的卷动。应用程序可顺利地卷动地图而无需重画图形用户界面控制,从而消除了闪烁并减少了对 CPU 的占用。用户无论何时想显示文本或在视觉信息上方显示图形用户界面,分层都能提供极大的帮助。
该图说明了图形设备、显示器和图层三者间的关系:
表面是图形框架库可渲染的一块内存。如表面与图层(图层可见)相连,渲染到表面上的所有内容都会出现在图层的显示器上。表面必须具有图层支持的像素格式,以正确显示渲染到表面上的对象。通常,一个图层会对应一个单独表面(或与其相关)。在普通平面数据以外,如通常用于视频采集的平面 YUV,它需要三个表面(每个视频组件对应一个表面)。
在默认情况下,图形框架会在视频内存中分配一个表面,以达到最佳显示性能。但在创建表面时,用户可以请求对其优化以便访问 CPU,这意味着它会被分配到系统内存中。
上下文是指在渲染函数调用间保持渲染目标信息的结构,如笔宽、前景/背景颜色和裁剪矩形。一个上下文对应一个表面,而且它还是所有图形框架绘图函数的一个参数。表面可用于 2D 绘图或 OpenGL ES 3D 绘图。在显示之前,表面可组合到多个图层中。
该图说明了上下文、表面和图层之间的关系:
示意图:上下文、表面和图层
通过综合利用显示器、图层、表面和绘图上下文,用户就能通过简单的程序制作极精良的屏幕显示效果。下面的 2D 导航实例显示的是支持四个图层的图形环境。有三个图层正在被使用:一个用于 2D 地图显示,一个用于菜单/触摸屏,另一用于警告信息。系统设计人员可选择将其制作成一个完整的程序,也可制作成三个独立的程序。正确使用色度键和透明混合处理技术,将保证图层之间的可见度。
增加 3D 效果就像开发 OpenGL® ES 程序一样简单,无论是使用 3D 升级取代 2D 程序,还是在同一图层中以 2D 方式(分屏)运行 OpenGL® ES 程序。
增加网页浏览器就像在图层中启动 Photon 程序,然后运行定制网页浏览器(利用 QNX 网页浏览器技术开发工具包开发的)一样简单。
规格说明
· 二进制文件
o 用于 PPC、X86、SH 和 ARM 的 OpenGL ES 库和二维库
o 纯软件 OpenGL ES 库,为缺少 3D 硬件加速的图形芯片提供 3D支持
o io-display 监视进程
o 管理器支持同时运行 3D 和 2D 程序
o 图像加载库支持多种图像格式。
§ JPEG, PNG, BMP, TGA, SGA, GIF
o 字体库
§ TrueType, Bitmap, Font Fusion (Bitstream 笔画字体)。(示例字体文件由 QNX Momentics 开发工具套装提供)
o Fujitsu Coral B/P/PA 图形驱动程序:x86, PPC, SH
o Fujitsu Carmine 图形驱动程序:x86, SH
o Intel Extreme2 (855GM) 图形驱动程序:x86
o VESABios 图形驱动程序:用于符合 x86 VESA 标准的图形控制器
o VMWare 图形驱动程序:用于 QNX VMWare 会话
o 预编译的用于测试 2D 和 3D 的示例程序
· 文档
o 图形框架开发人员应用指南
o OpenGL ES 1.0 文档集
o 字体融合应用程序接口文件
· 配置文本文件
o 定义视频设置的配置文件(图形芯片初始化等无需修改代码就能轻松适应显示组合)
· 示例源代码
o 2D 示例:绘制矩形、载入并显示图像、载入并显示文本等
o 图层控制:打开/关闭图层、改变色度等
o 3D 示例:顶点数组、纹理地图等
o 还有更多
如 QNX Photon microGUI 视窗系统与客户产品一起提供,则每个运行时均需要 Photon 授权许可。
用于定制网页浏览器的网页浏览器技术开发工具包是单独销售的。
系统要求
· QNX Momentics® 开发工具套件专业版 v6.3 及更高版本
· QNX Neutrino® 实时操作系统 v6.3 及更高版本(运行时)
· 支持硬件:
· X86、PPC、SH4 和 ARM 目标机
· 支持图像渲染器
o Fujitsu Coral-B/P/PA
o Fujitsu Carmine
o Intel Extreme2
o VMWare 会话(可选,用于在 Windows 下检测 2D/3D 程序的有用目标机)
o VESABios X86 图形芯片支持(非加速型)