Files
NASM/wayland/docs/uml/diagram-component.puml
2025-11-18 01:22:01 +03:00

75 lines
2.2 KiB
Plaintext

@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