From 300315bb78e611b23370364c8acdeda1dd719a6c Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 7 Aug 2015 18:14:56 -0700 Subject: [PATCH] compositing: Add some layer tree debugging infrastructure. --- components/compositing/compositor.rs | 27 ++++++++++++++++++++++ components/compositing/compositor_layer.rs | 3 ++- components/msg/compositor_msg.rs | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 3c4b5419303..60ca0a717c3 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -1622,6 +1622,33 @@ impl IOCompositor { self.surface_map.insert_surfaces(&self.native_display, surfaces); } } + + #[allow(dead_code)] + fn dump_layer_tree(&self) { + if let Some(ref layer) = self.scene.root { + println!("Layer tree:"); + self.dump_layer_tree_with_indent(&**layer, 0); + } + } + + #[allow(dead_code)] + fn dump_layer_tree_with_indent(&self, layer: &Layer, level: u32) { + let mut indentation = String::new(); + for _ in 0..level { + indentation.push_str(" "); + } + + println!("{}Layer {:x}: {:?} @ {:?} masks to bounds: {:?} establishes 3D context: {:?}", + indentation, + layer as *const _ as usize, + layer.extra_data, + *layer.bounds.borrow(), + *layer.masks_to_bounds.borrow(), + layer.establishes_3d_context); + for kid in layer.children().iter() { + self.dump_layer_tree_with_indent(&**kid, level + 1) + } + } } fn find_layer_with_pipeline_and_layer_id_for_layer(layer: Rc>, diff --git a/components/compositing/compositor_layer.rs b/components/compositing/compositor_layer.rs index 302ac340f09..71a21b0c9ba 100644 --- a/components/compositing/compositor_layer.rs +++ b/components/compositing/compositor_layer.rs @@ -19,6 +19,7 @@ use msg::compositor_msg::{Epoch, LayerId, LayerProperties, ScrollPolicy}; use msg::constellation_msg::PipelineId; use std::rc::Rc; +#[derive(Debug)] pub struct CompositorData { /// This layer's pipeline id. The compositor can associate this id with an /// actual CompositionPipeline. @@ -143,7 +144,7 @@ pub trait CompositorLayer { fn pipeline_id(&self) -> PipelineId; } -#[derive(Copy, PartialEq, Clone)] +#[derive(Copy, PartialEq, Clone, Debug)] pub enum WantsScrollEventsFlag { WantsScrollEvents, DoesntWantScrollEvents, diff --git a/components/msg/compositor_msg.rs b/components/msg/compositor_msg.rs index 59a3ed3f3df..2d29256f092 100644 --- a/components/msg/compositor_msg.rs +++ b/components/msg/compositor_msg.rs @@ -60,7 +60,7 @@ pub enum LayerKind { } /// The scrolling policy of a layer. -#[derive(Clone, PartialEq, Eq, Copy, Deserialize, Serialize)] +#[derive(Clone, PartialEq, Eq, Copy, Deserialize, Serialize, Debug)] pub enum ScrollPolicy { /// These layers scroll when the parent receives a scrolling message. Scrollable,