[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[pygame] GSoC project proposal: A new draw module
Hello,
I'd like to rewrite/improve the pygame draw module(s) as a GSoC project.
Currently, there are pygame.draw and pygame.gfxdraw, but both are not
very usable. There is just a small set of basic shapes to draw. Another
important
point is the missing anti-aliasing. Well, the new gfxdraw has some
aa-functions,
but they are too inflexible. Lets say you need to draw a filled,
anti-aliased circle.
There is no function to do that, even though there are four (!)
functions to draw
some kind of circle. These functions can draw a circle either filled or
anti-aliased
(or not anti-aliased and not filled) but not both. The same applies to
the other
shapes.
I made some small tests[1] and it was really easy to get some nice
shapes[2]. Of course,
the code is dirty and slow, but its just a test to get an idea of an
usable draw module.
To handle all these options and parameters, the code could be organized
more object
oriented. One idea was to handle it like PIL:
mypen = pygame.draw.Pen(surface, ...)
mypen.circle(pos, rad, ...)
Then, shapes could not only be filled with plain color, but also pixel
data from another
surface or maybe some kind of texture or so.
Just some first thoughts and rough ideas.
Regards,
Julian
[1] http://bitbucket.org/schlangen/pexdra/
[2]
http://bitbucket.org/schlangen/pexdra/src/tip/doc/source/images/simple_example.png#