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

Reply via email to