[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [pygame] Update performance
I'm also curious about this, only my situation has a twist:
the background of my game will almost always be changing. I've
seen what performance is like when you have to update the entire
screen, and it doesn't look pretty.. I hope we can figure something
out.
Jan Ekholm wrote:
> Hi,
>
> In my game I'm at a stage where basic stuff works, but very inefficiently,
> du to coding laziness. I now need to go back and clean up some stuff and
> optimize where possible.
>
> One thing I have been wondering about is what is the performance gain of
> updating only parts of the screen versus updating the whole screen all the
> time?
>
> I ususally change only a few rects of the screen, but nevertheless always
> update the whole thing with Surface.update() on the toplevel surface.
> Works ok, but would it be faster to store the Rects for the updatable
> regions and call Surface.update([rects]) instead? It probably is faster,
> but how many rects can there be or how big % of the screen should the
> rects max cover before updating the whole screen is faster?
>
> Would it be efficient to try to keep some "minimum bounding rect" around
> all the rects that I blit, and then update only that bounding rect? If I
> for example have the following:
>
> +--+ +-----+
> | | +-------+ | |
> +--+ +-------+ | |
> +-----+
>
> The bounding rect would then be:
>
> +--+--------------+-----+
> | | +-------+ | |
> +--+ +-------+ | |
> +-----------------+-----+
>
> Would it be faster to update only the one (slightly bigger) rect, or the
> three smaller? Performance gains with the bounding thing would be better
> if several of the inner rects are overlapping. But of course there is a
> little bit of calculations for each small rect that is blitted, as the
> bounding rect needs to be enlarged if necessary.
>
> Any ideas, guys and girls?
____________________________________
pygame mailing list
pygame-users@seul.org
http://pygame.seul.org