aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas/canvas_paint_thread.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/canvas/canvas_paint_thread.rs')
-rw-r--r--components/canvas/canvas_paint_thread.rs32
1 files changed, 13 insertions, 19 deletions
diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs
index 7f0130e8f3e..3e66194e94c 100644
--- a/components/canvas/canvas_paint_thread.rs
+++ b/components/canvas/canvas_paint_thread.rs
@@ -132,34 +132,27 @@ impl<'a> CanvasPaintThread <'a> {
self.canvas(canvas_id).is_point_in_path(x, y, fill_rule, chan)
},
Canvas2dMsg::DrawImage(
- mut imagedata,
+ imagedata,
image_size,
dest_rect,
source_rect,
smoothing_enabled,
) => {
- byte_swap(&mut imagedata);
+ let data = match imagedata {
+ None => vec![0; image_size.width as usize * image_size.height as usize * 4],
+ Some(mut data) => {
+ byte_swap(&mut data);
+ data.into()
+ },
+ };
self.canvas(canvas_id).draw_image(
- imagedata.into(),
+ data,
image_size,
dest_rect,
source_rect,
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,
@@ -167,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,