Update TODO

dev
Kristian Høgsberg 15 years ago
parent 12308a4997
commit beed22b9a3
  1. 34
      NOTES
  2. 66
      TODO

34
NOTES

@ -45,40 +45,6 @@ returned in an event generated by the server once the commit has been
executed. This allows clients to throttle themselves against the executed. This allows clients to throttle themselves against the
server and implement smooth animations. server and implement smooth animations.
ISSUES:
Include panel and desktop background in wayland?
How does clients move their surfaces? set a full tri-mesh every time?
How does the server apply transformations to a surface behind the
clients back? (wobbly, minimize, zoom) Maybe wobble is client side?
How do apps share the glyph cache?
Input handling - keyboard focus, multiple input devices, multiple
pointers, multi touch.
Drawing cursors, moving them, cursor themes, attaching surfaces to
cursors. How do you change cursors when you mouse over a text
field if you don't have subwindows?
synaptics, 3-button emulation, xkb, scim
changing screen resolution, adding monitors.
What to do when protocol out buffer fills up? Just block on write
would work I guess. Clients are supposed to throttle using the bread
crumb events, so we shouldn't get into this situation.
When a surface is the size of the screen and on top, we can set the
scanout buffer to that surface directly. Like compiz unredirect
top-level window feature. Except it won't have any protocol state
side-effects and the client that owns the surface won't know. We lose
control of updates. Should work well for X server root window under
wayland.
Throttling/scheduling - there is currently no mechanism for scheduling Throttling/scheduling - there is currently no mechanism for scheduling
clients to prevent greedy clients from spamming the server and clients to prevent greedy clients from spamming the server and
starving other clients. On the other hand, now that recompositing is starving other clients. On the other hand, now that recompositing is

66
TODO

@ -1,5 +1,11 @@
- sync-to-vblank - sync-to-vblank
- how does clients move their surfaces? set a full tri-mesh every
time? probably just go back to x and y position, let the compositor
do the fancy stuff. How does the server apply transformations to a
surface behind the clients back? (wobbly, minimize, zoom) Maybe
wobble is client side?
- switch scanout when top surface is full screen - switch scanout when top surface is full screen
- what about cursors then? maybe use hw cursors if the cursor - what about cursors then? maybe use hw cursors if the cursor
@ -13,6 +19,14 @@
- Advertise axes as part of the discovery, use something like - Advertise axes as part of the discovery, use something like
"org.wayland.input.x" to identify the axes. "org.wayland.input.x" to identify the axes.
- keyboard state, layout events at connect time and when it
changes
- relative events
- input handling - keyboard focus, multiple input devices,
multiple pointers, multi touch.
- wayland-system-compositor - wayland-system-compositor
- device kit/libudev/console kit integration to discover seats, - device kit/libudev/console kit integration to discover seats,
@ -108,10 +122,20 @@
desired data to write, if it overwrites tail, block guest. just desired data to write, if it overwrites tail, block guest. just
a socket would be easier. a socket would be easier.
- moblin as a wayland compositor
- clutter as a wayland compositors
- argh, mutter
- make libwayland-client less ghetto - make libwayland-client less ghetto
- sparse based idl compiler - sparse based idl compiler
- crack?
- xml based description instead?
- actually make batch/commit batch up commands - actually make batch/commit batch up commands
- protocol for setting the cursor image - protocol for setting the cursor image
@ -119,6 +143,19 @@
- should we have a mechanism to attach surface to cursor for - should we have a mechanism to attach surface to cursor for
guaranteed non-laggy drag? guaranteed non-laggy drag?
- drawing cursors, moving them, cursor themes, attaching surfaces
to cursors. How do you change cursors when you mouse over a
text field if you don't have subwindows? This is what we do: a
client can set a cursor for a surface and wayland will set that
on enter and revert to default on leave
- server should be able to discard surfaces, and send a re-render
event to clients to get them to render and provide the surface
again. for wayland system compositor vt switcing, for example, to
be able to throw away the surfaces in the session we're switching
away from. for minimized windows that we don't want live thumb
nails for. etc.
- auth; We need to generate a random socket name and advertise that - auth; We need to generate a random socket name and advertise that
on dbus along with a connection cookie. Something like a method on dbus along with a connection cookie. Something like a method
that returns the socket name and a connection cookie. The that returns the socket name and a connection cookie. The
@ -127,6 +164,10 @@
Wayland server generates the cookie on demand when the dbus method Wayland server generates the cookie on demand when the dbus method
is called and expires it after 5s or so. is called and expires it after 5s or so.
- or just pass the fd over dbus
- drm bo access control, authentication, flink_to
- enter/leave events from the input devices - enter/leave events from the input devices
- gain, lose keyboard focus events; this event carries information - gain, lose keyboard focus events; this event carries information
@ -138,4 +179,27 @@
we hand out a range of 256 IDs to each new clients, we're just we hand out a range of 256 IDs to each new clients, we're just
talking about 2^24 clients. That's 31 years with a new client talking about 2^24 clients. That's 31 years with a new client
every minute... Maybe just use bigger ranges, then it's feasible every minute... Maybe just use bigger ranges, then it's feasible
to track and garbage collect them when a client dies. to track and garbage collect them when a client dies.
- multi gpu, needs queue and seqno to wait on in requests
- opaque region, window rect
- save and restore state on crash, clients reconnect, re-render
buffers
- how do apps share the glyph cache? what is the glyph cache, how
does it work? pixbuf cache?
- synaptics, 3-button emulation, scim
- what to do when protocol out buffer fills up? Just block on write
would work I guess. Clients are supposed to throttle using the
bread crumb events, so we shouldn't get into this situation.
- when a surface is the size of the screen and on top, we can set the
scanout buffer to that surface directly. Like compiz unredirect
top-level window feature. Except it won't have any protocol state
side-effects and the client that owns the surface won't know. We
lose control of updates. Should work well for X server root window
under wayland.

Loading…
Cancel
Save