mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-28 12:45:27 +00:00
servo: Merge #4558 - Improve Compositor message names (from mrobinson:compositor-message-renames); r=zwarich
These names no longer reflect what the messages do, so rename them to SetFrameTree, AssignPaintedBuffers, and CreateOrUpdateBaseLayer. Source-Repo: https://github.com/servo/servo Source-Revision: 1458709247586fcb3c14cd9132b735ff3080bf07
This commit is contained in:
parent
45ee1c1641
commit
4a62b7b70b
@ -113,8 +113,8 @@ pub struct IOCompositor<Window: WindowMethods> {
|
||||
/// many times for a single page.
|
||||
got_load_complete_message: bool,
|
||||
|
||||
/// Whether we have gotten a `SetIds` message.
|
||||
got_set_ids_message: bool,
|
||||
/// Whether we have received a `SetFrameTree` message.
|
||||
got_set_frame_tree_message: bool,
|
||||
|
||||
/// The channel on which messages can be sent to the constellation.
|
||||
constellation_chan: ConstellationChan,
|
||||
@ -195,7 +195,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
ready_states: HashMap::new(),
|
||||
paint_states: HashMap::new(),
|
||||
got_load_complete_message: false,
|
||||
got_set_ids_message: false,
|
||||
got_set_frame_tree_message: false,
|
||||
constellation_chan: constellation_chan,
|
||||
time_profiler_chan: time_profiler_chan,
|
||||
memory_profiler_chan: memory_profiler_chan,
|
||||
@ -268,7 +268,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
self.remove_outstanding_paint_msg();
|
||||
}
|
||||
|
||||
(Msg::SetIds(frame_tree, response_chan, new_constellation_chan),
|
||||
(Msg::SetFrameTree(frame_tree, response_chan, new_constellation_chan),
|
||||
ShutdownState::NotShuttingDown) => {
|
||||
self.set_frame_tree(&frame_tree,
|
||||
response_chan,
|
||||
@ -282,8 +282,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
response_channel.send(());
|
||||
}
|
||||
|
||||
(Msg::CreateOrUpdateRootLayer(layer_properties), ShutdownState::NotShuttingDown) => {
|
||||
self.create_or_update_root_layer(layer_properties);
|
||||
(Msg::CreateOrUpdateBaseLayer(layer_properties), ShutdownState::NotShuttingDown) => {
|
||||
self.create_or_update_base_layer(layer_properties);
|
||||
}
|
||||
|
||||
(Msg::CreateOrUpdateDescendantLayer(layer_properties),
|
||||
@ -300,9 +300,9 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
self.set_layer_origin(pipeline_id, layer_id, origin);
|
||||
}
|
||||
|
||||
(Msg::Paint(pipeline_id, epoch, replies), ShutdownState::NotShuttingDown) => {
|
||||
(Msg::AssignPaintedBuffers(pipeline_id, epoch, replies), ShutdownState::NotShuttingDown) => {
|
||||
for (layer_id, new_layer_buffer_set) in replies.into_iter() {
|
||||
self.paint(pipeline_id, layer_id, new_layer_buffer_set, epoch);
|
||||
self.assign_painted_buffers(pipeline_id, layer_id, new_layer_buffer_set, epoch);
|
||||
}
|
||||
self.remove_outstanding_paint_msg();
|
||||
}
|
||||
@ -464,7 +464,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
self.constellation_chan = new_constellation_chan;
|
||||
self.send_window_size();
|
||||
|
||||
self.got_set_ids_message = true;
|
||||
self.got_set_frame_tree_message = true;
|
||||
self.composite_if_necessary();
|
||||
}
|
||||
|
||||
@ -540,24 +540,24 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
}
|
||||
}
|
||||
|
||||
fn create_or_update_root_layer(&mut self, layer_properties: LayerProperties) {
|
||||
let need_new_root_layer = !self.update_layer_if_exists(layer_properties);
|
||||
if need_new_root_layer {
|
||||
fn create_or_update_base_layer(&mut self, layer_properties: LayerProperties) {
|
||||
let need_new_base_layer = !self.update_layer_if_exists(layer_properties);
|
||||
if need_new_base_layer {
|
||||
let root_layer = self.find_pipeline_root_layer(layer_properties.pipeline_id);
|
||||
root_layer.update_layer_except_bounds(layer_properties);
|
||||
|
||||
let root_layer_pipeline = root_layer.extra_data.borrow().pipeline.clone();
|
||||
let first_child = CompositorData::new_layer(
|
||||
let base_layer = CompositorData::new_layer(
|
||||
root_layer_pipeline.clone(),
|
||||
layer_properties,
|
||||
WantsScrollEventsFlag::DoesntWantScrollEvents,
|
||||
opts::get().tile_size);
|
||||
|
||||
// Add the first child / base layer to the front of the child list, so that
|
||||
// child iframe layers are painted on top of the base layer. These iframe
|
||||
// layers were added previously when creating the layer tree skeleton in
|
||||
// create_frame_tree_root_layers.
|
||||
root_layer.children().insert(0, first_child);
|
||||
// Add the base layer to the front of the child list, so that child
|
||||
// iframe layers are painted on top of the base layer. These iframe
|
||||
// layers were added previously when creating the layer tree
|
||||
// skeleton in create_frame_tree_root_layers.
|
||||
root_layer.children().insert(0, base_layer);
|
||||
}
|
||||
|
||||
self.scroll_layer_to_fragment_point_if_necessary(layer_properties.pipeline_id,
|
||||
@ -654,13 +654,13 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
self.send_buffer_requests_for_all_layers();
|
||||
}
|
||||
|
||||
fn paint(&mut self,
|
||||
fn assign_painted_buffers(&mut self,
|
||||
pipeline_id: PipelineId,
|
||||
layer_id: LayerId,
|
||||
new_layer_buffer_set: Box<LayerBufferSet>,
|
||||
epoch: Epoch) {
|
||||
match self.find_layer_with_pipeline_and_layer_id(pipeline_id, layer_id) {
|
||||
Some(layer) => self.paint_to_layer(layer, new_layer_buffer_set, epoch),
|
||||
Some(layer) => self.assign_painted_buffers_to_layer(layer, new_layer_buffer_set, epoch),
|
||||
None => {
|
||||
match self.paint_channels.entry(pipeline_id) {
|
||||
Occupied(entry) => {
|
||||
@ -673,7 +673,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
}
|
||||
}
|
||||
|
||||
fn paint_to_layer(&mut self,
|
||||
fn assign_painted_buffers_to_layer(&mut self,
|
||||
layer: Rc<Layer<CompositorData>>,
|
||||
new_layer_buffer_set: Box<LayerBufferSet>,
|
||||
epoch: Epoch) {
|
||||
@ -1038,7 +1038,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||
return false;
|
||||
}
|
||||
|
||||
if !self.got_set_ids_message {
|
||||
if !self.got_set_frame_tree_message {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1295,12 +1295,12 @@ impl<Window> CompositorEventListener for IOCompositor<Window> where Window: Wind
|
||||
fn repaint_synchronously(&mut self) {
|
||||
while self.shutdown_state != ShutdownState::ShuttingDown {
|
||||
let msg = self.port.recv_compositor_msg();
|
||||
let is_paint = match msg {
|
||||
Msg::Paint(..) => true,
|
||||
let received_new_buffers = match msg {
|
||||
Msg::AssignPaintedBuffers(..) => true,
|
||||
_ => false,
|
||||
};
|
||||
let keep_going = self.handle_browser_message(msg);
|
||||
if is_paint {
|
||||
if received_new_buffers {
|
||||
self.composite();
|
||||
break
|
||||
}
|
||||
@ -1318,7 +1318,7 @@ impl<Window> CompositorEventListener for IOCompositor<Window> where Window: Wind
|
||||
}
|
||||
|
||||
// Drain compositor port, sometimes messages contain channels that are blocking
|
||||
// another task from finishing (i.e. SetIds)
|
||||
// another task from finishing (i.e. SetFrameTree).
|
||||
while self.port.try_recv_compositor_msg().is_some() {}
|
||||
|
||||
// Tell the profiler, memory profiler, and scrolling timer to shut down.
|
||||
|
@ -130,11 +130,11 @@ impl PaintListener for Box<CompositorProxy+'static+Send> {
|
||||
port.recv()
|
||||
}
|
||||
|
||||
fn paint(&mut self,
|
||||
fn assign_painted_buffers(&mut self,
|
||||
pipeline_id: PipelineId,
|
||||
epoch: Epoch,
|
||||
replies: Vec<(LayerId, Box<LayerBufferSet>)>) {
|
||||
self.send(Msg::Paint(pipeline_id, epoch, replies));
|
||||
self.send(Msg::AssignPaintedBuffers(pipeline_id, epoch, replies));
|
||||
}
|
||||
|
||||
fn initialize_layers_for_pipeline(&mut self,
|
||||
@ -148,7 +148,7 @@ impl PaintListener for Box<CompositorProxy+'static+Send> {
|
||||
for metadata in metadata.iter() {
|
||||
let layer_properties = LayerProperties::new(pipeline_id, epoch, metadata);
|
||||
if first {
|
||||
self.send(Msg::CreateOrUpdateRootLayer(layer_properties));
|
||||
self.send(Msg::CreateOrUpdateBaseLayer(layer_properties));
|
||||
first = false
|
||||
} else {
|
||||
self.send(Msg::CreateOrUpdateDescendantLayer(layer_properties));
|
||||
@ -171,8 +171,8 @@ pub enum Msg {
|
||||
Exit(Sender<()>),
|
||||
|
||||
/// Informs the compositor that the constellation has completed shutdown.
|
||||
/// Required because the constellation can have pending calls to make (e.g. SetIds)
|
||||
/// at the time that we send it an ExitMsg.
|
||||
/// Required because the constellation can have pending calls to make
|
||||
/// (e.g. SetFrameTree) at the time that we send it an ExitMsg.
|
||||
ShutdownComplete,
|
||||
|
||||
/// Requests the compositor's graphics metadata. Graphics metadata is what the painter needs
|
||||
@ -184,7 +184,7 @@ pub enum Msg {
|
||||
|
||||
/// Tells the compositor to create the root layer for a pipeline if necessary (i.e. if no layer
|
||||
/// with that ID exists).
|
||||
CreateOrUpdateRootLayer(LayerProperties),
|
||||
CreateOrUpdateBaseLayer(LayerProperties),
|
||||
/// Tells the compositor to create a descendant layer for a pipeline if necessary (i.e. if no
|
||||
/// layer with that ID exists).
|
||||
CreateOrUpdateDescendantLayer(LayerProperties),
|
||||
@ -192,8 +192,8 @@ pub enum Msg {
|
||||
SetLayerOrigin(PipelineId, LayerId, Point2D<f32>),
|
||||
/// Scroll a page in a window
|
||||
ScrollFragmentPoint(PipelineId, LayerId, Point2D<f32>),
|
||||
/// Requests that the compositor paint the given layer buffer set for the given page size.
|
||||
Paint(PipelineId, Epoch, Vec<(LayerId, Box<LayerBufferSet>)>),
|
||||
/// Requests that the compositor assign the painted buffers to the given layers.
|
||||
AssignPaintedBuffers(PipelineId, Epoch, Vec<(LayerId, Box<LayerBufferSet>)>),
|
||||
/// Alerts the compositor to the current status of page loading.
|
||||
ChangeReadyState(PipelineId, ReadyState),
|
||||
/// Alerts the compositor to the current status of painting.
|
||||
@ -204,8 +204,8 @@ pub enum Msg {
|
||||
ChangePageLoadData(FrameId, LoadData),
|
||||
/// Alerts the compositor that a `PaintMsg` has been discarded.
|
||||
PaintMsgDiscarded,
|
||||
/// Sets the channel to the current layout and paint tasks, along with their ID.
|
||||
SetIds(SendableFrameTree, Sender<()>, ConstellationChan),
|
||||
/// Replaces the current frame tree, typically called during main frame navigation.
|
||||
SetFrameTree(SendableFrameTree, Sender<()>, ConstellationChan),
|
||||
/// Sends an updated version of the frame tree.
|
||||
FrameTreeUpdate(FrameTreeDiff, Sender<()>),
|
||||
/// The load of a page has completed.
|
||||
@ -227,18 +227,18 @@ impl Show for Msg {
|
||||
Msg::Exit(..) => write!(f, "Exit"),
|
||||
Msg::ShutdownComplete(..) => write!(f, "ShutdownComplete"),
|
||||
Msg::GetGraphicsMetadata(..) => write!(f, "GetGraphicsMetadata"),
|
||||
Msg::CreateOrUpdateRootLayer(..) => write!(f, "CreateOrUpdateRootLayer"),
|
||||
Msg::CreateOrUpdateBaseLayer(..) => write!(f, "CreateOrUpdateBaseLayer"),
|
||||
Msg::CreateOrUpdateDescendantLayer(..) => write!(f, "CreateOrUpdateDescendantLayer"),
|
||||
Msg::SetLayerOrigin(..) => write!(f, "SetLayerOrigin"),
|
||||
Msg::ScrollFragmentPoint(..) => write!(f, "ScrollFragmentPoint"),
|
||||
Msg::Paint(..) => write!(f, "Paint"),
|
||||
Msg::AssignPaintedBuffers(..) => write!(f, "AssignPaintedBuffers"),
|
||||
Msg::ChangeReadyState(..) => write!(f, "ChangeReadyState"),
|
||||
Msg::ChangePaintState(..) => write!(f, "ChangePaintState"),
|
||||
Msg::ChangePageTitle(..) => write!(f, "ChangePageTitle"),
|
||||
Msg::ChangePageLoadData(..) => write!(f, "ChangePageLoadData"),
|
||||
Msg::PaintMsgDiscarded(..) => write!(f, "PaintMsgDiscarded"),
|
||||
Msg::FrameTreeUpdate(..) => write!(f, "FrameTreeUpdate"),
|
||||
Msg::SetIds(..) => write!(f, "SetIds"),
|
||||
Msg::SetFrameTree(..) => write!(f, "SetFrameTree"),
|
||||
Msg::LoadComplete => write!(f, "LoadComplete"),
|
||||
Msg::ScrollTimeout(..) => write!(f, "ScrollTimeout"),
|
||||
Msg::KeyEvent(..) => write!(f, "KeyEvent"),
|
||||
|
@ -1021,8 +1021,8 @@ impl<LTF: LayoutTaskFactory, STF: ScriptTaskFactory> Constellation<LTF, STF> {
|
||||
|
||||
fn set_ids(&mut self, frame_tree: &Rc<FrameTree>) {
|
||||
let (chan, port) = channel();
|
||||
debug!("Constellation sending SetIds");
|
||||
self.compositor_proxy.send(CompositorMsg::SetIds(frame_tree.to_sendable(),
|
||||
debug!("Constellation sending SetFrameTree");
|
||||
self.compositor_proxy.send(CompositorMsg::SetFrameTree(frame_tree.to_sendable(),
|
||||
chan,
|
||||
self.chan.clone()));
|
||||
match port.recv_opt() {
|
||||
|
@ -86,7 +86,7 @@ impl CompositorEventListener for NullCompositor {
|
||||
chan.send(None);
|
||||
}
|
||||
|
||||
Msg::SetIds(_, response_chan, _) => {
|
||||
Msg::SetFrameTree(_, response_chan, _) => {
|
||||
response_chan.send(());
|
||||
}
|
||||
|
||||
@ -96,12 +96,12 @@ impl CompositorEventListener for NullCompositor {
|
||||
|
||||
// Explicitly list ignored messages so that when we add a new one,
|
||||
// we'll notice and think about whether it needs a response, like
|
||||
// SetIds.
|
||||
// SetFrameTree.
|
||||
|
||||
Msg::CreateOrUpdateRootLayer(..) |
|
||||
Msg::CreateOrUpdateBaseLayer(..) |
|
||||
Msg::CreateOrUpdateDescendantLayer(..) |
|
||||
Msg::SetLayerOrigin(..) |
|
||||
Msg::Paint(..) |
|
||||
Msg::AssignPaintedBuffers(..) |
|
||||
Msg::ChangeReadyState(..) |
|
||||
Msg::ChangePaintState(..) |
|
||||
Msg::ScrollFragmentPoint(..) |
|
||||
|
@ -278,7 +278,7 @@ impl<C> PaintTask<C> where C: PaintListener + Send {
|
||||
}
|
||||
|
||||
debug!("PaintTask: returning surfaces");
|
||||
self.compositor.paint(self.id, self.epoch, replies);
|
||||
self.compositor.assign_painted_buffers(self.id, self.epoch, replies);
|
||||
}
|
||||
Msg::UnusedBuffer(unused_buffers) => {
|
||||
debug!("PaintTask: Received {} unused buffers", unused_buffers.len());
|
||||
|
@ -95,8 +95,8 @@ pub trait PaintListener for Sized? {
|
||||
metadata: Vec<LayerMetadata>,
|
||||
epoch: Epoch);
|
||||
|
||||
/// Sends new tiles for the given layer to the compositor.
|
||||
fn paint(&mut self,
|
||||
/// Sends new buffers for the given layers to the compositor.
|
||||
fn assign_painted_buffers(&mut self,
|
||||
pipeline_id: PipelineId,
|
||||
epoch: Epoch,
|
||||
replies: Vec<(LayerId, Box<LayerBufferSet>)>);
|
||||
|
Loading…
Reference in New Issue
Block a user