Merging spif-2 branch



Hi,

At

   http://www.daimi.au.dk/~sandmann/compositor-merge.patch

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
register
   "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
ranging
  from crappy reduced-resources mode to nice composited mode. I haven't
thought
  this through completely though.


When compiled with --enable-compositor metacity with the patch has a
dependency
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 bugs.freedesktop.org.

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
know.



Soren




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