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

Re: [pygame] SVG and SDL/pygame with pycairo?



this sounds really good!

Definitely for after 1.7.1 though.

If pycairo has a tostring() method, then the Surface.frombuffer()
could be used to make the surface really quickly.


On 7/28/05, Bob Ippolito <bob@xxxxxxxxxx> wrote:
> 
> On Jul 28, 2005, at 12:02 AM, Terry Hancock wrote:
> 
> > On Tuesday 26 July 2005 03:17 pm, Shandy Brown wrote:
> >
> >>> I know that 'libsvg-cairo' is supposed to have an SDL
> >>> back-end renderer and 'pycairo' is the python binding for
> >>> Cairo.  It should certainly be possible in C, but I was
> >>> hoping you could just do it in Python, and wondered
> >>> if somebody knows for sure (and how to do it).
> >>>
> >>> Am I at least on the right track if I want to render SVG
> >>> "cels" to SDL surfaces for animation?
> >>>
> >>
> >> If you find out a conclusive answer please let me (and the list)
> >> know.
> >> The ability to do this would be ideal for one of my projects.
> >>
> >
> > Update on my quest ...
> >
> > It appears that "pycairo" may be a bit of a red herring. Cairo is
> > a general-purpose vector graphics engine, and rendering SVG
> > with the libsvg-cairo package is only one small piece of
> > functionality.
> > Pycairo is more like a drawing library for Python.
> >
> > There is an example in the Cairo CVS of rendering an SVG file
> > directly to an SDL surface.
> >
> > http://cvs.cairographics.org/cairo-demo/sdl/
> >
> > I think the easiest way to make this work is to write a  Pyrex module
> > around that demo.  Then I need to know how to wrap the resulting
> > *SDL* surface  in a *PyGame* surface (which is presumeably not
> > hard, but I'll need to look at the PyGame sources to figure it out ---
> > probably have to call a PyGame extension module from Pyrex?)
> >
> > I don't presently know how to do that, but I just downloaded the
> > PyGame sources to look.
> 
> src/pygame.h and src/surface.c .. in particular, PySurface_New is
> exactly this.
> 
> > Assuming that I do this, is this something desireable enough that
> > people would like to see it incorporated into PyGame? It's probably
> > a bit small to distribute on its own (hopefully it's <100 loc), and if
> > I just incorporate it into my application, it won't be as easy to
> > reuse.
> 
> I think it sounds like a good idea for 1.8.  However, it'd probably
> be best if it was plain old C rather than Pyrex code.  Though,
> something that works is better than nothing, it's just that Pyrex
> extensions are a bit harder to debug and sometimes the pyrex source
> and generated C end up out of sync.  There's also no other generated
> code in pygame at the moment.
> 
> -bob
> 
>