RESOLVED FIXED 27310
Incorrect animation when trying to duplicate effect of transform-origin
https://bugs.webkit.org/show_bug.cgi?id=27310
Summary Incorrect animation when trying to duplicate effect of transform-origin
Chris Marrin
Reported 2009-07-15 12:04:49 PDT
Created attachment 32798 [details] testcase showing bug See the attached testcase. You can duplicate the effect of the Z component of transform-origin using something like this: -webkit-transform: translateZ(200px) rotateY(90deg) translateZ(-200px) This basically offset the axis of rotation by 200 pixels. But when animating this in hardware on Snow Leopard, it uses matrix animation, which produces the wrong results. It looks like the translation value is changing during the animation. This is due to how CA does matrix animation. This case correctly falls back to software animation in Leopard. In Snow Leopard it can still use hardware animation because it can use the valueFunction feature to animate the components separately. But we mistakenly chooses matrix animation instead.
Attachments
testcase showing bug (4.09 KB, text/html)
2009-07-15 12:04 PDT, Chris Marrin
no flags
Patch with test (7.81 KB, patch)
2009-07-15 12:10 PDT, Chris Marrin
simon.fraser: review+
Chris Marrin
Comment 1 2009-07-15 12:10:22 PDT
Created attachment 32799 [details] Patch with test
Simon Fraser (smfr)
Comment 2 2009-07-15 12:14:00 PDT
Comment on attachment 32799 [details] Patch with test > Index: WebCore/ChangeLog > =================================================================== > --- WebCore/ChangeLog (revision 45934) > +++ WebCore/ChangeLog (working copy) > @@ -1,3 +1,19 @@ > +2009-07-15 Chris Marrin <cmarrin@apple.com> > + > + Reviewed by NOBODY (OOPS!). > + > + https://bugs.webkit.org/show_bug.cgi?id=27310 There's a new format being used here now. See earlier entries. > + This fixes the bug by always doing component animation > + as long as the function lists match. This allows CA > + to animate the components and then recompose the result > + into the correct matrix. It would be nice to describe the bug that is being fixed here too. > Index: LayoutTests/animations/transform-origin-vs-functions.html > =================================================================== > + //document.addEventListener('webkitAnimationStart', start, false); You should remove that if it's not necessary. r=me with those fixes.
Chris Marrin
Comment 3 2009-07-15 15:33:34 PDT
Sending LayoutTests/ChangeLog Adding LayoutTests/animations/transform-origin-vs-functions-expected.txt Adding LayoutTests/animations/transform-origin-vs-functions.html Sending WebCore/ChangeLog Sending WebCore/platform/graphics/mac/GraphicsLayerCA.mm Transmitting file data ..... Committed revision 45953.
Simon Fraser (smfr)
Comment 4 2009-07-16 16:29:22 PDT
This caused bug 27356.
Note You need to log in before you can comment on or make changes to this bug.