[compiz] drawing framework changes

David Reveman davidr at novell.com
Wed Apr 25 11:37:08 PDT 2007

When I created the current drawing framework, all we were interested in
drawing was client windows. We want to draw a lot more today and the
design needs to be changed to allow this properly.

My current plan is to just adjust the drawing code so it's possible to
draw different kind of objects. The core will be aware of some object
types and plugins will be able to create it's own type of objects and
properly integrate them into the drawing framework.

Common to all objects will be a unique identifier and that they will all
respect a transformation matrix and a set fragment attributes.

2D objects like client windows, cursors and such will easily be able to
inherit all the details in the current drawing framework.

Most objects will provide a tree structure and the core will probably be
aware of the following objects:

screen ->
    output ->
        root window ->
            frame windows ->
                client windows

It will be easy for a plugin to create it's own set of objects and
insert them into existing objects. E.g. decoration plugin will create a
decoration object that can be inserted into the frame window object. The
video plugin will create a video output object that can be inserted into
the client window object.

This is just some initial details about the changes I've got planned and
much more details will be provided once I start writing some initial
code for this.

I'd like to get the vertex generation system updated first and we need
to get rid of all the use of transformation attributes in the
ScreenPaintAttrib and WindowPaintAttrib structures.

- David

More information about the compiz mailing list