servo/components/layout
bors-servo ad53e95080 Auto merge of #6083 - ecoal95:layerize-canvas, r=pcwalton
I've done a bit of job to get this done. Right now readback is still used, but we have a `LayerId` -> `CanvasRenderer` map on the paint task, that we can use to get rid of that.

I'd want review, to see if this is a good approach (I know it's not the initial `CanvasId` -> renderer approach, but it's pretty similar, since a canvas involves a `PaintLayer`).

I had to do a bit of refactoring to avoid cyclic dependencies between canvas and gfx. I'd want you to review them too.

It's mergeable and doesn't break any tests :P

Some of my main concerns:
* Does the canvas render really need to be behind an `Arc<Mutex<T>>`?
* I can't clone a `NativeSurface` right now (that's why the `SendNativeSurface()` msg is unimplemented in the WebGL task). It should be easy to add that to rust-layers, supposing the caller is responsible to mark it as non-leaking, any reason to not do it?

cc @jdm @pcwalton

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6083)
<!-- Reviewable:end -->
2015-05-20 15:42:06 -05:00
..
css layout: Support inline incremental reflow, and stop reconstructing all 2015-05-19 11:08:27 -07:00
animation.rs Start using on_refresh_driver_tick #5681 2015-05-06 02:08:39 +07:00
block.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
Cargo.toml Layerize canvas 2015-05-20 19:10:50 +02:00
construct.rs script: Implement the width and height attributes for iframes per 2015-05-20 11:15:25 -07:00
context.rs Layerize canvas 2015-05-20 19:10:50 +02:00
data.rs layout: Allow inline elements to be containing blocks for 2015-05-13 12:00:53 -07:00
display_list_builder.rs Layerize canvas 2015-05-20 19:10:50 +02:00
floats.rs Positioning fixes for RTL floats 2015-05-18 17:25:06 -07:00
flow.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
flow_list.rs Use usize in flow_list. 2015-03-29 12:43:44 +02:00
flow_ref.rs Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8. 2015-05-05 10:07:34 -04:00
fragment.rs Auto merge of #6083 - ecoal95:layerize-canvas, r=pcwalton 2015-05-20 15:42:06 -05:00
generated_content.rs Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8. 2015-05-05 10:07:34 -04:00
incremental.rs layout: Support inline incremental reflow, and stop reconstructing all 2015-05-19 11:08:27 -07:00
inline.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
layout_debug.rs Make DEBUG_ID_COUNTER a plain static. 2015-05-05 19:04:53 +02:00
layout_task.rs Layerize canvas 2015-05-20 19:10:50 +02:00
lib.rs Layerize canvas 2015-05-20 19:10:50 +02:00
list_item.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
model.rs Rename Au methods with f32/f64 instead of frac32/frac/subpx 2015-05-05 18:23:29 +02:00
multicol.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
opaque_node.rs Replace unsafe_blocks by unsafe_code. 2015-03-21 10:27:32 +01:00
parallel.rs Fix mutable transmutes 2015-05-19 15:27:40 -04:00
sequential.rs Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8. 2015-05-05 10:07:34 -04:00
table.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
table_caption.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
table_cell.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
table_colgroup.rs layout: Allow inline elements to be containing blocks for 2015-05-13 12:00:53 -07:00
table_row.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
table_rowgroup.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
table_wrapper.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
text.rs Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8. 2015-05-05 10:07:34 -04:00
traversal.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
wrapper.rs Layerize canvas 2015-05-20 19:10:50 +02:00