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│ ├── dumper # graphic dumper code
39│ ├── fence # fence code
40│ ├── vsync # Vsync code
41├── rosen # framework code directory
42│ ├── build # build instructions
43│ ├── doc # doc
44│ ├── include # external header file code
45│ ├── lib # lib
46│ ├── modules # graphic Each module code of the subsystem
47│ ├── samples # sample code
48│ ├── test # develop test code
49│ ├── tools # tool code
50├── interfaces # graphical interface storage directory
51│ ├── innerkits # internal native interface storage directory
52│ └── kits # js/napi external interface storage directory
53└── utils # widget storage directory
54```
55
56
57## Repositories Involved<a name="RepositoriesInvolved"></a>
58- **graphic_graphic_2d**
59- [ace_ace_engine](https://gitee.com/openharmony/ace_ace_engine)
60- [aafwk_standard](https://gitee.com/openharmony/aafwk_standard)
61- [multimedia_player_framework](https://gitee.com/openharmony/multimedia_player_framework)
62- [multimedia_camera_framework](https://gitee.com/openharmony/multimedia_camera_framework)
63- [Windowmanager](https://gitee.com/openharmony/windowmanager)