Re: Merging spif-2 branch

Is the fact that metacity is the compositing manager optional? We need for that not to be the case when running magnification.


Soeren Sandmann wrote:



there is a patch that merges most of the spif2 branch into metacity
head. Most of the
changes are in compositor.c, but there are a few others:

* There is a hack in error.c to deal with the facts that

       - Xlib doesn't have per-display error handlers.

       - The compositing manager opens another connection to the X server

    The right solution to this problem is probably to allow metacity to
    "foreign" X displays.

* There is a disabled genie type minimize effect. We should figure out
how to do
window state change animations in general. Currently I am leaning towards
   having a layer of indirection that can be implemented in various ways
   from crappy reduced-resources mode to nice composited mode. I haven't
   this through completely though.

When compiled with --enable-compositor metacity with the patch has a
on a library called libcm which I recently checked into gnome cvs. This
library contains
two things:

       - the beginning of an OpenGL scenegraph

       - an abstraction layer on top of X.. The scenegraph uses this,
and it is my hope
         that we can eventually get metacity to use it as well. The X
API can be exposed
         in a much nicer way as soon as you can assume that you have a
mainloop at
         your disposal.

If you try out the compositor you'll quickly find that it's very buggy
and slow. The slowness
comes at least in part from reading back pixels from the framebuffer and
converting them to
textures. At some point X and GL will get extensions allowing X pixmaps
to be used as GL textures
which should fix this problem.

The buggyness is at least partly because of bugs in the composite and
damage extensions
in the X server. See bugs 5272 - 5276 on

Some things that need to be done at this point:

    - X bugs need to be fixed

    - libcm should be converted to use GObject

    - compositor.c should be changed to make good use of the scene graph

    - compositor.c and the scene graph should be changed so they don't
repaint in a loop, but
      instead only repaint when damage arrives.

    - it should be figured out how to make metacity do animations.

If anyone would like to volunteer for one or more of these tasks, let me


metacity-devel-list mailing list
metacity-devel-list gnome org

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]