# Graphics - [Introduction](#section1333751883213) - [Directory Structure](#section1882912343) - [Constraints](#section68982123611) - [Compilation and Building](#section671864110372) - [Available APIs](#section197399520386) - [WindowManager](#section5851104093816) - [Window](#section3483122273912) - [SubWindow](#section96481249183913) - [Surface](#section12366161544010) - [SurfaceBuffer](#section12001640184711) - [VsyncHelper](#section1392116294211) - [Usage](#section18359134910422) - [Transferring a Producer Surface](#section193464304411) - [Creating a Producer Surface](#section1276823075112) - [Producing a SurfaceBuffer](#section614545716513) - [Consuming a SurfaceBuffer](#section315285412535) - [Adding Custom Data to a SurfaceBuffer](#section612412125616) - [Registering a Vsync Callback Listener](#section1148115214576) - [\#EN-US\_TOPIC\_0000001105482134/section1939493174420](#section1939493174420) - [Repositories Involved](#section6488145313) ## Introduction The Graphics subsystem provides graphics and window management capabilities, which can be invoked by using Java or JS APIs. It can be used for UI development for all standard-system devices. The following figure shows the architecture of the Graphics subsystem. ![](figures/graphic.png) - Surface Provides APIs for managing the graphics buffer and the efficient and convenient rotation buffer. - Vsync Provides APIs for managing registration and response of all vertical sync signals. - WindowManager Provides APIs for creating and managing windows. - WaylandProtocols Provides the communication protocols between the window manager and synthesizer. - Compositor Implements synthesis of layers. - Renderer Functions as the back-end rendering module of the synthesizer. - Wayland protocols Provides Wayland inter-process communication protocols. - Shell Provides multi-window capabilities. - Input Manger Functions as the multimodal input module that receives input events. ## Directory Structure ``` foundation/graphic/standard/ ├── frameworks # Framework code │ ├── bootanimation # Boot Animation code │ ├── surface # Surface code │ ├── vsync # Vsync code │ └── wm # WindowManager code ├── interfaces # External APIs │ ├── innerkits # Native APIs │ └── kits # JS APIs and NAPIs └── utils # Utilities ``` ## Constraints - Language version: C++ 11 or later ## Compilation and Building The dependent APIs include the following: - graphic\_standard:libwms\_client - graphic\_standard:libsurface - graphic\_standard:libvsync\_client ## Available APIs ### WindowManager
Obtains the BufferHandle pointer to the SurfaceBuffer object. |
|
Constructs a VsyncHelper object using an EventHandler object. |
|