aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/canvasrenderingcontext2d.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-12-06 07:19:23 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-12-06 07:19:23 +0530
commit98972d04342602610a7465de7b0639e2b9c1dcf3 (patch)
tree321fbc8845716b9a9c037a49da66197a16866be0 /components/script/dom/canvasrenderingcontext2d.rs
parent2af23dc06151475b053bd76976fd9da899f27b8b (diff)
parent789a90a82f7d0c89bf2b1065acbf218626a66a41 (diff)
downloadservo-98972d04342602610a7465de7b0639e2b9c1dcf3.tar.gz
servo-98972d04342602610a7465de7b0639e2b9c1dcf3.zip
Auto merge of #8740 - dzbarsky:ispointinpath, r=frewsxcv
Implement IsPointInPath for Canvas <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8740) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/canvasrenderingcontext2d.rs')
-rw-r--r--components/script/dom/canvasrenderingcontext2d.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs
index 5fed20daae7..119f819cf8e 100644
--- a/components/script/dom/canvasrenderingcontext2d.rs
+++ b/components/script/dom/canvasrenderingcontext2d.rs
@@ -5,7 +5,7 @@
use canvas::canvas_paint_task::RectToi32;
use canvas_traits::{Canvas2dMsg, CanvasCommonMsg, CanvasMsg};
use canvas_traits::{CompositionOrBlending, LineCapStyle, LineJoinStyle};
-use canvas_traits::{FillOrStrokeStyle, LinearGradientStyle, RadialGradientStyle, RepetitionStyle};
+use canvas_traits::{FillOrStrokeStyle, FillRule, LinearGradientStyle, RadialGradientStyle, RepetitionStyle};
use cssparser::Color as CSSColor;
use cssparser::{Parser, RGBA};
use dom::bindings::cell::DOMRefCell;
@@ -695,6 +695,19 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
self.ipc_renderer.send(CanvasMsg::Canvas2d(Canvas2dMsg::Clip)).unwrap();
}
+ // https://html.spec.whatwg.org/multipage/#dom-context-2d-ispointinpath
+ fn IsPointInPath(&self, x: f64, y: f64, fill_rule: CanvasFillRule) -> bool {
+ let fill_rule = match fill_rule {
+ CanvasFillRule::Nonzero => FillRule::Nonzero,
+ CanvasFillRule::Evenodd => FillRule::Evenodd,
+ };
+ let (sender, receiver) = ipc::channel::<bool>().unwrap();
+ self.ipc_renderer
+ .send(CanvasMsg::Canvas2d(Canvas2dMsg::IsPointInPath(x, y, fill_rule, sender)))
+ .unwrap();
+ receiver.recv().unwrap()
+ }
+
// https://html.spec.whatwg.org/multipage/#dom-context-2d-drawimage
fn DrawImage(&self,
image: HTMLImageElementOrHTMLCanvasElementOrCanvasRenderingContext2D,