[Webkit-unassigned] [Bug 10931] New: WebCore needs a separate AnimationCompositor class for animation calculations

bugzilla-daemon at opendarwin.org bugzilla-daemon at opendarwin.org
Mon Sep 18 21:05:11 PDT 2006


http://bugzilla.opendarwin.org/show_bug.cgi?id=10931

           Summary: WebCore needs a separate AnimationCompositor class for
                    animation calculations
           Product: WebKit
           Version: 420+ (nightly)
          Platform: Macintosh
               URL: http://www.w3.org/TR/2005/REC-SMIL2-
                    20051213/animation.html#animationNS-
                    AnimationSandwichModel
        OS/Version: Mac OS X 10.4
            Status: NEW
          Severity: normal
          Priority: P4
         Component: SVG
        AssignedTo: webkit-unassigned at opendarwin.org
        ReportedBy: macdome at opendarwin.org


WebCore needs a separate AnimationCompositor class for animation calculations

KSVG2 had a hackish animation model in which a single class (KSVGTimeScheduler)
held all of the logic necessary for animation (in a single function with a
large switch statement).

A bette model for animation would involve at least:
1. a separate timer scheduling class
2. separate classes containing animation application logic for each of the
basic animation elements
3. a animation compositor class, to orchestrate the application of animation

This bug covers implementing #3, the compositor.

The SMIL animation composition model (aka "AnimationSandwichModel") is pretty
well spelled out in:
http://www.w3.org/TR/2005/REC-SMIL2-20051213/animation.html#animationNS-AnimationSandwichModel

1. individual animation elements will need to know their priority (a
monotonically increasing number based on parse order, or a override value
manually specified on the element)
2. when the "applyAnimations()" method is called on the compositor, a specific
target will be passed
3. animation elements targeting the passed element will be grabbed out of a
hash and sorted into priority order.
4. the compositor will walk backwards through that priority list until either
hitting the beginning or an animation with additive="replace".
5.  the compositor can then walk forwards to generate the new value from the
original baseValue or replaced value.

This is a very rough sketch.

This bug covers breaking the existing KSVGTimeScheduler composition logic out
into its own class, and wiring things up enough to at least confirm that simple
animations work.


-- 
Configure bugmail: http://bugzilla.opendarwin.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list