Skip to content

Commit 622efe4

Browse files
committed
Better definition for backface-visibility
Fixes https://www.w3.org/Bugs/Public/show_bug.cgi?id=16349.
1 parent 8f95baa commit 622efe4

3 files changed

Lines changed: 63 additions & 28 deletions

File tree

css3-transforms/ChangeLog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2012-03-19 ayg@aryeh.name
2+
Better definition for backface-visibility
3+
Fixes https://www.w3.org/Bugs/Public/show_bug.cgi?id=16349.
4+
15
2012-03-16 dschulze@adobe.com
26
Transform functions can be separated by optional whitespace. This matches behavior of all
37
browsers on CSS Transforms as well as SVG Transforms.

css3-transforms/Overview.html

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@
3636

3737
<h1>CSS Transforms</h1>
3838

39-
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 16 March 2012</h2>
39+
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 19 March 2012</h2>
4040

4141
<dl>
4242
<dt>This version:
4343

4444
<dd> <a
45-
href="http://www.w3.org/TR/2012/ED-css3-transforms-20120316/">http://dev.w3.org/csswg/css3-transforms/</a>
46-
<!--http://www.w3.org/TR/2012/WD-css3-transforms-20120316-->
45+
href="http://www.w3.org/TR/2012/ED-css3-transforms-20120319/">http://dev.w3.org/csswg/css3-transforms/</a>
46+
<!--http://www.w3.org/TR/2012/WD-css3-transforms-20120319-->
4747

4848
<dt>Latest version:
4949

@@ -468,6 +468,15 @@ <h2 id=definitions><span class=secno>4. </span>Definitions</h2>
468468
class=property>transform-origin</code></code></a>&rsquo; properties as
469469
described <a href="#transformation-matrix-computation">below</a>.</p>
470470

471+
<dt id=TermAccumulated3DTransformationMatrix> <dfn
472+
id=accumulated-3d-transformation-matrix>accumulated 3D transformation
473+
matrix</dfn>
474+
475+
<dd>
476+
<p> A matrix computed for elements in a <a href="#d-rendering-context">3D
477+
rendering context</a>, as described <a
478+
href="#accumulated-3d-transformation-matrix-computation">below</a>.</p>
479+
471480
<dt id=Term3DRenderingContext><dfn id=d-rendering-context>3D rendering
472481
context</dfn>
473482

@@ -845,12 +854,14 @@ <h3 id=transform-3d-rendering><span class=secno>5.1. </span>3D Transform
845854
href="#d-rendering-context">3D rendering context</a>.
846855
</ul>
847856

848-
<p> The final value of the transform used to render an element in a <a
849-
class=term href="#d-rendering-context">3D rendering context</a> is
850-
computed by accumulating a matrix as follows:
857+
<p id=accumulated-3d-transformation-matrix-computation> The final value of
858+
the transform used to render an element in a <a class=term
859+
href="#d-rendering-context">3D rendering context</a> is computed by
860+
accumulating an <a href="#TermAccumulated3DTransformationMatrix">
861+
accumulated 3D transformation matrix</a> as follows:
851862

852863
<ol>
853-
<li>Start with the identity matrix
864+
<li>Start with the identity matrix.
854865

855866
<li>For each containing block between the root of the <a class=term
856867
href="#d-rendering-context">3D rendering context</a> and the element in
@@ -1904,19 +1915,17 @@ <h2 id=backface-visibility-property><span class=secno>12. </span> The
19041915
as follows:
19051916

19061917
<ol>
1907-
<li>Compute a matrix representing the accumulated transform from the
1908-
viewport, taking the translations due to the CSS visual formatting mode,
1909-
the perspective and transformation matrices into account, in a similar
1910-
manner to the computation of the accumulated transform for an element in
1911-
a 3D rendering context.
1918+
<li> For an element in a <a href="#d-rendering-context">3D rendering
1919+
context</a>, compute its <a
1920+
href="#TermAccumulated3DTransformationMatrix"> accumulated 3D
1921+
transformation matrix</a>. For an element not in a <a
1922+
href="#d-rendering-context">3D rendering context</a>, compute its <a
1923+
href="#TermTransformationMatrix">transformation matrix</a>.
19121924

19131925
<li> If the component of the matrix in row 3, column 3 is negative, then
1914-
the element should be hidden, otherwise it is visible.
1926+
the element should be hidden. Otherwise it is visible.
19151927
</ol>
19161928

1917-
<div class=issue> Is the relevant matrix here really relative to the
1918-
viewport, or to the root of the 3D rendering context?</div>
1919-
19201929
<p class=note> The reasoning for this definition is as follows. Assume
19211930
elements are rectangles in the <var>x</var>&ndash;<var>y</var> plane with
19221931
infinitesimal thickness. The front of the untransformed element has
@@ -2638,6 +2647,10 @@ <h2 class=no-num id=index>Index</h2>
26382647
<li>3D rendering context, <a href="#d-rendering-context"
26392648
title="3D rendering context"><strong>4.</strong></a>
26402649

2650+
<li>accumulated 3D transformation matrix, <a
2651+
href="#accumulated-3d-transformation-matrix"
2652+
title="accumulated 3D transformation matrix"><strong>4.</strong></a>
2653+
26412654
<li>backface-visibility, <a href="#backface-visibility"
26422655
title=backface-visibility><strong>12.</strong></a>
26432656

css3-transforms/Transforms.src.html

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,18 @@ <h2 id="definitions">Definitions</h2>
225225
</p>
226226
</dd>
227227

228+
<dt id="TermAccumulated3DTransformationMatrix">
229+
<dfn>accumulated 3D transformation matrix</dfn>
230+
</dt>
231+
<dd>
232+
<p>
233+
A matrix computed for elements in a
234+
<a href="#d-rendering-context">3D rendering context</a>, as
235+
described
236+
<a href="#accumulated-3d-transformation-matrix-computation">below</a>.
237+
</p>
238+
</dd>
239+
228240
<dt id="Term3DRenderingContext"><dfn>3D rendering context</dfn></dt>
229241
<dd>
230242
<p>
@@ -534,12 +546,14 @@ <h3 id="transform-3d-rendering">3D Transform Rendering</h3>
534546
establishes or extends a <span class="term">3D rendering context</span>.
535547
</li>
536548
</ul>
537-
<p>
549+
<p id="accumulated-3d-transformation-matrix-computation">
538550
The final value of the transform used to render an element in a <span class="term">3D rendering context</span>
539-
is computed by accumulating a matrix as follows:
551+
is computed by accumulating an
552+
<a href="#TermAccumulated3DTransformationMatrix">
553+
accumulated 3D transformation matrix</a> as follows:
540554
</p>
541555
<ol>
542-
<li>Start with the identity matrix</li>
556+
<li>Start with the identity matrix.</li>
543557
<li>For each containing block between the root of the <span class="term">3D rendering context</span>
544558
and the element in question:
545559
<ol>
@@ -1562,19 +1576,23 @@ <h2 id="backface-visibility-property">
15621576
The visibility of an element with '<code class="css">backface-visibility: hidden</code>' is determined
15631577
as follows:
15641578
<ol>
1565-
<li>Compute a matrix representing the accumulated transform from the viewport, taking the translations
1566-
due to the CSS visual formatting mode, the perspective and transformation matrices into account,
1567-
in a similar manner to the computation of the accumulated transform for an element in a
1568-
3D rendering context.
1579+
<li>
1580+
For an element in a
1581+
<a href="#d-rendering-context">3D rendering context</a>,
1582+
compute its
1583+
<a href="#TermAccumulated3DTransformationMatrix">
1584+
accumulated 3D transformation matrix</a>. For an element
1585+
not in a
1586+
<a href="#d-rendering-context">3D rendering context</a>,
1587+
compute its
1588+
<a href="#TermTransformationMatrix">transformation matrix</a>.
15691589
</li>
15701590
<li>
1571-
If the component of the matrix in row 3, column 3 is negative, then the element should be hidden,
1572-
otherwise it is visible.
1591+
If the component of the matrix in row 3, column 3 is
1592+
negative, then the element should be hidden. Otherwise it
1593+
is visible.
15731594
</li>
15741595
</ol>
1575-
<div class="issue">
1576-
Is the relevant matrix here really relative to the viewport, or to the root of the 3D rendering context?
1577-
</div>
15781596
</p>
15791597
<p class="note">
15801598
The reasoning for this definition is as follows. Assume

0 commit comments

Comments
 (0)