W3C home > Mailing lists > Public > www-style@w3.org > September 2010

Re: [css3-3d-transforms] Handling non-invertible matrices

From: Chris Marrin <cmarrin@apple.com>
Date: Wed, 08 Sep 2010 17:01:55 -0700
Cc: "www-style@w3.org list" <www-style@w3.org>
Message-id: <0388249C-A3E0-4FC9-B42E-FCFA10D7282F@apple.com>
To: Sylvain Galineau <sylvaing@microsoft.com>

On Sep 8, 2010, at 4:52 PM, Dean Jackson wrote:

> 
> On 09/09/2010, at 9:21 AM, Sylvain Galineau wrote:
> 
>> CSS3 2D Transforms specifies the following [1] :
>> 
>> # In some cases, an animation might cause a transformation matrix to be singular or 
>> # non-invertible. For example, an animation in which scale moves from 1 to -1. At the 
>> # time when the matrix is in such a state, the transformed element is not rendered.
>> 
>> I assume the same applies to 3D Transforms ?
> 
> Yes.
> 
>> 
>> What does 'the transformed element is not rendered' mean ? I assume it means the
>> the result is equivalent to applying the identity transform but as written it could
>> also be saying that the element is not rendered at all. My understanding is that SVG
>> does the former and we'd want to do the same here.
>> 
>> [1] http://dev.w3.org/csswg/css3-2d-transforms/#animation
> 
> I don't think we would want to apply the identity transform. If so, the animation above would flash as scale hits 0. And in fact, every element with scale(0) would draw.
> 
> I don't think SVG suggests this behaviour, for the same reason. An element with scale(0) or skewX(90) should not appear (not render). It shouldn't render as if there was an identity transform.

In particular, I believe the WebKit implementation says "if the matrix is singular, skip over the rendering step". This avoid problems in the lower level code. I think this happens both with SVG and CSS rendering.

-----
~Chris
cmarrin@apple.com
Received on Thursday, 9 September 2010 00:02:28 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:31 GMT