Skip to content

Commit

Permalink
Canvas: implement transformation matrix rotation.
Browse files Browse the repository at this point in the history
  • Loading branch information
mmatyas committed May 6, 2015
1 parent 7b87085 commit e3e2119
Show file tree
Hide file tree
Showing 10 changed files with 15 additions and 45 deletions.
14 changes: 14 additions & 0 deletions components/script/dom/canvasrenderingcontext2d.rs
Expand Up @@ -355,6 +355,20 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>
self.update_transform()
}

// https://html.spec.whatwg.org/multipage/#dom-context-2d-rotate
fn Rotate(self, angle: f64) {
if angle == 0.0 || !angle.is_finite() {
return;
}

let (sin, cos) = (angle.sin(), angle.cos());
let transform = self.state.borrow().transform;
self.state.borrow_mut().transform = transform.mul(&Matrix2D::new(cos as f32, sin as f32,
-sin as f32, cos as f32,
0.0, 0.0));
self.update_transform()
}

// https://html.spec.whatwg.org/multipage/#dom-context-2d-translate
fn Translate(self, x: f64, y: f64) {
if !(x.is_finite() && y.is_finite()) {
Expand Down
Expand Up @@ -32,7 +32,7 @@ interface CanvasRenderingContext2D {
// transformations (default transform is the identity matrix)
// attribute SVGMatrix currentTransform;
void scale(unrestricted double x, unrestricted double y);
//void rotate(unrestricted double angle);
void rotate(unrestricted double angle);
void translate(unrestricted double x, unrestricted double y);
void transform(unrestricted double a,
unrestricted double b,
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

9 changes: 0 additions & 9 deletions tests/wpt/metadata/html/dom/interfaces.html.ini
Expand Up @@ -6828,9 +6828,6 @@
[CanvasRenderingContext2D interface: attribute currentTransform]
expected: FAIL
[CanvasRenderingContext2D interface: operation rotate(unrestricted double)]
expected: FAIL
[CanvasRenderingContext2D interface: operation resetTransform()]
expected: FAIL
Expand Down Expand Up @@ -6960,12 +6957,6 @@
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "currentTransform" with the proper type (6)]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "rotate" with the proper type (8)]
expected: FAIL
[CanvasRenderingContext2D interface: calling rotate(unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError]
expected: FAIL
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "resetTransform" with the proper type (12)]
expected: FAIL
Expand Down

0 comments on commit e3e2119

Please sign in to comment.