Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upMulti-layer Compositing #675
Conversation
This comment has been minimized.
This comment has been minimized.
pcwalton
commented on src/components/main/compositing/quadtree.rs in b0b62e2
Aug 5, 2013
|
difference == how many times you have to double or halve |
This comment has been minimized.
This comment has been minimized.
pcwalton
commented on src/components/main/compositing/quadtree.rs in b0b62e2
Aug 5, 2013
|
Oh, I see, so you're recursively dividing in this branch and otherwise recursively halving in the other branch. Might want to leave a comment to this effect. |
| container: @mut ContainerLayer, | ||
| } | ||
|
|
||
| pub fn CompositorLayer(pipeline: Pipeline, page_size: Size2D<f32>, tile_size: uint, |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
pcwalton
commented on src/components/main/compositing/quadtree.rs in 95f089e
Aug 5, 2013
|
nit: I would say "potentially has a larger size, since it is rounded up to a power of two". |
This comment has been minimized.
This comment has been minimized.
pcwalton
commented on 95f089e
Aug 5, 2013
|
It would be good to allocate only as much space as is needed in video memory for tiles with portions outside the clip. Doesn't have to be done as part of this patch, but we should get this issue on file as I suspect there will be nasty memory usage edge conditions that could arise without it. |
This comment has been minimized.
This comment has been minimized.
|
Please move this to a function called |
This comment has been minimized.
This comment has been minimized.
|
Comment whether higher numbers mean "closer to the viewer" or "farther from the viewer". |
This comment has been minimized.
This comment has been minimized.
|
What is the ID used for? Needs a comment. |
This comment has been minimized.
This comment has been minimized.
|
By "redisplayed" you mean "rerendered", right? |
This comment has been minimized.
This comment has been minimized.
|
Child layers, you mean? |
This comment has been minimized.
This comment has been minimized.
|
To the scroll position of the page? I'm a little confused as to what this means. Is it relative to the top left of the page, do you mean? |
This comment has been minimized.
This comment has been minimized.
|
Might be nice to factor these out to use the Tree trait (you don't have to do this as part of this patch) |
|
Looks good modulo nits. Once those are fixed, r=me. |
This refactors the compositor and adds initial support for multiple compositor layers being displayed at once. A new module, `compositor_layer.rs`, does most of the heavy lifting that was once in `mod.rs`. New features include: * Better scrolling. Scrolling is now applied on a per-layer basis. The layer under the cursor is scrolled first; if it cannot be scrolled (i.e. it is at a page boundary), the scroll is propagated to the layer's parents. * Better zooming. Most of the time, layers are not aware of the current zoom factor; this is handled by the compositor. Everything else is computed in page coordinates. * Better clicking. Clicks are propagated from child layers upwards, and take scroll offsets into account. This also fixes an issue where hit testing was off for retina displays. Still to do: * Connect with tikue's changes. * Figure out snap-to-pixel scrolling. This is a lot trickier than it was before. * iframes don't have backgrounds yet; they appear transparent until their tiles are rendered. Depends on: * servo/rust-opengles#47 * servo/rust-layers#23 * servo/euclid#11 Here's a preview:  What looks like a compositor bug is actually a separate layer that I hard-coded in. So far it seems to be fully functional.
This refactors the compositor and adds initial support for multiple compositor layers being displayed at once. A new module, `compositor_layer.rs`, does most of the heavy lifting that was once in `mod.rs`. New features include: * Better scrolling. Scrolling is now applied on a per-layer basis. The layer under the cursor is scrolled first; if it cannot be scrolled (i.e. it is at a page boundary), the scroll is propagated to the layer's parents. * Better zooming. Most of the time, layers are not aware of the current zoom factor; this is handled by the compositor. Everything else is computed in page coordinates. * Better clicking. Clicks are propagated from child layers upwards, and take scroll offsets into account. This also fixes an issue where hit testing was off for retina displays. Still to do: * Connect with tikue's changes. * Figure out snap-to-pixel scrolling. This is a lot trickier than it was before. * iframes don't have backgrounds yet; they appear transparent until their tiles are rendered. Depends on: * servo/rust-opengles#47 * servo/rust-layers#23 * servo/euclid#11 Here's a preview:  What looks like a compositor bug is actually a separate layer that I hard-coded in. So far it seems to be fully functional.
This refactors the compositor and adds initial support for multiple compositor layers being displayed at once. A new module, `compositor_layer.rs`, does most of the heavy lifting that was once in `mod.rs`. New features include: * Better scrolling. Scrolling is now applied on a per-layer basis. The layer under the cursor is scrolled first; if it cannot be scrolled (i.e. it is at a page boundary), the scroll is propagated to the layer's parents. * Better zooming. Most of the time, layers are not aware of the current zoom factor; this is handled by the compositor. Everything else is computed in page coordinates. * Better clicking. Clicks are propagated from child layers upwards, and take scroll offsets into account. This also fixes an issue where hit testing was off for retina displays. Still to do: * Connect with tikue's changes. * Figure out snap-to-pixel scrolling. This is a lot trickier than it was before. * iframes don't have backgrounds yet; they appear transparent until their tiles are rendered. Depends on: * servo/rust-opengles#47 * servo/rust-layers#23 * servo/euclid#11 Here's a preview:  What looks like a compositor bug is actually a separate layer that I hard-coded in. So far it seems to be fully functional.
This refactors the compositor and adds initial support for multiple compositor layers being displayed at once. A new module, `compositor_layer.rs`, does most of the heavy lifting that was once in `mod.rs`. --- clipped so bors is happy ---
This comment has been minimized.
This comment has been minimized.
|
r=pcwalton |
This comment has been minimized.
This comment has been minimized.
metajack
replied
Aug 8, 2013
|
r+ |
This comment has been minimized.
This comment has been minimized.
|
saw approval from metajack |
This comment has been minimized.
This comment has been minimized.
|
merging eschweic/servo/multi-layer = 4b2d7f0 into auto |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
fast-forwarding master to auto = 0d46164 |
This refactors the compositor and adds initial support for multiple compositor layers being displayed at once. A new module, `compositor_layer.rs`, does most of the heavy lifting that was once in `mod.rs`. --- clipped so bors is happy ---
Remove redundant HTMLVideoElement.audio tests
Implement HeapSizeOf for ScrollPolicy. <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/675) <!-- Reviewable:end -->
eschweic commentedAug 5, 2013
This refactors the compositor and adds initial support for multiple compositor layers being displayed at once. A new module,
compositor_layer.rs, does most of the heavy lifting that was once inmod.rs.--- clipped so bors is happy ---