Android surfaceflinger 源代码分析

1.每个应用都对应surfaceflinger端一个surface,每个应用都会申请一块用于存储渲染数据的内存块,这个内存是通过gralloc分配的,但是gralloc给应用分配的只是普通内存,只有给surfaceflinger才分配了真正的对应显示屏的内存。

2.应用先将自己的渲染结果放在自己的那块普通内存上,然后surfaceflinger负责将这些内存块按照z坐标进行裁剪合成,最后写入到gralloc分配的那块显示内存上去。

3.不管是应用还是surfaceflinger将显示结果渲染到对应的内存块中都是采用OpenGL的通用接口。

4.用openGL渲染时需要给他指定一个ANativeWindown。应用往复跟surfaceflinger通信就是主要得到一块用于显示的内存区域,进而构造一个ANativeWidown,于是乎就可以调用OpenGL的借口绘制,不用关心底层的细节。

5.每个应用都对应一个ShareClient,每个ShareClient对应31个SharedBufferStack


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值