• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Libweston
2=========
3
4.. toctree::
5   :maxdepth: 2
6   :caption: Contents:
7
8   libweston/compositor.rst
9   libweston/output-management.rst
10   libweston/log.rst
11
12`Libweston` is an effort to separate the re-usable parts of Weston into a
13library. `Libweston` provides most of the boring and tedious bits of correctly
14implementing core Wayland protocols and interfacing with input and output
15systems, so that people who just want to write a new "Wayland window manager"
16(WM) or a small desktop environment (DE) can focus on the WM part.
17
18Libweston was first introduced in Weston 1.12, and is expected to continue
19evolving through many Weston releases before it achieves a stable API and
20feature completeness.
21
22`Libweston`'s primary purpose is exporting an API for creating Wayland
23compositors. Libweston's secondary purpose is to export the weston_config API
24so that third party plugins and helper programs can read :file:`weston.ini` if
25they want to. However, these two scopes are orthogonal and independent. At no
26point will the compositor functionality use or depend on the weston_config
27functionality.
28
29Further work
30------------
31
32In current form, `libweston` is an amalgam of various APIs mashed together and
33currently it needs a large clean-up and re-organization and possibly, a split
34into class-specific files. The documentation only provide the public
35API and not the private API used inside `libweston` or other functionality
36required in the core internals of the library.
37
38With that in mind we see the following steps needed to achieve that:
39
40- migrate everything that should not reside in the public API (for instance,
41  the doxygen **\\internal** command is a clear indication that that symbol
42  should not be present in the public API) to private headers.
43- if needed be, create class-specific files, like **input** and **output**
44  which should tackle specific functionality, and allows to write the
45  documentation parts much easier, and provides clarity for `libweston`
46  users when they'd read it.
47