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