mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Canvas: implement transformation matrix reset.
This commit is contained in:
parent
ccf1e6b9a7
commit
9302aaab96
6 changed files with 72 additions and 7 deletions
|
@ -413,6 +413,12 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D>
|
||||||
self.update_transform()
|
self.update_transform()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/#dom-context-2d-resettransform
|
||||||
|
fn ResetTransform(self) {
|
||||||
|
self.state.borrow_mut().transform = Matrix2D::identity();
|
||||||
|
self.update_transform()
|
||||||
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-globalalpha
|
// https://html.spec.whatwg.org/multipage/#dom-context-2d-globalalpha
|
||||||
fn GlobalAlpha(self) -> f64 {
|
fn GlobalAlpha(self) -> f64 {
|
||||||
let state = self.state.borrow();
|
let state = self.state.borrow();
|
||||||
|
|
|
@ -46,7 +46,7 @@ interface CanvasRenderingContext2D {
|
||||||
unrestricted double d,
|
unrestricted double d,
|
||||||
unrestricted double e,
|
unrestricted double e,
|
||||||
unrestricted double f);
|
unrestricted double f);
|
||||||
//void resetTransform();
|
void resetTransform();
|
||||||
|
|
||||||
// compositing
|
// compositing
|
||||||
attribute unrestricted double globalAlpha; // (default 1.0)
|
attribute unrestricted double globalAlpha; // (default 1.0)
|
||||||
|
|
|
@ -1157,6 +1157,16 @@
|
||||||
],
|
],
|
||||||
"url": "/2dcontext/transformations/canvas_transformations_scale_001.htm"
|
"url": "/2dcontext/transformations/canvas_transformations_scale_001.htm"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "2dcontext/transformations/canvas_transformations_reset_001.htm",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/2dcontext/transformations/canvas_transformations_reset_001-ref.htm",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/2dcontext/transformations/canvas_transformations_reset_001.htm"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "FileAPI/url/url_xmlhttprequest_img.html",
|
"path": "FileAPI/url/url_xmlhttprequest_img.html",
|
||||||
"references": [
|
"references": [
|
||||||
|
@ -20882,6 +20892,18 @@
|
||||||
"url": "/2dcontext/transformations/canvas_transformations_scale_001.htm"
|
"url": "/2dcontext/transformations/canvas_transformations_scale_001.htm"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"2dcontext/transformations/canvas_transformations_reset_001.htm": [
|
||||||
|
{
|
||||||
|
"path": "2dcontext/transformations/canvas_transformations_reset_001.htm",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/2dcontext/transformations/canvas_transformations_reset_001-ref.htm",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/2dcontext/transformations/canvas_transformations_reset_001.htm"
|
||||||
|
}
|
||||||
|
],
|
||||||
"FileAPI/url/url_xmlhttprequest_img.html": [
|
"FileAPI/url/url_xmlhttprequest_img.html": [
|
||||||
{
|
{
|
||||||
"path": "FileAPI/url/url_xmlhttprequest_img.html",
|
"path": "FileAPI/url/url_xmlhttprequest_img.html",
|
||||||
|
|
|
@ -6828,9 +6828,6 @@
|
||||||
[CanvasRenderingContext2D interface: attribute currentTransform]
|
[CanvasRenderingContext2D interface: attribute currentTransform]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[CanvasRenderingContext2D interface: operation resetTransform()]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource,DOMString)]
|
[CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource,DOMString)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -6957,9 +6954,6 @@
|
||||||
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "currentTransform" with the proper type (6)]
|
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "currentTransform" with the proper type (6)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "resetTransform" with the proper type (12)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeStyle" with the proper type (16)]
|
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeStyle" with the proper type (16)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<style>
|
||||||
|
html, body, div {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
width: 75px;
|
||||||
|
height: 75px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div style="background-color:red"></div>
|
||||||
|
<div style="clear:left"></div>
|
||||||
|
<div style="background-color:blue"></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="match" href="canvas_transformations_reset_001-ref.htm">
|
||||||
|
<style>
|
||||||
|
html, body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<canvas id="c" width="150" height="150"></canvas>
|
||||||
|
<script>
|
||||||
|
var c = document.getElementById("c");
|
||||||
|
var ctx = c.getContext("2d");
|
||||||
|
|
||||||
|
ctx.translate(75, 75);
|
||||||
|
ctx.fillStyle = 'blue';
|
||||||
|
ctx.fillRect(0, 0, 75, 75);
|
||||||
|
|
||||||
|
ctx.resetTransform();
|
||||||
|
ctx.fillStyle = 'red';
|
||||||
|
ctx.fillRect(0, 0, 75, 75);
|
||||||
|
</script>
|
Loading…
Add table
Add a link
Reference in a new issue