# 图形子系统 - [1.1 轻量系统](#section1346303311377) - [简介](#section1165992615384) - [目录](#section141331948134020) - [约束](#section15729113104112) - [说明](#section812962919413) - [相关仓](#section12651205434115) - [1.2 标准系统](#section1249610812538) - [简介](#section1374615251510) - [目录](#section16751364713) - [约束](#section126494189715) - [编译构建](#section883114292070) - [说明](#section1351214227564) - [相关仓](#section11578621131119) 图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备(如平板和轻智能机等)的OpenHarmony系统应用开发。 ## 1.1 轻量系统 ### 简介 图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS的应用框架,满足硬件资源较小的物联网设备的OpenHarmony系统应用开发。 **图 1** 图形子系统架构图 ![](figures/图形子系统架构图.png "图形子系统架构图") 各模块介绍: - View:应用组件,包括UIView、UIViewGoup、UIButton、UILabel、UILabelButton、UIList、UISlider等。 - Animator:动画模块,开发者可以自定义动画。 - Layout:布局控件,包括Flexlayout、GridLayout、ListLayout等。 - Transform:图形变换模块,包括旋转、平移、缩放等。 - Event:事件模块,包括click、press、drag、long press等基础事件。 - Rendering engine:渲染绘制模块。 - 2D graphics library:2D绘制模块,包括直线、矩形、圆、弧、图片、文字等绘制。包括软件绘制和硬件加速能力对接。 - Multi-language:多语言模块,用于处理不用不同语言文字的换行、整形等。 - Image library:图片处理模块,用于解析和操作不同类型和格式的图片,例如png、jpeg、ARGB8888、ARGB565等 - WindowManager:窗口管理模块,包括窗口创建、显示隐藏、合成等处理。 - InputManager:输入事件管理模块。 ### 目录 ``` /foundation/graphic ├── surface # 共享内存 ├── ui # UI模块,包括UI控件、动画、字体等功能 ├── utils # 图形基础库和硬件适配层 └── wms # 窗口管理和输入事件管理 ``` ### 约束 - 图形组件不支持多线程并发操作,建议相关操作都在ui线程中执行; - utils/interfaces/innerkits/graphic\_config.h文件列举了图形部分可配置功能的宏开关,需要在编译前配置,配置时需要注意部分宏开关是分平台配置的。 ### 说明 参考各仓README以及test目录 ### 相关仓 **图形子系统** graphic\_surface graphic\_ui graphic\_wms graphic\_utils ## 1.2 标准系统 ### 简介 **Graphic子系统** 提供了图形接口能力和窗口管理接口能力, 支持应用程序框架子系统和ACE等子系统使用。支持所有运行标准系统的设备使用。 其主要的结构如下图所示: ![](figures/zh-cn_image_0000001115748590.png) - Surface 图形缓冲区管理接口,负责管理图形缓冲区和高效便捷的轮转缓冲区。 - Vsync 垂直同步信号管理接口,负责管理所有垂直同步信号注册和响应。 - WindowManager 窗口管理器接口,负责创建和管理窗口。 - WaylandProtocols 窗口管理器和合成器的通信协议。 - Compositor 合成器,负责合成各个图层。 - Renderer 合成器的后端渲染模块。 - Wayland protocols Wayland 进程间通信协议 - Shell 提供多窗口能力 - Input Manager 多模输入模块,负责接收事件输 ### 目录 ``` foundation/graphic/standard/ ├── frameworks # 框架代码目录 │ ├── bootanimation # 开机动画目录 │ ├── surface # Surface代码 │ ├── vsync # Vsync代码 │ └── wm # WindowManager代码 ├── interfaces # 对外接口存放目录 │ ├── innerkits # native接口存放目录 │ └── kits # js/napi接口存放目录 └── utils # 小部件存放目录 ``` ### 约束 语言版本:C++11及以上 ### 编译构建 可以依赖的接口有: - graphic\_standard:libwms\_client - graphic\_standard:libsurface - graphic\_standard:libvsync\_client ### 说明 参考各仓README以及test目录 ### 相关仓 **图形子系统** graphic\_standard ace\_ace\_engine aafwk\_standard multimedia\_media\_standard multimedia\_camera\_standard