实现自己的HAL1 surfaceFlinger 简介
发布日期:2021-06-28 20:33:42
浏览次数:2
分类:技术文章
本文共 722 字,大约阅读时间需要 2 分钟。
SurfaceFlinger的hal层的代码的实现
surfaceFlinger 简介
每个应用程序可能对应着一个或者多个图形界面,而每个界面我们就称之为一个surface,或者说是window,在上面的图中我们能看到4个surface ,一个是home界面还有就是红、绿、蓝分别代表的3个surface,而两个button 实际是home surface里面的内容。在这里我们能看到我们进行图形显示所需要解决的问题:
-
首先每个surface在屏幕上有它的位置,以及大小,然后每个surface里面大小,位置这些元素在我们改变应用程序的时候都可能会改变。
-
然后就各个surface之间可能有重叠,比如说在上面的简略图中,绿色覆盖了蓝色,而红色又覆盖了绿色和蓝色以及下面的home,而且还具有
一定透明度。 -
SurfaceFlinger就是将系统所有需要显示的元素混合后,发送数据给显示设备方进行显示主要操作FrameBuffer和Galloc两个HAL模块
surfaceFlinger 的hal 代码实现分析
- 代码路径Hal代码:
/hardware/libhardware/include/hardware/fb.h/hardware/libhardware/include/hardware/gralloc.h/hardware/libhardware/moudles/gralloc/
调用代码路径:
/frameworks/native/libs/ui/FramebufferNativeWindow.cpp
- 头文件解析 fb主要是对应framebuffer设备的图形数据处理 gralloc主要是对应gpu的图形数据空间的申请和释放
转载地址:https://blog.csdn.net/yangbinbingA/article/details/117695433 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月31日 10时10分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
node同步异步写入文件
2019-04-29
node读取二进制文件
2019-04-29
Git仓库的安装及基本使用
2019-04-29
linux下利用docker安装gogs
2019-04-29
node根据路由显示不同html文字及图片混合模板内容
2019-04-29
linux文件系统挂载与卸除
2019-04-29
LVM逻辑卷管理
2019-04-29
node接受get及post请求参数
2019-04-29
go简单的struct用法
2019-04-29
js中let与箭头函数
2019-04-29
ajax上传附件
2019-04-29
ajax大文件分片上传服务器
2019-04-29
select绑定change事件
2019-04-29
beego简单分页
2019-04-29
beego封装简单分页类
2019-04-29
nginx代理访问go web
2019-04-29
mysql的group_concat结合group by使用方法
2019-04-29
layui富文本编辑器的使用
2019-04-29
laydate日期插件时间
2019-04-29
h5页面微信分享代码
2019-04-29