RK3399平台开发系列讲解(系统篇)1.3、安卓系统SurfaceFlinger显示框架
【摘要】 假设现在有多个app1 2 3,如果它们随意访问fb,则屏幕显示必然是混乱不堪的。 因此系统必须要有一个统一的管理者SurfaceFlinger
SurfaceFlinger的任务
给app提供buffer 1.1、 通过gralloc模块向ashmen申请内存 1.2 、得到一个fd 1.3 、通过binder把fd传给某个app 1.4、 app再mmap('...
假设现在有多个app1 2 3,如果它们随意访问fb
,则屏幕显示必然是混乱不堪的。
因此系统必须要有一个统一的管理者SurfaceFlinger
SurfaceFlinger的任务
-
给
app
提供buffer
1.1、 通过gralloc
模块向ashmen
申请内存
1.2 、得到一个fd
1.3 、通过binder
把fd
传给某个app
1.4、app
再mmap('fd')
-
app
1
2
3
把各自界面发给它,它根据层次、大小进行合成,显示
2.1、根据各个界面的z
值(由WindowManagerService
确定)决定前后顺序
2.2、把这些排序后的buffer
传给HardwareComposer
-
当
hwc
不能处理(无hwc
硬件、超出hwc
层数)buffer
时,使用图形库GL
来处理
文章来源: xuesong.blog.csdn.net,作者:内核笔记,版权归原作者所有,如需转载,请联系作者。
原文链接:xuesong.blog.csdn.net/article/details/88828304
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)