blob: f4534c241f7e1205547fa61fa6e8b3ff804626ba [file] [log] [blame]
Kristian Høgsberg97f1ebe2008-09-30 09:46:10 -04001
2KEYWORDS:
3
4Wayland is a nano display server, relying on drm modesetting, gem
5batchbuffer submission and hw initialization generally in the
6kernel. Wayland is compositing manager and display server in one
7process. window management is largely pushed to the clients, they
8draw their own decorations and move and resize themselves,
9typically implemented in a library. more of the core desktop could
10be pushed into wayland, for example, stock desktop components such
11as the panel or the desktop background.
12
13It is still designed with a windowed type of desktop in mind, as
14opposed to fullscreen-all-the-time type of interface.
15
16Current trends goes towards less and less rendering in X server,
17more hardware setup and management in kernel and shared libraries
18allow code sharing without putting it all in a server.
19
20Client allocates DRM buffers, draws decorations, and full window
21contents and posts entire thing to server along with dimensions.
22
23Everything is direct rendered and composited. No cliprects, no
24drawing api/protocl between server and client. No
25pixmaps/windows/drawables, only surfaces (essentially pixmaps). No
26gcs/fonts, no nested windows. OpenGL is already direct rendered,
27pixman may be direct rendered which adds the cairo API, or cairo
28may gain a GL backend.
29
30ISSUES:
31
32Include panel and desktop background in wayland?
33
34How does clients move their surfaces? set a full tri-mesh every time?
35
36How does the server apply transformations to a surface behind the
37clients back? (wobbly, minimize, zoom) Maybe wobble is client side?
38
39How do apps share the glyph cache?
40
41Input handling - keyboard focus, multiple input devices, multiple
42pointers, multi touch.
43
44Drawing cursors, moving them, cursor themes, attaching surfaces to
45cursors. How do you change cursors when you mouse over a text
46field if you don't have subwindows?
47
48synaptics, 3-button emulation, xkb, scim
49
50RMI
51
52the get_interface method is called on an object to get an object
53handle that implements the specified interface.