diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2018-09-16 22:12:44 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2018-09-17 16:24:01 +0200 |
commit | 36c8cd229e0734efc374968964c8485ac45bbbf3 (patch) | |
tree | de885a19d8a3ffc6135cbf65d4d400ae21648209 | |
parent | 9f7b7464306c96ba0446ef0c5395325faaad3d5c (diff) | |
download | servo-36c8cd229e0734efc374968964c8485ac45bbbf3.tar.gz servo-36c8cd229e0734efc374968964c8485ac45bbbf3.zip |
Remove Canvas2dMsg::DrawImageSelf
Now that all canvas share the same thread, it's useless to have a separate message
for that.
-rw-r--r-- | components/canvas/canvas_data.rs | 15 | ||||
-rw-r--r-- | components/canvas/canvas_paint_thread.rs | 20 | ||||
-rw-r--r-- | components/canvas_traits/canvas.rs | 1 | ||||
-rw-r--r-- | components/script/dom/canvasrenderingcontext2d.rs | 26 |
4 files changed, 11 insertions, 51 deletions
diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs index bd825af38aa..b1768fe8744 100644 --- a/components/canvas/canvas_data.rs +++ b/components/canvas/canvas_data.rs @@ -85,21 +85,6 @@ impl<'a> CanvasData<'a> { } } - pub fn draw_image_self( - &self, - image_size: Size2D<f64>, - dest_rect: Rect<f64>, - source_rect: Rect<f64>, - smoothing_enabled: bool - ) { - // Reads pixels from source image - // In this case source and target are the same canvas - let image_data = self.read_pixels(source_rect.to_i32(), image_size); - - // The dimensions of image_data are source_rect.size - self.draw_image(image_data, source_rect.size, dest_rect, source_rect, smoothing_enabled); - } - pub fn save_context_state(&mut self) { self.saved_states.push(self.state.clone()); } diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs index a6050d93564..3e66194e94c 100644 --- a/components/canvas/canvas_paint_thread.rs +++ b/components/canvas/canvas_paint_thread.rs @@ -153,19 +153,6 @@ impl<'a> CanvasPaintThread <'a> { smoothing_enabled, ) }, - Canvas2dMsg::DrawImageSelf( - image_size, - dest_rect, - source_rect, - smoothing_enabled - ) => { - self.canvas(canvas_id).draw_image_self( - image_size, - dest_rect, - source_rect, - smoothing_enabled - ) - }, Canvas2dMsg::DrawImageInOther( other_canvas_id, image_size, @@ -173,9 +160,10 @@ impl<'a> CanvasPaintThread <'a> { source_rect, smoothing ) => { - let mut image_data = self.canvas(canvas_id).read_pixels( - source_rect.to_i32(), - image_size); + let image_data = self.canvas(canvas_id).read_pixels( + source_rect.to_i32(), + image_size, + ); self.canvas(other_canvas_id).draw_image( image_data.into(), source_rect.size, diff --git a/components/canvas_traits/canvas.rs b/components/canvas_traits/canvas.rs index a2af3a70d42..a9d47d252a4 100644 --- a/components/canvas_traits/canvas.rs +++ b/components/canvas_traits/canvas.rs @@ -39,7 +39,6 @@ pub enum Canvas2dMsg { Arc(Point2D<f32>, f32, f32, f32, bool), ArcTo(Point2D<f32>, Point2D<f32>, f32), DrawImage(Option<ByteBuf>, Size2D<f64>, Rect<f64>, Rect<f64>, bool), - DrawImageSelf(Size2D<f64>, Rect<f64>, Rect<f64>, bool), DrawImageInOther( CanvasId, Size2D<f64>, Rect<f64>, Rect<f64>, bool), BeginPath, diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 12e3ad17959..0da01cc8453 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -361,25 +361,13 @@ impl CanvasRenderingContext2D { if let Some(context) = canvas.context() { match *context { CanvasContext::Context2d(ref context) => { - if self.canvas.as_ref().map_or(false, |c| &**c == canvas) { - self.send_canvas_2d_msg(Canvas2dMsg::DrawImageSelf( - image_size, - dest_rect, - source_rect, - smoothing_enabled, - )); - } else { - context.get_ipc_renderer().send(CanvasMsg::Canvas2d( - Canvas2dMsg::DrawImageInOther( - self.get_canvas_id(), - image_size, - dest_rect, - source_rect, - smoothing_enabled, - ), - context.get_canvas_id(), - )).unwrap(); - } + context.send_canvas_2d_msg(Canvas2dMsg::DrawImageInOther( + self.get_canvas_id(), + image_size, + dest_rect, + source_rect, + smoothing_enabled, + )); }, _ => return Err(Error::InvalidState), } |