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