mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Remove page_size member from CompositorData
The page size is always the same as the layer boundaries since, SetLayerClipRect was always called after layer creation.
This commit is contained in:
parent
601b8ec970
commit
b743448b52
3 changed files with 7 additions and 37 deletions
|
@ -368,16 +368,13 @@ impl IOCompositor {
|
||||||
};
|
};
|
||||||
let new_compositor_data = CompositorData::new_root(root_pipeline,
|
let new_compositor_data = CompositorData::new_root(root_pipeline,
|
||||||
layer_properties.epoch,
|
layer_properties.epoch,
|
||||||
layer_properties.rect.size,
|
|
||||||
self.opts.cpu_painting,
|
self.opts.cpu_painting,
|
||||||
layer_properties.background_color);
|
layer_properties.background_color);
|
||||||
let size = layer_properties.rect.size;
|
|
||||||
let new_root = Rc::new(Layer::new(layer_properties.rect,
|
let new_root = Rc::new(Layer::new(layer_properties.rect,
|
||||||
size,
|
|
||||||
self.opts.tile_size,
|
self.opts.tile_size,
|
||||||
new_compositor_data));
|
new_compositor_data));
|
||||||
|
|
||||||
CompositorData::add_child(new_root.clone(), layer_properties, size);
|
CompositorData::add_child(new_root.clone(), layer_properties);
|
||||||
|
|
||||||
// Release all tiles from the layer before dropping it.
|
// Release all tiles from the layer before dropping it.
|
||||||
match self.scene.root {
|
match self.scene.root {
|
||||||
|
@ -409,8 +406,7 @@ impl IOCompositor {
|
||||||
layer_properties.pipeline_id,
|
layer_properties.pipeline_id,
|
||||||
parent_layer_id) {
|
parent_layer_id) {
|
||||||
Some(ref mut parent_layer) => {
|
Some(ref mut parent_layer) => {
|
||||||
let page_size = root_layer.extra_data.borrow().page_size.unwrap();
|
CompositorData::add_child(parent_layer.clone(), layer_properties);
|
||||||
CompositorData::add_child(parent_layer.clone(), layer_properties, page_size);
|
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
fail!("Compositor: couldn't find parent layer");
|
fail!("Compositor: couldn't find parent layer");
|
||||||
|
|
|
@ -41,10 +41,6 @@ pub struct CompositorData {
|
||||||
/// top left corner of the page.
|
/// top left corner of the page.
|
||||||
pub scroll_offset: TypedPoint2D<PagePx, f32>,
|
pub scroll_offset: TypedPoint2D<PagePx, f32>,
|
||||||
|
|
||||||
/// The size of the underlying page in page coordinates. This is an option
|
|
||||||
/// because we may not know the size of the page until layout is finished completely.
|
|
||||||
pub page_size: Option<Size2D<f32>>,
|
|
||||||
|
|
||||||
/// The behavior of this layer when a scroll message is received.
|
/// The behavior of this layer when a scroll message is received.
|
||||||
pub wants_scroll_events: WantsScrollEventsFlag,
|
pub wants_scroll_events: WantsScrollEventsFlag,
|
||||||
|
|
||||||
|
@ -72,7 +68,6 @@ impl CompositorData {
|
||||||
pub fn new(pipeline: CompositionPipeline,
|
pub fn new(pipeline: CompositionPipeline,
|
||||||
layer_id: LayerId,
|
layer_id: LayerId,
|
||||||
epoch: Epoch,
|
epoch: Epoch,
|
||||||
page_size: Option<Size2D<f32>>,
|
|
||||||
cpu_painting: bool,
|
cpu_painting: bool,
|
||||||
wants_scroll_events: WantsScrollEventsFlag,
|
wants_scroll_events: WantsScrollEventsFlag,
|
||||||
scroll_policy: ScrollPolicy,
|
scroll_policy: ScrollPolicy,
|
||||||
|
@ -82,7 +77,6 @@ impl CompositorData {
|
||||||
pipeline: pipeline,
|
pipeline: pipeline,
|
||||||
id: layer_id,
|
id: layer_id,
|
||||||
scroll_offset: TypedPoint2D(0f32, 0f32),
|
scroll_offset: TypedPoint2D(0f32, 0f32),
|
||||||
page_size: page_size,
|
|
||||||
wants_scroll_events: wants_scroll_events,
|
wants_scroll_events: wants_scroll_events,
|
||||||
scroll_policy: scroll_policy,
|
scroll_policy: scroll_policy,
|
||||||
cpu_painting: cpu_painting,
|
cpu_painting: cpu_painting,
|
||||||
|
@ -93,13 +87,11 @@ impl CompositorData {
|
||||||
|
|
||||||
pub fn new_root(pipeline: CompositionPipeline,
|
pub fn new_root(pipeline: CompositionPipeline,
|
||||||
epoch: Epoch,
|
epoch: Epoch,
|
||||||
page_size: Size2D<f32>,
|
|
||||||
cpu_painting: bool,
|
cpu_painting: bool,
|
||||||
unrendered_color: Color) -> CompositorData {
|
unrendered_color: Color) -> CompositorData {
|
||||||
CompositorData::new(pipeline,
|
CompositorData::new(pipeline,
|
||||||
LayerId::null(),
|
LayerId::null(),
|
||||||
epoch,
|
epoch,
|
||||||
Some(page_size),
|
|
||||||
cpu_painting,
|
cpu_painting,
|
||||||
WantsScrollEvents,
|
WantsScrollEvents,
|
||||||
FixedPosition,
|
FixedPosition,
|
||||||
|
@ -110,18 +102,15 @@ impl CompositorData {
|
||||||
/// exist yet. The child layer will have the same pipeline, tile size, memory limit, and CPU
|
/// exist yet. The child layer will have the same pipeline, tile size, memory limit, and CPU
|
||||||
/// painting status as its parent.
|
/// painting status as its parent.
|
||||||
pub fn add_child(layer: Rc<Layer<CompositorData>>,
|
pub fn add_child(layer: Rc<Layer<CompositorData>>,
|
||||||
layer_properties: LayerProperties,
|
layer_properties: LayerProperties) {
|
||||||
page_size: Size2D<f32>) {
|
|
||||||
let new_compositor_data = CompositorData::new(layer.extra_data.borrow().pipeline.clone(),
|
let new_compositor_data = CompositorData::new(layer.extra_data.borrow().pipeline.clone(),
|
||||||
layer_properties.id,
|
layer_properties.id,
|
||||||
layer_properties.epoch,
|
layer_properties.epoch,
|
||||||
Some(page_size),
|
|
||||||
layer.extra_data.borrow().cpu_painting,
|
layer.extra_data.borrow().cpu_painting,
|
||||||
DoesntWantScrollEvents,
|
DoesntWantScrollEvents,
|
||||||
layer_properties.scroll_policy,
|
layer_properties.scroll_policy,
|
||||||
layer_properties.background_color);
|
layer_properties.background_color);
|
||||||
let new_kid = Rc::new(Layer::new(layer_properties.rect,
|
let new_kid = Rc::new(Layer::new(layer_properties.rect,
|
||||||
page_size,
|
|
||||||
Layer::tile_size(layer.clone()),
|
Layer::tile_size(layer.clone()),
|
||||||
new_compositor_data));
|
new_compositor_data));
|
||||||
|
|
||||||
|
@ -210,23 +199,15 @@ impl CompositorData {
|
||||||
new_rect))
|
new_rect))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_layer(layer: Rc<Layer<CompositorData>>, layer_properties: LayerProperties) {
|
pub fn update_layer(layer: Rc<Layer<CompositorData>>, layer_properties: LayerProperties) {
|
||||||
layer.extra_data.borrow_mut().epoch = layer_properties.epoch;
|
layer.extra_data.borrow_mut().epoch = layer_properties.epoch;
|
||||||
layer.extra_data.borrow_mut().unrendered_color = layer_properties.background_color;
|
layer.extra_data.borrow_mut().unrendered_color = layer_properties.background_color;
|
||||||
CompositorData::resize(layer.clone(), layer_properties.rect.size);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resize and unhide a pre-existing layer. A new layer's size is set during creation.
|
let unused_buffers = Layer::resize(layer.clone(), layer_properties.rect.size);
|
||||||
fn resize(layer: Rc<Layer<CompositorData>>,
|
|
||||||
new_size: Size2D<f32>) {
|
|
||||||
debug!("compositor_data: starting resize_helper()");
|
|
||||||
|
|
||||||
layer.extra_data.borrow_mut().page_size = Some(new_size);
|
|
||||||
|
|
||||||
let unused_buffers = Layer::resize(layer.clone(), new_size);
|
|
||||||
if !unused_buffers.is_empty() {
|
if !unused_buffers.is_empty() {
|
||||||
let msg = UnusedBufferMsg(unused_buffers);
|
let msg = UnusedBufferMsg(unused_buffers);
|
||||||
let _ = layer.extra_data.borrow().pipeline.render_chan.send_opt(msg);
|
let _ = layer.extra_data.borrow().pipeline.render_chan.send_opt(msg);
|
||||||
|
|
|
@ -71,11 +71,7 @@ pub fn handle_scroll_event(layer: Rc<Layer<CompositorData>>,
|
||||||
layer.extra_data.borrow_mut().scroll_offset = old_origin + delta;
|
layer.extra_data.borrow_mut().scroll_offset = old_origin + delta;
|
||||||
|
|
||||||
// bounds checking
|
// bounds checking
|
||||||
let page_size = match layer.extra_data.borrow().page_size {
|
let page_size = layer.bounds.borrow().size;
|
||||||
Some(size) => size,
|
|
||||||
None => fail!("CompositorData: tried to scroll with no page size set"),
|
|
||||||
};
|
|
||||||
|
|
||||||
let window_size = window_size.to_untyped();
|
let window_size = window_size.to_untyped();
|
||||||
let scroll_offset = layer.extra_data.borrow().scroll_offset.to_untyped();
|
let scroll_offset = layer.extra_data.borrow().scroll_offset.to_untyped();
|
||||||
|
|
||||||
|
@ -172,10 +168,7 @@ pub fn move(layer: Rc<Layer<CompositorData>>,
|
||||||
layer.extra_data.borrow_mut().scroll_offset = Point2D::from_untyped(&(origin * -1.0));
|
layer.extra_data.borrow_mut().scroll_offset = Point2D::from_untyped(&(origin * -1.0));
|
||||||
|
|
||||||
// bounds checking
|
// bounds checking
|
||||||
let page_size = match layer.extra_data.borrow().page_size {
|
let page_size = layer.bounds.borrow().size;
|
||||||
Some(size) => size,
|
|
||||||
None => fail!("CompositorData: tried to scroll with no page size set"),
|
|
||||||
};
|
|
||||||
let window_size = window_size.to_untyped();
|
let window_size = window_size.to_untyped();
|
||||||
let scroll_offset = layer.extra_data.borrow().scroll_offset.to_untyped();
|
let scroll_offset = layer.extra_data.borrow().scroll_offset.to_untyped();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue