I thought I’d post this patch which contains my work so far.
This patch contains most of the classes I outlined in my
design.
It will do very simple animation of lengths using a very limited subset of
timing specifiers. Please don’t look at the code in
nsSVGLength
and nsSVGAnimatedLength
.
It’s just a hack to get it to work while I wait to hear
from others how this should be done in the end.
Probably the implementation I included in the previous patch was better.
I wouldn’t really recommend applying it because it also contain’s tor’s patch
for bug 301628 but along
the way I’ve had to merge it with recent <textPath>
and events checkins and
I’ve possibly broken something along the way. So you’re better off just to leave
it until bug 301628 gets
checked-in and I re-create the patch.
If you’re feeling brave however, you’ll probably want to apply it from
/mozilla
and run:
patch -p 3 -u -N < smil-anim-2005-08-29-1947.patch
(I’ll fix the absolute paths someday so you don’t need -p 3
).
You’ll need to add --enable-smil
to your .mozconfig
and then do a full build.
If you want to try just doing a minimal re-build, the following might work:
mozilla> ./configure
(to re-createautoconf.mk
, although this will have the effect of touching all the Makefiles meaning that when you run make libs later on it will take a while. You might want to just try and patch upautoconf.mk
yourself).mozilla/dom/public>
make
(to export the headers and make the IDL definitions)mozilla/content/smil/public>
make
(to export the headers required bynsPresContext.h
mozilla/layout/base>
make
(to updatensPresContext
)mozilla/dom/src/base>
make
mozilla/dom>
make
(not sure if this is necessary)mozilla/content/smil>
make
mozilla/content/svg/content/src>
make
mozilla/layout/svg/base/src>
make
mozilla/layout>
make libs
Like I said, you’re probably better off doing a full build, I’m really not sure that the above approach will work. I’ve tried the patch on Windows and Linux and it works for these test cases.
Here’s the patch again: smil-anim-2005-08-29-1947.patch. It’s about 500k.