[Top][All Lists]

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

[Gnash-dev] Re:Serious performance problem

From: zou lunkai
Subject: [Gnash-dev] Re:Serious performance problem
Date: Wed, 25 Apr 2007 19:07:15 +0800

...and maybe incorrect behaviour in Gnash.

I noticed that single-frame sprites are still "advanced" in Gnash.
This has the effect of a ever-looping sprite and causes
set_invalidated() to be called in each rendered frame.

I think one reason for this is all event handlers should be triggered
for single-frame sprites.

This is because advance_sprite() does not check if frames_count>1 and
so calls do_actions() in any case. I tried to avoid do_actions() for
single-frame sprites but this completely scrambles playback.

This is checked by line " if (m_current_frame != (size_t)prev_frame)"

I guess also some actions get executed again, even if they shouldn't

Maybe we need a testcase to verify this.  As I see, Gnash don't do this.

(normal ActionScript code in single-frame sprites should be executed
only once!).

I failed understanding what happens in do_actions() and I don't
understand why it gets called for STOPPED movies at all.
Yes, it's called even for stopped movies, that's confusing.  But the
action list won't be filled again for stopped movies, so even if
do_actions() being called again, it will do nothing actually.

At least for me this is a big problem since it causes 99% of my movies
to be played really slow (continuously full screen redraws) and it
worked fine before.
I have little knowledge about the "invalidated bounds". Is this
related? I cann't tell why for this...

reply via email to

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