Finishing Composite to handle transformed windows
Amir Bukhari
ufz6 at rz.uni-karlsruhe.de
Sun Jan 8 10:26:17 PST 2006
> -----Original Message-----
> From: xorg-bounces at lists.freedesktop.org
> [mailto:xorg-bounces at lists.freedesktop.org] On Behalf Of Dan Oscarsson
> Sent: Sunday, January 08, 2006 6:20 PM
> To: Discuss issues related to the xorg tree
> Subject: Re: Finishing Composite to handle transformed windows
>
> 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.
I don't thing this possible, because of security. A window is associated to
only one applicatin (or better a client - an application can have more than
one connection to Xserver). Secondly opengl context can not be shared.
>
> - 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.
>
Focus policy is described on ICCCM and any WM should be use this protocol or
application will not run as expected.
> - 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.
>
What did you mean with "outside the window system"?
LG is a plattform and framework, existing WM will not run inside LG, because
they did not know they run in LG plattform. LG has an interface API to WM,
any WM want to run under LG should interface with LG using that interface,
thus it is possible for other WMs to integrate in LG. We have a WM example
which run inside LG and it is responsible for integration of X applications
into LG plattform, it is not 100% ICCCM complement (it need more
implementation). Although Alot of KDE and GNOME applications run inside LG.
> - 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.
>
All what you describe doesn't solve the issue presented in this thread.
-Amir
More information about the xorg
mailing list