鸿蒙开源组件——图形SURFACE组件
Tiechui.Wang 2021-07-05 10:02:00 发布3453 浏览 19 点赞 24 收藏
图形SURFACE组件
简介
Surface组件用于管理和传递图形和媒体的共享内存。具体场景包括了图形的送显、合成,媒体的播放、录制等。
Surface的跨进程传输使用IPC传输句柄等控制结构(有拷贝),使用共享内存传递图形/媒体数据(零拷贝)。
图 1 surface在系统架构中的位置(绿色部分为surface buffer)

目录
/foundation/graphic/surface
├── frameworks # 框架代码
├── interfaces # 接口
│ ├── innerkits # 模块间接口
│ └── kits # 对外接口
└── test # 测试代码
├── fuzztest # fuzz测试
└── unittest # 单元测试编译构建
# 通过gn编译,在out目录下对应产品的文件夹中生成libsurface.so
hb build lite_surface说明
流程说明
以WMS组件和UI组件交互为例,UI为生产者,WMS为消费者。
生产者:从Free队列中获取Buffer,将UI内容绘制到Buffer中,然后将Buffer放到Dirty队列;
消费者:从Dirty队列中获取Buffer并进行合成,然后将Buffer重新放到Free队列中。
图 2 Surface轮转流程

须知: 由于使用了共享内存,而共享内存的管理任务在首次创建Surface的进程中,因此需要对该进程格外关注,如果发生进程异常且没有回收处理会发生严重的内存泄漏; Surface一般用作图形/媒体中大块内存的跨进程传输(如显示数据),尤其在使用了连续物理内存的情况下,可以大幅提高传输速率。不建议用在小内存传输的场景,容易造成内存碎片化影响典型场景的性能。
使用说明
可参考图形图形WMS组件。
相关仓
图形子系统
graphic_wms
graphic_surface
graphic_ui
graphic_utils
©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
标签
鸿蒙
操作系统
HarmonyOS
暂无评论数据
发布
相关推荐
鸿蒙实战项目案例_从零构建完整应用的完整复盘
周正
303
0鸿蒙生物识别开发:从指纹识别到3D人脸识别的完整指南
周正
425
0鸿蒙NFC开发实战:从读卡器模式到卡模拟的完整实现
周正
95
0鸿蒙加密存储开发:数据安全保护的完整方案
周正
164
0鸿蒙应用签名与上架完整流程:从开发到发布的实战指南
周正
449
0
Tiechui.Wang
我还没有写个人简介......
1091
帖子
0
提问
893
粉丝
最新发布
华为应用市场增长优化师火热认证中
2025-03-10 10:16:02 发布华为应用市场斩获Pocket Gamer2023年移动游戏奖,全球第三大移动应用生态获行业认可
2024-04-27 11:06:07 发布热门推荐