mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
script: Make most of 2D canvas and WebGL run over IPC.
To actually make the multiprocess communication work, we'll need to reroute the task creation to the pipeline or the compositor. But this works as a first step.
This commit is contained in:
parent
886c08c393
commit
bb99b2f3c8
39 changed files with 694 additions and 365 deletions
|
@ -39,7 +39,7 @@ use gfx::display_list::StackingContext;
|
|||
use gfx::font_cache_task::FontCacheTask;
|
||||
use gfx::paint_task::Msg as PaintMsg;
|
||||
use gfx::paint_task::{PaintChan, PaintLayer};
|
||||
use ipc_channel::ipc::{self, IpcReceiver};
|
||||
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
|
||||
use ipc_channel::router::ROUTER;
|
||||
use layout_traits::LayoutTaskFactory;
|
||||
use log;
|
||||
|
@ -197,8 +197,8 @@ pub struct LayoutTask {
|
|||
|
||||
/// To receive a canvas renderer associated to a layer, this message is propagated
|
||||
/// to the paint chan
|
||||
pub canvas_layers_receiver: Receiver<(LayerId, Option<Arc<Mutex<Sender<CanvasMsg>>>>)>,
|
||||
pub canvas_layers_sender: Sender<(LayerId, Option<Arc<Mutex<Sender<CanvasMsg>>>>)>,
|
||||
pub canvas_layers_receiver: Receiver<(LayerId, IpcSender<CanvasMsg>)>,
|
||||
pub canvas_layers_sender: Sender<(LayerId, IpcSender<CanvasMsg>)>,
|
||||
|
||||
/// A mutex to allow for fast, read-only RPC of layout's internal data
|
||||
/// structures, while still letting the LayoutTask modify them.
|
||||
|
@ -1030,9 +1030,7 @@ impl LayoutTask {
|
|||
// Send new canvas renderers to the paint task
|
||||
while let Ok((layer_id, renderer)) = self.canvas_layers_receiver.try_recv() {
|
||||
// Just send if there's an actual renderer
|
||||
if let Some(renderer) = renderer {
|
||||
self.paint_chan.send(PaintMsg::CanvasLayer(layer_id, renderer));
|
||||
}
|
||||
self.paint_chan.send(PaintMsg::CanvasLayer(layer_id, renderer));
|
||||
}
|
||||
|
||||
// Perform post-style recalculation layout passes.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue