Доки
This commit is contained in:
74
wayland/docs/uml/diagram-component.puml
Normal file
74
wayland/docs/uml/diagram-component.puml
Normal file
@@ -0,0 +1,74 @@
|
||||
@startuml
|
||||
title Компоненты проекта Wayland
|
||||
|
||||
package "Wayland Application" {
|
||||
|
||||
[wayland-runtime] as Runtime
|
||||
[registry] as Registry
|
||||
[input] as Input
|
||||
[input-handle] as InputHandle
|
||||
[window] as Window
|
||||
|
||||
package "Rendering & Animation" {
|
||||
[figure-draw] as FigureDraw
|
||||
[figure-animate (ASM)] as FigureAnimate
|
||||
}
|
||||
|
||||
Runtime --> Registry : использует глобальные объекты
|
||||
Runtime --> Input : инициализирует
|
||||
Runtime --> Window : создаёт и управляет
|
||||
|
||||
Input --> InputHandle : делегирует обработку
|
||||
InputHandle --> Runtime : вызывает run_window()
|
||||
InputHandle --> Window : изменяет параметры фигуры
|
||||
|
||||
Window --> Registry : получает compositor, shm, wm_base
|
||||
Window --> FigureDraw : отрисовка фигуры
|
||||
Window --> FigureAnimate : aux_thread для анимации
|
||||
|
||||
FigureDraw --> FigureAnimate : использует place_points_on_circle
|
||||
}
|
||||
|
||||
package "System Libraries" {
|
||||
[wayland-client] as WaylandLib
|
||||
[xdg-shell-protocol] as XDGShell
|
||||
[xkbcommon] as XKB
|
||||
}
|
||||
|
||||
Registry --> WaylandLib
|
||||
Registry --> XDGShell
|
||||
Window --> WaylandLib
|
||||
Window --> XDGShell
|
||||
Input --> WaylandLib
|
||||
Input --> XKB
|
||||
|
||||
cloud "Wayland Compositor" as Compositor
|
||||
|
||||
Runtime --> Compositor : wl_display_connect()
|
||||
Registry --> Compositor : получение глобальных объектов
|
||||
Window --> Compositor : создание окон и буферов
|
||||
Input --> Compositor : получение событий клавиатуры
|
||||
|
||||
note right of Runtime
|
||||
Центральный компонент:
|
||||
- Управление жизненным циклом
|
||||
- Многопоточность (окна + анимация)
|
||||
- Синхронизация через mutex
|
||||
end note
|
||||
|
||||
note right of FigureAnimate
|
||||
Реализация на NASM:
|
||||
- Физика движения
|
||||
- Обработка коллизий
|
||||
- Математика (sin/cos)
|
||||
- SSE инструкции
|
||||
end note
|
||||
|
||||
note right of Window
|
||||
Каждое окно в отдельном потоке:
|
||||
- window_thread: отрисовка
|
||||
- aux_thread: анимация
|
||||
- Event queue для изоляции событий
|
||||
end note
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user