[OLPC-Games] Reducing pygame cpu-load to < 4 %

Roberto Fagá robertofaga at gmail.com
Sun Dec 9 19:51:08 EST 2007


Just adding, to convert at load time with pygame, just need to use
.convert() on surface object, and it'll convert to the screen surface,
like

surf = load(..)
surf.convert()

I think for now pygame is doing with 16bits at default yet, and I
wrote wrong, the second parameter from set_mode are the flags, depth
is the third parameter. I also used 12bits too to test, for games when
colors don't matter so much can be a good choice.
Was 16bits the default depth since the first pygame for XO? I
remembered that it was creating 32bits for me by default, but with
older versions of Sugar...

[]'s

On Dec 9, 2007 10:29 PM, Bernardo Innocenti <bernie at codewiz.org> wrote:
> On 12/09/07 19:08, Noah Kantrowitz wrote:
> > Unfortunately this is not possible in most games, as doing them purely
> > vector-based is infeasible. A lot of the artwork made for games will be
> > standard raster graphics, and will need to be designed for a specific
> > screen. If there are changes in the future, they can always be redrawn.
>
> The conversion to the screen format can happen at load
> time, rather than each time the bitmap is being redrawn
> on screen.
>
> Doing it systematically is very easy:
>
>   Surface *load_image(const char *filename)
>   {
>       Surface *s = NULL, tmp;
>
>       if ((tmp = IMG_Load(filename))
>       {
>           s = SDL_DisplayFormat(tmp);
>           SDL_FreeSurface(tmp);
>       }
>       return s;
>   }
>
> Some libraries, notably SDL, make blitting graphics between
> different pixel formats a little bit too transparent.
> As a result, developers don't even notice and huge performance
> bugs like this slip through.
>
>
> --
>  \___/
>  |___|   Bernardo Innocenti - http://www.codewiz.org/
>   \___\  One Laptop Per Child - http://www.laptop.org/
>


More information about the Games mailing list