图形子系统.md 5.3 KB
Newer Older
M
mamingshuai 已提交
1
# 图形子系统<a name="ZH-CN_TOPIC_0000001115588688"></a>
N
NEEN 已提交
2

M
mamingshuai 已提交
3 4 5 6 7 8
-   [1.1 轻量系统](#section1346303311377)
    -   [简介](#section1165992615384)
    -   [目录](#section141331948134020)
    -   [约束](#section15729113104112)
    -   [说明](#section812962919413)
    -   [相关仓](#section12651205434115)
N
NEEN 已提交
9

M
mamingshuai 已提交
10 11 12 13 14 15 16
-   [1.2 标准系统](#section1249610812538)
    -   [简介](#section1374615251510)
    -   [目录](#section16751364713)
    -   [约束](#section126494189715)
    -   [编译构建](#section883114292070)
    -   [说明](#section1351214227564)
    -   [相关仓](#section11578621131119)
N
NEEN 已提交
17

M
mamingshuai 已提交
18 19 20 21 22 23

图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备(如平板和轻智能机等)的OpenHarmony系统应用开发。

## 1.1 轻量系统<a name="section1346303311377"></a>

### 简介<a name="section1165992615384"></a>
N
NEEN 已提交
24 25 26

图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS的应用框架,满足硬件资源较小的物联网设备的OpenHarmony系统应用开发。

M
mamingshuai 已提交
27
**图 1**  图形子系统架构图<a name="fig16488143010409"></a>  
N
NEEN 已提交
28 29 30 31
![](figures/图形子系统架构图.png "图形子系统架构图")

各模块介绍:

C
chenlu 已提交
32
-   View:应用组件,包括UIView、UIViewGroup、UIButton、UILabel、UILabelButton、UIList、UISlider等。
N
NEEN 已提交
33 34 35 36 37 38 39 40 41 42 43
-   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:输入事件管理模块。

M
mamingshuai 已提交
44
### 目录<a name="section141331948134020"></a>
N
NEEN 已提交
45 46 47 48 49 50 51 52 53

```
/foundation/graphic
├── surface  # 共享内存
├── ui       # UI模块,包括UI控件、动画、字体等功能
├── utils    # 图形基础库和硬件适配层
└── wms      # 窗口管理和输入事件管理
```

M
mamingshuai 已提交
54
### 约束<a name="section15729113104112"></a>
N
NEEN 已提交
55 56 57 58

-   图形组件不支持多线程并发操作,建议相关操作都在ui线程中执行;
-   utils/interfaces/innerkits/graphic\_config.h文件列举了图形部分可配置功能的宏开关,需要在编译前配置,配置时需要注意部分宏开关是分平台配置的。

M
mamingshuai 已提交
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
### 说明<a name="section812962919413"></a>

参考各仓README以及test目录

### 相关仓<a name="section12651205434115"></a>

**图形子系统**

graphic\_surface

graphic\_ui

graphic\_wms

graphic\_utils

## 1.2 标准系统<a name="section1249610812538"></a>

### 简介<a name="section1374615251510"></a>

**Graphic子系统**  提供了图形接口能力和窗口管理接口能力, 支持应用程序框架子系统和ACE等子系统使用。支持所有运行标准系统的设备使用。

其主要的结构如下图所示:

![](figures/zh-cn_image_0000001115748590.png)

-   Surface

    图形缓冲区管理接口,负责管理图形缓冲区和高效便捷的轮转缓冲区。

-   Vsync

    垂直同步信号管理接口,负责管理所有垂直同步信号注册和响应。

-   WindowManager

    窗口管理器接口,负责创建和管理窗口。

-   WaylandProtocols

    窗口管理器和合成器的通信协议。
N
NEEN 已提交
100

M
mamingshuai 已提交
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
-   Compositor

    合成器,负责合成各个图层。

-   Renderer

    合成器的后端渲染模块。

-   Wayland protocols

    Wayland 进程间通信协议

-   Shell

    提供多窗口能力

L
lcjh 已提交
117
-   Input Manager
M
mamingshuai 已提交
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149

    多模输入模块,负责接收事件输


### 目录<a name="section16751364713"></a>

```
foundation/graphic/standard/
├── frameworks              # 框架代码目录
│   ├── bootanimation       # 开机动画目录
│   ├── surface             # Surface代码
│   ├── vsync               # Vsync代码
│   └── wm                  # WindowManager代码
├── interfaces              # 对外接口存放目录
│   ├── innerkits           # native接口存放目录
│   └── kits                # js/napi接口存放目录
└── utils                   # 小部件存放目录
```

### 约束<a name="section126494189715"></a>

语言版本:C++11及以上

### 编译构建<a name="section883114292070"></a>

可以依赖的接口有:

-   graphic\_standard:libwms\_client
-   graphic\_standard:libsurface
-   graphic\_standard:libvsync\_client

### 说明<a name="section1351214227564"></a>
N
NEEN 已提交
150 151 152

参考各仓README以及test目录

M
mamingshuai 已提交
153 154 155 156 157 158 159
### 相关仓<a name="section11578621131119"></a>

**图形子系统**

graphic\_standard

ace\_ace\_engine
N
NEEN 已提交
160

M
mamingshuai 已提交
161
aafwk\_standard
N
NEEN 已提交
162

M
mamingshuai 已提交
163
multimedia\_media\_standard
N
NEEN 已提交
164

M
mamingshuai 已提交
165
multimedia\_camera\_standard
N
NEEN 已提交
166