This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 18366 - Don't multiply transform functions before interpolation on non equal transform lists
Summary: Don't multiply transform functions before interpolation on non equal transfor...
Status: RESOLVED FIXED
Alias: None
Product: CSS
Classification: Unclassified
Component: Transforms (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Simon Fraser
QA Contact: public-css-bugzilla
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-23 21:58 UTC by Dirk Schulze
Modified: 2012-10-18 21:43 UTC (History)
6 users (show)

See Also:


Attachments

Description Dirk Schulze 2012-07-23 21:58:56 UTC
David Baron asks on www-style[1] if it is possible to interpolate each transform function pair of two transformation lists separately, even if both lists don't have the same transform function primitives in the same order.

This is different to the current spec, where transform functions are premultiplied together to one matrix per transform list and these two matrices are interpolated.

[1] http://lists.w3.org/Archives/Public/www-style/2012Jul/0460.html
Comment 1 Simon Fraser 2012-07-24 22:03:25 UTC
That's not what he's asking. He's interpreted the presence of a "non-primitive" transform (e.g. perspective) as forcing the entire list into one matrix animation. He's suggesting we just do that one non-primitive pair as a matix anim, and keep the rest paired.
Comment 2 Simon Fraser 2012-08-01 15:52:26 UTC
The spec now says:
"The transform functions ‘matrix’, ‘rotate3d’, ‘matrix3d’ and ‘perspective’ get converted into 4x4 matrices first and interpolated as defined in section Interpolation of Matrices afterwards."

In WebKit, for rotate3d(), we will blend single-axis functions without creating a matrix and decomposing. I think this makes most sense. I think it would also make sense to allow rotate3d(0, 0, 1, ...) to blend with rotate(), rotate3d(1, 0, 0, ...) with rotateX() etc.
Comment 3 Dirk Schulze 2012-10-18 21:43:42 UTC
(In reply to comment #2)
> The spec now says:
> "The transform functions ‘matrix’, ‘rotate3d’, ‘matrix3d’ and ‘perspective’
> get converted into 4x4 matrices first and interpolated as defined in section
> Interpolation of Matrices afterwards."
> 
> In WebKit, for rotate3d(), we will blend single-axis functions without
> creating a matrix and decomposing. I think this makes most sense. I think it
> would also make sense to allow rotate3d(0, 0, 1, ...) to blend with
> rotate(), rotate3d(1, 0, 0, ...) with rotateX() etc.

This is fixed in the latest update of the specification text and resolved by the CSS WG.