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.
signature.asc
Description: This is a digitally signed message part