On Wed, Feb 03, 2010 at 08:30:03PM +0800, ZouJQ wrote: > > Something about frame dropping. > > There is #define SKIP_RENDERING_IF_LATE 1 in gui.cpp. It checks whether the > frame should be dropped.
Correct. It's disabled by default though. > I have also checked Gui::advanceMovie() in gui.cpp, and found: > > bool advanced = m->advance(); -> movie_root::advance() -> > movie_root::advanceMovie() > > There is advanceLiveChars(); this function seems consuming much cpu timing. That's a callback for each MovieClips on the stage (for things like onEnterFrame triggering AND for timeline frames advances). It should be the most time-consuming part *after* the rendering cal (m->display()). > Can we add some aditional logic in movie_root::advance(). > const size_t elapsed = now - _lastMovieAdvancement; > if (elapsed >= _movieAdvancementDelay) > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Does it necessary? > I think it waste time. > it don't skip any frame here. It checks what time is it to decide whether or not *timeline* cursor should advanced. If you want, it's a waste of time to call movie_root::advance before it's time to advance timeline, and that can be improved by having movie_root expose a method to tell the GUI *when* it'll be a good time. Mind you, it's not just FPS affecting this, as AS timers or media streaming might need to get called faster. --strk; () Free GIS & Flash consultant/developer /\ http://foo.keybit.net/~strk/services.html _______________________________________________ Gnash-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-dev

