Title: [202102] trunk
Revision
202102
Author
commit-qu...@webkit.org
Date
2016-06-15 12:41:52 -0700 (Wed, 15 Jun 2016)

Log Message

Fix 2d canvas transform after r192900
https://bugs.webkit.org/show_bug.cgi?id=158725
Source/WebCore:

rdar://problem/26774230

Patch by Alex Christensen <achristen...@webkit.org> on 2016-06-15
Reviewed by Dean Jackson.

Test: fast/canvas/canvas-transform-inverse.html

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::transform):
r192900 was intended to have no change in behavior, but I made a typo.
We need to apply the inverse of the original transform to the path to be correct.
This affects transforms applied to the canvas during the creation of a path.

LayoutTests:

Patch by Alex Christensen <achristen...@webkit.org> on 2016-06-15
Reviewed by Dean Jackson.

* fast/canvas/canvas-transform-inverse-expected.html: Added.
* fast/canvas/canvas-transform-inverse.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (202101 => 202102)


--- trunk/LayoutTests/ChangeLog	2016-06-15 19:40:43 UTC (rev 202101)
+++ trunk/LayoutTests/ChangeLog	2016-06-15 19:41:52 UTC (rev 202102)
@@ -1,3 +1,13 @@
+2016-06-15  Alex Christensen  <achristen...@webkit.org>
+
+        Fix 2d canvas transform after r192900
+        https://bugs.webkit.org/show_bug.cgi?id=158725
+
+        Reviewed by Dean Jackson.
+
+        * fast/canvas/canvas-transform-inverse-expected.html: Added.
+        * fast/canvas/canvas-transform-inverse.html: Added.
+
 2016-06-15  Eric Carlson  <eric.carl...@apple.com>
 
         [iOS] Make HTMLMediaElement.muted mutable

Added: trunk/LayoutTests/fast/canvas/canvas-transform-inverse-expected.html (0 => 202102)


--- trunk/LayoutTests/fast/canvas/canvas-transform-inverse-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/canvas/canvas-transform-inverse-expected.html	2016-06-15 19:41:52 UTC (rev 202102)
@@ -0,0 +1,12 @@
+<canvas id="canvas" class="output" width="300" height="300"></canvas>
+<script>
+var ctx = document.getElementById("canvas").getContext("2d");
+var angle = .4;
+ctx.beginPath();
+ctx.rotate(angle);
+ctx.moveTo(100,100);
+ctx.lineTo(20,30);
+ctx.rotate(angle);
+ctx.lineTo(40,-50);
+ctx.stroke();
+</script>

Added: trunk/LayoutTests/fast/canvas/canvas-transform-inverse.html (0 => 202102)


--- trunk/LayoutTests/fast/canvas/canvas-transform-inverse.html	                        (rev 0)
+++ trunk/LayoutTests/fast/canvas/canvas-transform-inverse.html	2016-06-15 19:41:52 UTC (rev 202102)
@@ -0,0 +1,14 @@
+<canvas id="canvas" class="output" width="300" height="300"></canvas>
+<script>
+var ctx = document.getElementById("canvas").getContext("2d");
+var angle = .4;
+var s = Math.sin(angle);
+var c = Math.cos(angle);
+ctx.beginPath();
+ctx.transform(c,s,-s,c,0,0);
+ctx.moveTo(100,100);
+ctx.lineTo(20,30);
+ctx.transform(c,s,-s,c,0,0);
+ctx.lineTo(40,-50);
+ctx.stroke();
+</script>

Modified: trunk/Source/WebCore/ChangeLog (202101 => 202102)


--- trunk/Source/WebCore/ChangeLog	2016-06-15 19:40:43 UTC (rev 202101)
+++ trunk/Source/WebCore/ChangeLog	2016-06-15 19:41:52 UTC (rev 202102)
@@ -1,3 +1,19 @@
+2016-06-15  Alex Christensen  <achristen...@webkit.org>
+
+        Fix 2d canvas transform after r192900
+        https://bugs.webkit.org/show_bug.cgi?id=158725
+        rdar://problem/26774230
+
+        Reviewed by Dean Jackson.
+
+        Test: fast/canvas/canvas-transform-inverse.html
+
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::transform):
+        r192900 was intended to have no change in behavior, but I made a typo.
+        We need to apply the inverse of the original transform to the path to be correct.
+        This affects transforms applied to the canvas during the creation of a path.
+
 2016-06-15  Eric Carlson  <eric.carl...@apple.com>
 
         [iOS] Make HTMLMediaElement.muted mutable

Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (202101 => 202102)


--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp	2016-06-15 19:40:43 UTC (rev 202101)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp	2016-06-15 19:41:52 UTC (rev 202102)
@@ -786,7 +786,7 @@
 
     realizeSaves();
 
-    if (auto inverse = newTransform.inverse()) {
+    if (auto inverse = transform.inverse()) {
         modifiableState().transform = newTransform;
         c->concatCTM(transform);
         m_path.transform(inverse.value());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to