3D X

Russell Shaw rjshaw at netspace.net.au
Sat Apr 1 01:33:21 PST 2006

Pierre D. wrote:
> Hi
> The composite managers are here to do the job that is not to be done
> by the X server. It's not the X server job to alter windows look.
> Wobbly effects *must* be done out of the server : the X server has
> already enough to do...

What are "wobbly" effects?

> And you forget some other things :
> - compatibility. You can't add a "z" dimension in XCreateWindow
> without breaking some things.

Just duplicate all the functions to accept the "z" argument and have
them called things like XCreateWindow3D(). They also use an alpha value
in colors.

For compatability, the 2D XCreateWindow() looks the same in Xlib,
and is sent with the same wire protocol, but simply uses XCreateWindow3D()
in the server with z=0.

> - compositing of OpenGL or XVideo

No different to now. The final output is transformed by the "server transform"
before being displayed.

> (I forget a lot of things here too)
> 2006/4/1, Russell Shaw <rjshaw at netspace.net.au>:
>>To get everything to tilt at an angle, you just add an X protocol to
>>set a server transform to give whatever zoom or rotation to be applied
>>to everything on the X screen. Also, XCreateWindow would take a "z"
>>dimension for its distance "above" its parent. The total work to do that
>>in the X server would be pretty straight forward.
>>To get 3D alpha compositing, the server just maintains an in-memory
>>(double-buffer) of the screen (the superposition of all individual windows),
>>and an off-screen copy of each individual window.
>>Erasing a window is just a matter of linear scaling and subtraction of the
>>pixel values of the window from the screen (composite of all windows).
>>What's all this stuff about "compositing managers" ?
>>I don't get why 3D composited X windows are "hard" or complex to do.

More information about the xorg mailing list