Re: [css3-transforms] Behavior on UAs without 3D support

On May 1, 2012, at 8:39 PM, Simon Fraser wrote:

> On May 1, 2012, at 7:14 pm, Brian Manthos wrote:
>>> WebKit on Mac, certainly, doesn't support 3D when printing.
>> In case it informs the discussion...
>> Why not?
> Because the subsystem we use for rendering elements with 3D transforms, which sits on top of OpenGL, is designed for on-screen presentation, and not for printer-resolution output.
> Simon
According to the last comments, I suggest a wording like that (style gets lost because of text mail):

Two-dimensional Subset

UAs may not always be able to render three-dimensional transforms and then just support a two-dimensional subset of this specification. In this case three-dimensional transforms and the properties 'transform-style', 'perspective', 'perspective-origin' and 'backface-visibility' must not be supported. Section 3D Transform Rendering does not apply. Matrix decomposing uses the technique taken from the "unmatrix" method in "Graphics Gems II, edited by Jim Arvo", simplified for the 2D case. Section "Mathematical Description of Transform Functions" is still effective but can be reduced by using a 3x3 transformation matrix where a equals m11, b equals m12, c equals m21, d equals m22, e equals m41 and f equals m42 (see "A 2D 3x2 matrix with six parameter").

<image of equation>


Authors can easily provide a fallback if UAs do not provide support for three-dimensional transforms. The following example has two property definitions for 'transform'. The first one consists of two two-dimensional transform functions. The second one has a two-dimensional and a three-dimensional transform function.

div {
    transform: scale(2) rotate(45deg);
    transform: scale(2) rotate3d(0, 0, 1, 45deg);

With 3D support, the second definition will override the first one. Without 3D support, the second definition is invalid and a UA falls back to the first definition.


Received on Wednesday, 2 May 2012 20:43:33 UTC