鸿蒙开源组件——图形SURFACE组件
头像 Tiechui.Wang 2021-07-05 10:02:00    发布
3453 浏览 19 点赞 24 收藏

图形SURFACE组件

简介

Surface组件用于管理和传递图形和媒体的共享内存。具体场景包括了图形的送显、合成,媒体的播放、录制等。

Surface的跨进程传输使用IPC传输句柄等控制结构(有拷贝),使用共享内存传递图形/媒体数据(零拷贝)。

图 1 surface在系统架构中的位置(绿色部分为surface buffer)

鸿蒙开源组件——图形SURFACE组件-鸿蒙开发者社区


目录


/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的进程中,因此需要对该进程格外关注,如果发生进程异常且没有回收处理会发生严重的内存泄漏; Surface一般用作图形/媒体中大块内存的跨进程传输(如显示数据),尤其在使用了连续物理内存的情况下,可以大幅提高传输速率。不建议用在小内存传输的场景,容易造成内存碎片化影响典型场景的性能。

使用说明

可参考图形图形WMS组件。

相关仓

图形子系统

graphic_wms

graphic_surface

graphic_ui

graphic_utils


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它

暂无评论数据

发布

头像

Tiechui.Wang

我还没有写个人简介......

1091

帖子

0

提问

893

粉丝

关注
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255