gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-commit] gnash ChangeLog gui/fb.cpp gui/fbsup.h gui/gui....


From: Udo Giacomozzi
Subject: Re: [Gnash-commit] gnash ChangeLog gui/fb.cpp gui/fbsup.h gui/gui....
Date: Thu, 12 Oct 2006 18:50:24 +0200

Hello Udo,

Thursday, October 12, 2006, 6:37:26 PM, you wrote:

UG> CVSROOT:        /cvsroot/gnash
UG> Module name:    gnash
UG> Changes by:     Udo Giacomozzi <udog>   06/10/12 16:37:25

Whew, a few notes on this commit:

This does now allow to determine which parts of the stage have been
updated (moving, adding/removing, transforming characters, changing
text variables etc.). This has two advantages:

1st, it allows a renderer/gui combination to avoid re-rendering of
unchanged parts in the scene. Currently only FBGui uses this but I
plan to rewrite the AGG renderer to respect this region, too. It
should be a huge performance increase in certain cases.

2nd, it can detect still frames (like a stopped movie). gui.cpp can
detect these and completely avoids to call any rendering function.

There is a #if 0 in gui.cpp that, when activated, shows the changed
region with a red frame (the Flash player has the same option).

Of course, the most critical part is detection of changes. I
introduced a method called set_invalidated() which gets called
whenever a change is obvious (like adding/removing a character). I
tested this really carefully and hope I did not miss anything. Anyway,
it's really important to always call set_invalidated() whenever code
is added that changed the character instance in a visible way.

Even if no renderer really uses this information it has effects when
skipping unchanged frames. If necessary, this feature can be switched
off easily in gui.cpp (maybe using a runtime option?).

As for the integer/float discussion: I used rect (floats) because all
the bounds calculation involves floats anyway and so it's probably
faster than converting between ints and floats all the way.


That's all so far,
Udo





reply via email to

[Prev in Thread] Current Thread [Next in Thread]