Android HAL consists of several hardware accelerated modules, and copybit is one of them implemented in G1 phone.

While OpenGL ES cannot be used or it's in software implementation, copybit is used. Actually in cupcake branch, SurfaceFlinger always uses copybit instead of GL if copybit is available -- but that's an oversight.

[[ Functions ]]
copybit is just an abstraction for a basic 2D blitter with support for rotation, scaling and color/pixelformat conversions. These features can be supported in full or partially.

If the copybit module is present, then SurfaceFlinger will try to use it instead of using OpenGL ES.

On the G1 copybit is used for all window compositions and video playback (CC and scaling), on this h/w copybit is very fast and provide very good up and down scaling.

[[ Donut Changes ]]
HOWEVER, on the release after Donut, the copybit module won't be used by SurfaceFlinger directly, instead it will be used as a back-end for our software OpenGL ES 1.x and SurfaceFlinger will only use the OpenGL ES API. 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.

[[ Usability ]]
If your h/w doesn't have accelerated GL, but has some sort of decent 2D blitter, you can write a copybit HAL module for it, and it will be used automatically by SurfaceFlinger -- at least under cupcake and donut.

[[ Limitations ]]
There are no mechanism to accelerate applications at the moment. Skia is a purely software renderer. It can greatly benefit from newer CPUs though, which have SIMD instructions, often, it'll be able to operate at bus speed in that case. We're working on optimization in that area.

If a device has a GPU, it makes no sense to implement copybit, because

(1) it won't be used by apps and

(2) SurfaceFlinger already uses the GPU for its work.

Now, if the device has an additional 2D part (like the G1), it is useful to implement copybit, this way application won't have to share the GPU with SurfaceFlinger

From: http://hi.baidu.com/zhupan19851230/item/a2a9ff13a1ffd606b98a1ad4

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android(安卓)PendingIntent和Intent
  2. android获取系统当前年月日时分秒的时间
  3. 使用NanoHTTPD在android实现web迷你服务
  4. Android下的SQLite数据库的相关操作及And
  5. Android(安卓)NDK编译时出现的问题以及解
  6. 第一章:初入Android大门(程序加载应用)
  7. Android中ListView异步加载数据
  8. android 验证码 (canvas)
  9. Android(安卓)永久隐藏导航栏,系统栏的方
  10. Android(安卓)SDK Manager设置代理服务器