前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[010]HWC在SurfaceFlinger中的角色

[010]HWC在SurfaceFlinger中的角色

作者头像
王小二
发布2020-06-08 10:46:01
1.7K0
发布2020-06-08 10:46:01
举报

前言

HWC是Hardware Composer是缩写,翻译成中文就是硬件作曲家,或者硬件设计者。

在android手机中的开发者模式中就有一个Hardware Composer的开关选项,HWC通常是由显示设备硬件 OEM提供的功能。

Hardware Composer的开关选项

举个栗子

[009]SurfaceFlinger是什么东西中提到,王老师每天要临摹三个贴纸上房子,小河,山到了一张固定尺寸的白纸上,每天将当天画的美术作品给美术馆,让其展览。有一天王老师回到家和老婆说:“老婆,每天需要临摹,好累啊,尤其那座山,特别难画。”,王老师的老婆说:你傻不傻,你就不会只临摹房子和小河,然后把那座山直接贴上去嘛,反正山和房子,小河也没有任何重叠的部位。王老师说:“老婆,你真的太聪明了。”

HWC在SurfaceFlinger中就好比王老师直接把那座山贴上去的行为

理解一下HWC在SurfaceFlinger的作用

看下图

在关闭HWC的情况下,状态栏,当前Activity,导航栏的三个Surface,是通过OpenGL方式合成到FrameBuffer中。

在开启HWC的情况下,状态栏,当前Activity先通过OpenGL方式合成一部分,然后通过HWC合成导航栏的Surface到FrameBuffer中

HWC在SurfaceFlinger的作用

HWC的好处

1.提升每一帧画面的合成速度,提升用户界面的流畅度

2.相比OpenGL使用GPU来合成,HWC的合成,相对来说更加省电

总结

HWC是SurfaceFlinger的重要的角色,当然具体的代码肯定更加复杂,比如确定那几个surface可以直接通过HWC合成,这些都是需要大家自己去看代码,但是带着对HWC的理解再去看代码,我相信会更加容易的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 举个栗子
  • 理解一下HWC在SurfaceFlinger的作用
  • HWC的好处
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档