aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/canvasrenderingcontext2d.rs
diff options
context:
space:
mode:
authorJoone Hur <joone.hur@intel.com>2017-08-17 10:43:19 -0700
committerJoone Hur <joone.hur@intel.com>2017-09-01 16:04:06 -0700
commit57e283aaabaf1c481fa14dff9e85a53eac4d8113 (patch)
treef195fa268c372da8e18dc1f2a36171a0e3dab63c /components/script/dom/canvasrenderingcontext2d.rs
parentac7cf536927a42a5cece379c53d6f39813a77d71 (diff)
downloadservo-57e283aaabaf1c481fa14dff9e85a53eac4d8113.tar.gz
servo-57e283aaabaf1c481fa14dff9e85a53eac4d8113.zip
Implement Ellipse Canvas 2D API
* Update rust-azure to 0.21.0 * Mark the following test case as fail: tests/wpt/mozilla/tests/mozilla/css-paint-api/background-image-tiled.html * Make the ellipse test case pass. BUG: https://github.com/servo/servo/issues/17598
Diffstat (limited to 'components/script/dom/canvasrenderingcontext2d.rs')
-rw-r--r--components/script/dom/canvasrenderingcontext2d.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs
index 399c1faf30f..e6007c8b6ee 100644
--- a/components/script/dom/canvasrenderingcontext2d.rs
+++ b/components/script/dom/canvasrenderingcontext2d.rs
@@ -957,6 +957,26 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
Ok(())
}
+ // https://html.spec.whatwg.org/multipage/#dom-context-2d-ellipse
+ fn Ellipse(&self, x: f64, y: f64, rx: f64, ry: f64, rotation: f64, start: f64, end: f64, ccw: bool) -> ErrorResult {
+ if !([x, y, rx, ry, rotation, start, end].iter().all(|x| x.is_finite())) {
+ return Ok(());
+ }
+ if rx < 0.0 || ry < 0.0 {
+ return Err(Error::IndexSize);
+ }
+
+ let msg = CanvasMsg::Canvas2d(Canvas2dMsg::Ellipse(Point2D::new(x as f32, y as f32),
+ rx as f32,
+ ry as f32,
+ rotation as f32,
+ start as f32,
+ end as f32,
+ ccw));
+ self.ipc_renderer.send(msg).unwrap();
+ Ok(())
+ }
+
// https://html.spec.whatwg.org/multipage/#dom-context-2d-imagesmoothingenabled
fn ImageSmoothingEnabled(&self) -> bool {
let state = self.state.borrow();