On Tue, Oct 30, 2007 at 10:33:26AM +0100, Udo Giacomozzi wrote: > Hello Sandro, > > Tuesday, October 30, 2007, 10:17:16 AM, you wrote: > SS> Yes, makes sense, thanks. > SS> "top of each other" is not necessarely true though.... > SS> if the mask and the maskee do not overlap moving the mask out of the > SS> maskee bounding box shouldn't make the maskee invalidated. > > The maskee should *never* become invalidated unless it changes itself. > > The situation "mask and maskee do not overlap" is handled by > add_invalidated_bounds(), btw. It intersects the mask bounds with the > maskee bounds leading to NULL ranges and thus not adding anything to > the invalidated *bounds*. This intelligence has been added some days > ago. But anyway this case is *not* related to set_invalidated() > because it is only about *avoiding* useless re-rendering (which is a > performance issue in contrast to incorrect rendering).
Agreed, switched to performance-wise now. > SS> Maybe more then talking about invalidated *state* the TODO is about > SS> the invalidated *bounds*. > SS> Like, get_invalidated_bounds for a masked object might only returns > SS> the invalidated bounds resulting from intersection of own > SS> invalidated bounds and maks's invalidated bounds. > > Yeah, that's what it does already. The relevant patch is: > http://cvs.savannah.gnu.org/viewvc/gnash/server/dlist.cpp?root=gnash&r1=1.96&r2=1.97 If you remember I asked you "do you have setMask in mind" when you added the new intelligence. Maybe time to prove it against setMask now ? Note that dynamic masks (set by setMask) do not have to be in the same DisplayList at all ! (but I belive we don't have an automated test for this yet) --strk; _______________________________________________ Gnash-commit mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-commit
