从android角度看2D加速图形引擎

转自http://blog.chinaunix.net/u3/99423/showart_2196578.html

 

1.      2D 图像加速引擎之于 android 系统的必要性:

实验过程:通过在两台智器 q5 上做对比测试,使用操作系统均为 android1.5 版本。其中一台所运行的 android 是日本团队为智器 q5 开发(已打开 2D 加速)显示效果非常流畅。另一台所运行的 android 是我们团队自己移植编译的(没有打开 2D 加速),窗口在拖拉的时候会出现闪烁。

实验结论:基本确认 2D 图形加速引擎对于运行 android 不可缺少。

 

2.      android 2D 图像加速引擎的要求:

Android 对底层 2D 图形加速引擎的调用主要是通过两个方面,一个是 copybit ,一个是标准的 OpenGL ES

copybit 的硬件要求: 实现 copybit 对硬件的要求不高,它只是基本 2D 功能的子集,包括旋转,放大缩小,颜色 / 像素格式转换(这些特性可以被部分支持)。

OpenGL ES 的硬件要求: 如果是实现标准的 OpenGL 则需要硬件 IP 完整支持 OpenGL ES

 

Android 对这两者的支持在版本上稍有差异,可以从两个方面来讲,一个是 android1.6 版本之前,一个是 android1.6 版本之后。

A. android1.6 之前( cupcake donut

android1.6 之前(包含 1.6 版本),在 copybit 模块和 OpenGL ES 同时存在时,界面( SurfaceFlinger )会自动优先调用 copybit 模块。

B. android1.6 之后( 2.0  2.1

donut 版本( android1.6 )之后, copybit 模块不会被界面( SurfaceFlinger )直接调用,而是作为 Open GL ES 1.x 的后端处理使用, SurfaceFlinger 只会被 Open GL ES API 调用。在未来的 android 版本中 copybit 将会被淘汰掉。(官方原话:  Eventually, the copybit module will be phased out, instead, we will ask the ISV/OEMs to implement these features on their OpenGL ES drivers, if they think it is necessary.

 

3.      结论:

android 的角度来看有两种方案: 1 使用 copybit ,这样对 2D 的硬件要求不高,而且在可预见的未来还是能够被 android 支持的。 2 使用 OpenGL 的标准,这是 android 的未来趋势,但是无论在硬件还是软件的实现代价太大。

鉴于此,我个人推荐使用 copybit 。下面是需要实现 android 实现 copybit 2D 图形加速引擎具体要求( These features can be supported in full or partially. ):

 

 

必须支持

可选

 

颜色格式 RGB_565  

RGBA_8888    BGRA_8888    RGBA_5551   RGBA_4444

YCbCr_422_SP           YCbCr_420_SP    YCbCr_422_I

 

旋转 90 ° 180 ° 270 ° x-flip y-flip

 

 

矩形区域的缩放

 

 

Alpha blending (可以任意选定两块相同大小区域作为源)

 

 

Bitblt

 

 

Clip 剪切

 

 

 

DITHER

 

 

不同颜色格式间的转换

注:必须支持是指 copybit 源代码中已包括的常见操作,且一般主流的 2D 图形加速引擎都会支持的特性。可选是指 copybit 源码中已经包括了这个特性,但有些厂商没有为他们的 2D 图形引擎驱动实现,如有余力建议加上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值