[compiz] Q's on how compiz works

andrew rader andrew.r.rader at gmail.com
Tue May 13 11:09:01 PDT 2008


On Tue, May 13, 2008 at 10:58 AM, Quinn <livinglatexkali at gmail.com> wrote:
> On Tue, May 13, 2008 at 10:18 AM, andrew rader <andrew.r.rader at gmail.com> wrote:
>  > unfortunately, I never got any response (in fact, I was starting to
>  >  even doubt I had ever sent the email :p)
>  >
>  >  The more sleuthing I do, the more it appears there aren't a lot of
>  >  people that know what compiz is doing :( Most people are content that
>  >  it just works for them...
>  >
>  >  does anyone have any clues? I'd be grateful for even a link to a
>  >  compiz design doc
>  >
>  >
>  >
>  >  On Tue, May 13, 2008 at 9:32 AM, Shane Bryan <dbryans at gmail.com> wrote:
>  >  >
>  >  >
>  >  >
>  >  > On Mon, Apr 7, 2008 at 10:36 AM, andrew rader <andrew.r.rader at gmail.com>
>  >  > wrote:
>  >  > > Hi all,
>  >  > >
>  >  > > I've recently become interesting in how all of the pieces of X/compiz
>  >  > > come together to do what it does, and after going through compiz's
>  >  > > code, I have a few questions that I just can't seem to find any
>  >  > > answers to.
>  >  > >
>  >  >
>  >  > <snip>
>  >  >
>  >  > > first, how does compiz know what geometry to use for the textured
>  >  > > "window" objects? It obviously can't use the width and height of the
>  >  > > window, since opengl's coordinates are going to be much different (ie.
>  >  > > between -1 and 1). I tried looking through the code, but I can't find
>  >  > > anything that appears to convert from X window coords to OpenGL
>  >  > > coords.
>
>  This is just a simple coordinate transform, nothing big, involves
>  setting the right projection matrix and some internal conversions too
>

that's what I was going to guess, but do you know whereabouts in the
source I can find this?

>
>  >  > >
>  >  > > second, how is the user's input mapped to windows? If my understanding
>  >  > > of compiz being an opengl app is correct, any input will be to the
>  >  > > compiz window rather than the window the user perceives to be active.
>  >  > > Is there a simple way of redirecting these inputs? or does compiz have
>  >  > > to manually map an input event to the correct window?
>  >  > >
>
>  Compiz doesn't need to create its own window, it draws on an
>  output-only window of the X server itself called the Composite Overlay
>  Window (or in older X versions onto the root window), and because the
>  windows are redirected, the server doesn't bother drawing them itself.
>   This lets compiz handle the drawing, and the server still handles
>  input (in fact we *can't* redirect input yet, this is why complex
>  transformed windows are still not easily possible, things like rotated
>  windows, scaled, etc., though IIRC we are trying to fake it in one of
>  the plugins)
>

I knew about the COW, but I didn't realize it didn't steal the inputs.
So what you're saying is that since the COW sits above everything, all
of the actual windows can be placed where they really are on screen.
The inputs will then "fall through" the COW and be grabbed by the
correct window below... I hope that's right because it makes perfect
sense :) thanks!

>
>  >  >
>  >  > Just catching up on this list, and am curious about the same questions.
>  >  >
>  >  > I don't see a response on the list, did you get a private response you can
>  >  > share with the list, or does someone have links to where to read more about
>  >  >  this?
>  >  >
>  >  > Shane...
>  >  >
>  >
>  >
>  > _______________________________________________
>  >  compiz mailing list
>  >  compiz at lists.freedesktop.org
>  >  http://lists.freedesktop.org/mailman/listinfo/compiz
>  >
>


More information about the compiz mailing list