Finishing Composite to handle transformed windows

Dan Oscarsson Dan.Oscarsson at tietoenator.com
Sun Jan 8 09:19:40 PST 2006


Maybe it would be a good time to really think how X should work with
window managers and a 2D or 3D desktop. The current works with LG,
"topmost windows", compositing, redirection and opengl feels like a
mess. With lots of exceptions.

"topmost windows" sounds like a bad fix.

My vision of how it could work:

 - opengl can be used on any window, including root window.
   two applications can share a window with opengl (that is both
   can use opengl on it) so that for example both window manager and
   application can use opengl on a window.

 - a window manager must control all window handling and focus handling.
   the override-redirect flag must be possible to override by window
   manager (who can display those windows without decoration, and
   if they are retained (that is pixels stored in offscreen memory)
   application do not need to wait for damage event).
   Focus handling must be redirected - only the window manager
   may decide which window will get focus.

 - a 3D or compositing window manager will have all windows redirected
   to offscreen memory. It will then display them in a 3D or 2D space
   on the root window (the screen). As a window can be shared by opengl
   between window manager an an application (like in LG), the
   application draws in window which can be in graphicas card memory,
   and window manager scales/transforms window to the display directely
   using opengl and within graphics card. My feeling of LG today
   is that it is working as a part outside the window system - I would
   like it to work as a part integrated with the window system.
   It would have been nice, like you could in NeWS, to have a transform
   matrix attached to a window so they could be scaled, rotated or
   have other transformation.

 - In a way you could see each application window as a "display" with
   subwindows. Each application just uses opengl (or normal X) in
   window. Window manager will compose the application windows onto
   real display (using 3D or 2D look).

 - If you are using a 3D world, event coordinates will have to be
   translated with the 3D transformation matrix each window has.

Not easy to describe in a few words. In some other words: allow each
application window work as an offscreen window. No way to bypass window
manager (no override redirect). Window manager have sole resposiblity to
handle focus and displaying of windows on screen.

Please try to create a solution that is simple and elegant.

   Dan





More information about the xorg mailing list