rjshaw at netspace.net.au
Sat Apr 1 18:16:38 PST 2006
Carsten Haitzler (The Rasterman) wrote:
> On Sat, 01 Apr 2006 16:28:35 +1100 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.
> summary... your fingers are still way too green mate. :) trust me - from those
> that have been around these traps for a while. the composite method is the
> right way to go. its a great design in principle. it has rough edges - missing
> bits, hooks, pipeline elements (being fixed - i bitch about them all the time),
> but until you really understand how it all works - from the hardware to x's
> internals to client-side programming at the low levels (that means xlib
> levels)... you won't appreciate that.
> just have some faith in the fact that it is being done right.
There's little documentation on what a compositing manager *does*.
I'll find out more about X internals when i've done porting a subset
of it to another cpu (still to do). I don't need any of the 3D stuff
just for a GUI, and would rather have a fast simple and small 2D GUI
that runs on well on old hardware than a 3D one that is slow is
molasses on a 10GHz pc. There's something fundamentally wrong when
Win95/98 still beats X in every way (in part due to just the M$ widget
More information about the xorg