diff options
author | Glenn Watson <github@intuitionlibrary.com> | 2016-10-12 10:13:27 +1000 |
---|---|---|
committer | Glenn Watson <github@intuitionlibrary.com> | 2016-10-18 10:21:27 +1000 |
commit | acfdfd2fa98562c9f891fbee2dbc3424803c1a3c (patch) | |
tree | bc66667bab89db2ab6a1c4d4113525190fb82d3a /components/canvas/canvas_paint_thread.rs | |
parent | 4af21e3ae1676f943a9a01688fef854487bcddfc (diff) | |
download | servo-acfdfd2fa98562c9f891fbee2dbc3424803c1a3c.tar.gz servo-acfdfd2fa98562c9f891fbee2dbc3424803c1a3c.zip |
Remove old rendering backend.
This removes paint threads, rust-layers dependency, and changes
optional webrender types to be required.
The use_webrender option has been removed, however I've left
the "-w" command line option in place so that wpt
runner can continue to pass that. Once it's removed from there
we can also remove the -w option.
Once this stage is complete, it should be fine to change the
display list building code to generate webrender display
lists directly and avoid the conversion step.
Diffstat (limited to 'components/canvas/canvas_paint_thread.rs')
-rw-r--r-- | components/canvas/canvas_paint_thread.rs | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs index ef084dde9d9..238ff9c06db 100644 --- a/components/canvas/canvas_paint_thread.rs +++ b/components/canvas/canvas_paint_thread.rs @@ -58,8 +58,8 @@ pub struct CanvasPaintThread<'a> { path_builder: PathBuilder, state: CanvasPaintState<'a>, saved_states: Vec<CanvasPaintState<'a>>, - webrender_api: Option<webrender_traits::RenderApi>, - webrender_image_key: Option<webrender_traits::ImageKey>, + webrender_api: webrender_traits::RenderApi, + webrender_image_key: webrender_traits::ImageKey, } #[derive(Clone)] @@ -100,12 +100,12 @@ impl<'a> CanvasPaintState<'a> { impl<'a> CanvasPaintThread<'a> { fn new(size: Size2D<i32>, - webrender_api_sender: Option<webrender_traits::RenderApiSender>, + webrender_api_sender: webrender_traits::RenderApiSender, antialias: bool) -> CanvasPaintThread<'a> { let draw_target = CanvasPaintThread::create(size); let path_builder = draw_target.create_path_builder(); - let webrender_api = webrender_api_sender.map(|wr| wr.create_api()); - let webrender_image_key = webrender_api.as_ref().map(|wr| wr.alloc_image()); + let webrender_api = webrender_api_sender.create_api(); + let webrender_image_key = webrender_api.alloc_image(); CanvasPaintThread { drawtarget: draw_target, path_builder: path_builder, @@ -119,7 +119,7 @@ impl<'a> CanvasPaintThread<'a> { /// Creates a new `CanvasPaintThread` and returns an `IpcSender` to /// communicate with it. pub fn start(size: Size2D<i32>, - webrender_api_sender: Option<webrender_traits::RenderApiSender>, + webrender_api_sender: webrender_traits::RenderApiSender, antialias: bool) -> IpcSender<CanvasMsg> { let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap(); @@ -542,14 +542,12 @@ impl<'a> CanvasPaintThread<'a> { fn send_data(&mut self, chan: IpcSender<CanvasData>) { self.drawtarget.snapshot().get_data_surface().with_data(|element| { - if let Some(ref webrender_api) = self.webrender_api { - let size = self.drawtarget.get_size(); - webrender_api.update_image(self.webrender_image_key.unwrap(), - size.width as u32, - size.height as u32, - webrender_traits::ImageFormat::RGBA8, - element.into()); - } + let size = self.drawtarget.get_size(); + self.webrender_api.update_image(self.webrender_image_key, + size.width as u32, + size.height as u32, + webrender_traits::ImageFormat::RGBA8, + element.into()); let pixel_data = CanvasPixelData { image_data: IpcSharedMemory::from_bytes(element), @@ -710,9 +708,7 @@ impl<'a> CanvasPaintThread<'a> { impl<'a> Drop for CanvasPaintThread<'a> { fn drop(&mut self) { - if let Some(ref mut wr) = self.webrender_api { - wr.delete_image(self.webrender_image_key.unwrap()); - } + self.webrender_api.delete_image(self.webrender_image_key); } } |