• Home
Name Date Size #Lines LOC

..--

etc/12-May-2024-3733

figures/12-May-2024-

frameworks/12-May-2024-37,72726,326

interfaces/12-May-2024-30,61324,511

rosen/12-May-2024-314,724220,314

utils/12-May-2024-7,3805,206

.clang-formatD12-May-20243.1 KiB107106

.gitattributesD12-May-2024631 1615

BUILD.gnD12-May-20242.3 KiB8269

CODEOWNERSD12-May-20243.9 KiB3635

LICENSED12-May-20249.9 KiB177150

OAT.xmlD12-May-20244.5 KiB7317

README.mdD12-May-20245.6 KiB6249

README_zh.mdD12-May-20244.3 KiB7359

bundle.jsonD12-May-202412.5 KiB330329

default.scssD12-May-20246 KiB322281

flutter.gniD12-May-2024907 2118

graphic.cfgD12-May-20241.3 KiB4443

graphic.rcD12-May-2024880 2723

graphic_config.gniD12-May-20244.4 KiB145135

hisysevent.yamlD12-May-20246.7 KiB13081

README.md

1# graphic_graphic_2d
2
3- [Introduction](#Introduction)
4- [directory](#directory)
5- [Repositories Involved](#RepositoriesInvolved)
6
7## Introduction
8
9**Graphic subsystem** provides graphical interface capabilities.
10
11Its main structure is shown in the following figure:
12
13![Graphic subsystem architecture diagram](./figures/graphic_rosen_architecture.jpg)
14
15The layered description of the OpenHarmony graphics stack is as follows:
16
17• Interface layer: Provides native API capabilities for graphics, including: WebGL, Native Drawing drawing capabilities, OpenGL instruction-level drawing capabilities support, etc.
18
19• Framework layer: divided into five modules: Render Service, Drawing, Animation, Effect, Display and Memory Management.
20| Module                        | Capability Description                                                                                                                                                                                                                                                                                                                                                            |
21|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
22| Render Servicel               | Provides the rendering capabilities of the UI framework. Its core responsibility is to convert ArkUI's control description into drawing tree information, and perform optimal path rendering according to the corresponding rendering strategy. At the same time, it is responsible for the core underlying mechanism of UI sharing in multi-window smoothness and spatial state. |
23| Drawing                       | Provides a standardized interface within the graphics subsystem, and mainly completes basic functions such as 2D rendering, 3D rendering and rendering engine management.                                                                                                                                                                                                         |
24| Animation                     | Provides related capabilities of the animation engine.                                                                                                                                                                                                                                                                                                                            |
25| Effect                        | Mainly completes the ability to process image effects, rendering effects and other effects, including: multi-effect series and parallel processing, adding rendering effects, control interaction effects and other related capabilities during layout.                                                                                                                           |
26| Display and Memory Management | This module is the main module for the decoupling of the graphics stack and hardware. It mainly defines the display and memory management capabilities of OpenHarmony. The defined southbound HDI interface requires different OEMs to complete the adaptation of the OpenHarmony graphics stack. match.                                                                          |
27
28• Engine layer: includes two modules, 2D graphics library and 3D graphics engine. The 2D graphics library provides the underlying API for 2D graphics rendering, and supports the underlying capabilities of graphics rendering and text rendering. 3D graphics engine capabilities are still under construction.
29
30
31## content
32```
33foundataion/graphic/graphic_2d
34├── figures                      # Markdown referenced image catalog
35├── frameworks                   # framework code directory
36│   ├── animation_server         # animationServer code
37│   ├── bootanimation            # Boot animation directory
38│   ├── fence                    # fence code
39│   ├── vsync                    # Vsync code
40├── rosen                        # framework code directory
41│   ├── build                    # build instructions
42│   ├── doc                      # doc
43│   ├── include                  # external header file code
44│   ├── lib                      # lib
45│   ├── modules                  # graphic Each module code of the subsystem
46│   ├── samples                  # sample code
47│   ├── test                     # develop test code
48│   ├── tools                    # tool code
49├── interfaces                   # graphical interface storage directory
50│   ├── innerkits                # internal native interface storage directory
51│   └── kits                     # js/napi external interface storage directory
52└── utils                        # widget storage directory
53```
54
55
56## Repositories Involved<a name="RepositoriesInvolved"></a>
57- **graphic_graphic_2d**
58- [ace_ace_engine](https://gitee.com/openharmony/ace_ace_engine)
59- [aafwk_standard](https://gitee.com/openharmony/aafwk_standard)
60- [multimedia_player_framework](https://gitee.com/openharmony/multimedia_player_framework)
61- [multimedia_camera_framework](https://gitee.com/openharmony/multimedia_camera_framework)
62- [Windowmanager](https://gitee.com/openharmony/windowmanager)

README_zh.md

1# graphic_2d
2
3-   [简介](#简介)
4-   [目录](#目录)
5-   [相关仓](#相关仓)
6
7## 简介
8
9**Graphic子系统** 提供了图形接口能力。
10
11其主要的结构如下图所示:
12
13![Graphic子系统架构图](./figures/graphic_rosen_architecture.jpg)
14
15OpenHarmony 图形栈的分层说明如下:
16
17• 接口层:提供图形的 Native API能力,包括:WebGL、Native Drawing的绘制能力、OpenGL 指令级的绘制能力支撑等。
18
19• 框架层:分为 Render Service、Drawing、Animation、Effect、显示与内存管理五个模块。
20| 模块                     | 能力描述                                                                                       |
21|------------------------|--------------------------------------------------------------------------------------------|
22| Render Servicel (渲染服务) | 提供UI框架的绘制能力,其核心职责是将ArkUI的控件描述转换成绘制树信息,根据对应的渲染策略,进行最佳路径渲染。同时,负责多窗口流畅和空间态下UI共享的核心底层机制。       |
23| Drawing (绘制)           | 提供图形子系统内部的标准化接口,主要完成2D渲染、3D渲染和渲染引擎的管理等基本功能。                                                |
24| Animation (动画)         | 提供动画引擎的相关能力。                                                                               |
25| Effect (效果)            | 主要完成图片效果、渲染特效等效果处理的能力,包括:多效果的串联、并联处理,在布局时加入渲染特效、控件交互特效等相关能力。                               |
26| 显示与内存管理                | 此模块是图形栈与硬件解耦的主要模块,主要定义了OpenHarmony 显示与内存管理的能力,其定义的南向HDI 接口需要让不同的OEM厂商完成对OpenHarmony图形栈的适配. |
27
28• 引擎层:包括 2D 图形库和 3D 图形引擎两个模块。2D 图形库提供 2D 图形绘制底层 API,支持图形绘制与文本绘制底层能力。3D 图形引擎能力尚在构建中。
29
30
31## 目录
32```
33foundation/graphic/graphic_2d/
34├── figures                 # Markdown引用的图片目录
35├── frameworks              # 框架代码目录
36│   ├── animation_server    # AnimationServer代码
37│   ├── bootanimation       # 开机动画目录
38│   ├── fence               # fence代码
39│   ├── opengl_wrapper      # opengl_wrapper
40│   ├── surface             # Surface代码
41│   ├── surfaceimage        # surfaceimage代码
42│   ├── vsync               # Vsync代码
43│   ├── wm                  # wm代码
44│   ├── wmserver            # wmserver代码
45│   ├── wmservice           # wmservice代码
46│   ├── wmtest              # wmtest代码
47├── rosen                   # 框架代码目录
48│   ├── build               # 构建说明
49│   ├── doc                 # doc
50│   ├── include             # 对外头文件代码
51│   ├── modules             # graphic 子系统各模块代码
52│   ├── samples             # 实例代码
53│   ├── test                # 开发测试代码
54│   ├── tools               # 工具代码
55├── interfaces              # 图形接口存放目录
56│   ├── inner_api           # 内部native接口存放目录
57│   └── kits                # js/napi外部接口存放目录
58└── utils                   # 小部件存放目录
59```
60
61
62## 相关仓
63- [**graphic_graphic_2d**](https://gitee.com/abbuu_openharmony/graphic_graphic_2d)
64- [arkui_ace_engine](https://gitee.com/openharmony/arkui_ace_engine)
65- [ability_ability_runtime](https://gitee.com/openharmony/ability_ability_runtime)
66- [multimedia_player_framework](https://gitee.com/openharmony/multimedia_player_framework)
67- [multimedia_image_framework](https://gitee.com/openharmony/multimedia_image_framework)
68- [Windowmanager](https://gitee.com/openharmony/windowmanager)
69- [third_party_egl](https://gitee.com/openharmony/third_party_egl)
70- [third_party_opengles](https://gitee.com/openharmony/third_party_opengles)
71- [third_party_skia](https://gitee.com/openharmony/third_party_skia)
72- [third_party_giflib](https://gitee.com/openharmony/third_party_giflib)
73