Bug 18366 - Don't multiply transform functions before interpolation on non equal transform lists
Don't multiply transform functions before interpolation on non equal transfor...
Status: RESOLVED FIXED
Product: CSS
Classification: Unclassified
Component: Transforms
unspecified
PC All
: P2 normal
: ---
Assigned To: Simon Fraser
public-css-bugzilla
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-07-23 21:58 UTC by Dirk Schulze
Modified: 2012-10-18 21:43 UTC (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.