mutter/doc/code-overview.md
Sebastian Wick abe47769b7 docs: Move kms abstractions documentation out of references
Eventually we want to have all the high-level code documentation in the
component API reference documentation. However, gi-docgen is currently
missing support for mermaid so we just keep the files in `doc/` and link
to them from `code-overview.md`.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3505>
2024-01-09 17:59:15 +00:00

28 lines
1.3 KiB
Markdown

# Code Overview
Mutter consists of four relatively distinguished and isolated parts.
## Cogl
Hardware acceleration pipeline abstraction layer. Handles things like allocating framebuffer, allocating, importing and drawing textures, internally using OpenGL. Originally a fork of [the Cogl project](https://gitlab.gnome.org/GNOME/cogl).
## Clutter
Compositing toolkit, containing an actor and render node based scene graph, and has features such as input event routing, transformation and animation. Handles compositing, both Wayland surfaces, X11 windows, and is the basis of the UI toolkit implemented by [GNOME Shell](https://gitlab.gnome.org/GNOME/gnome-shell). Originally a fork of [the Clutter project](https://gitlab.gnome.org/GNOME/clutter).
* [Frame Scheduling](clutter-frame-scheduling.md)
* [Rendering Model](clutter-rendering-model.md)
## Mtk
The Meta Toolkit containing utilities shared by other parts of mutter.
## Mutter
The display server and window manager library. Contains a X11 window manager and compositing manager implementation, as well as a Wayland display server implementation.
* [Compositor stage and hardware relationships](mutter-relationships.md)
* [KMS abstraction](mutter-kms-abstractions.md)
* [Window constraints](mutter-constraints.txt)
* [How to get focus right](mutter-focus.txt)