[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: [Gnash-commit] gnash/server sprite_instance.cpp
From: |
Udo Giacomozzi |
Subject: |
Re[2]: [Gnash-commit] gnash/server sprite_instance.cpp |
Date: |
Tue, 13 Feb 2007 20:49:09 +0100 |
Hello strk,
Tuesday, February 13, 2007, 6:38:22 PM, you wrote:
s> Some time ago I added a 'set_invalidated' call in 'execute_frame_tags',
s> for specifically handling DisplayList reset.
I tracked the problem down to somewhere near execute_frame_tags().
At startup I get two place_character() calls:
void gnash::DisplayList::place_character(gnash::character*, short unsigned int,
const gnash::cxform&, const gnash::matrix&, float, short unsigned int) enter
void gnash::DisplayList::place_character(gnash::character*, short unsigned int,
const gnash::cxform&, const gnash::matrix&, float, short unsigned int) enter
The first is probably for the MC (that's moving around) and the second
for the shape inside the MC.
With each remaining frame the MC is moved around:
void gnash::DisplayList::move_display_object(short unsigned int, bool, const
gnash::cxform&, bool, const gnash::matrix&, float, short unsigned int) enter
When the movie restarts ( frame == 0 && has_looped() ) then
clear_exept() is called which does not clear anything, which is
correct as the DisplayList is not modified during the movie.
void gnash::DisplayList::clear_except(std::vector<gnash::character*,
std::allocator<gnash::character*> >&) enter
However I miss an additional move_display_object() call to bring the
MC back to it's initial position.
I tried to comment out the following line but it did not help at all:
// Execute this frame's init actions, if necessary.
if (m_init_actions_executed[frame] == false)
I have no clue what's necessary to restore the initial position of a
MC. Could you have a look at it?
Udo
[Gnash-commit] gnash/server sprite_instance.cpp, Udo Giacomozzi, 2007/02/16
[Gnash-commit] gnash/server sprite_instance.cpp, Sandro Santilli, 2007/02/16