diff options
Diffstat (limited to 'components/canvas')
-rw-r--r-- | components/canvas/canvas_data.rs | 4 | ||||
-rw-r--r-- | components/canvas/canvas_paint_thread.rs | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs index f66bd626cda..e31cf4d68ed 100644 --- a/components/canvas/canvas_data.rs +++ b/components/canvas/canvas_data.rs @@ -919,6 +919,10 @@ impl<'a> CanvasData<'a> { self.state.stroke_opts.set_miter_limit(limit); } + pub fn get_transform(&self) -> Transform2D<f32> { + self.drawtarget.get_transform() + } + pub fn set_transform(&mut self, transform: &Transform2D<f32>) { // If there is an in-progress path, store the existing transformation required // to move between device and user space. diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs index 9cc15665919..c68e11f745a 100644 --- a/components/canvas/canvas_paint_thread.rs +++ b/components/canvas/canvas_paint_thread.rs @@ -210,6 +210,10 @@ impl<'a> CanvasPaintThread<'a> { Canvas2dMsg::SetLineCap(cap) => self.canvas(canvas_id).set_line_cap(cap), Canvas2dMsg::SetLineJoin(join) => self.canvas(canvas_id).set_line_join(join), Canvas2dMsg::SetMiterLimit(limit) => self.canvas(canvas_id).set_miter_limit(limit), + Canvas2dMsg::GetTransform(sender) => { + let transform = self.canvas(canvas_id).get_transform(); + sender.send(transform).unwrap(); + }, Canvas2dMsg::SetTransform(ref matrix) => self.canvas(canvas_id).set_transform(matrix), Canvas2dMsg::SetGlobalAlpha(alpha) => self.canvas(canvas_id).set_global_alpha(alpha), Canvas2dMsg::SetGlobalComposition(op) => { |