On Mon, 2004-08-09 at 18:42 -0300, Gustavo Sverzut Barbieri wrote:
> Maybe I didn't understand you, but are you talking about backends...
> gdkpixbuf and every other you talked about don't support anything
> other
> than X11 or maybe directfb... AFAIK, there's nothing else based on SDL
> other than pygame... so we will stay with pygame as default backend?

I am working on a canvas library that supports multiple image libraries
and displays, each of which are independent of the other.  This means
you can use any supported image library for image manipulation, like
pyimlib2, pygame, gdkpixbuf, PIL, pyimagemagick (just for examples; of
course PIL isn't very good) on any supported display, like X11 (via
pyimlib2, pygame, etc.), bmovl2, framebuffer, etc.  (Strictly speaking
bmovl2 isn't a display, but as far as the canvas is concerned it is.)

So it is possible to use pyimlib2 for all image manipulation (loading,
blending, scaling, etc.) and pygame for display.  The canvas objects
should also support dynamically changing image backends.  That is, if it
turns out that gdkpixbuf for both image manipulation and display is the
best combination for a given situation (say for X11), when the user
loads a movie in MPlayer and we want to offer an interface from within
the movie, we'll switch to a bmovl2 canvas using a pyimlib2 imagelib
backend, and all the objects of the old pygame canvas can be moved to
the bmovl2 canvas without any fuss.

The system can choose which image library to use with which display
backend to give the best performance given what's available on the
system.

I hope that's not too confusing. :)   Basically the canvas provides a
layer between the application and all image operations and display
operations.

                  +-------------+
                  | Application |
                  +-------------+
                         |
                    +--------+
                    | Canvas |
                    +--------+
                      /    \
        +------------+     +----------+
        | Image libs |     | Displays |
        +------------+     +----------+

The intent of the canvas is to offer a convenient API to deal with
displaying graphical elements and it figures out the appropriate way to
talk with a particular display.

Hopefully that explains it a bit better.  Eventually you'll see what I
mean with code.  Anyway, this is what I'm working on.  How this all ties
in with Freevo is dischi's turf.

Cheers,
Jason.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to