Commit graph

70 commits

Author SHA1 Message Date
Patrick Walton
c49f23ffb2 layout: Address review feedback. 2014-04-03 14:51:18 -07:00
Patrick Walton
cd9d824c21 servo: Implement stacking contexts and allow multiple layers per
pipeline. This handles fixed positioning mostly correctly.
2014-04-03 14:50:56 -07:00
Lars Bergstrom
a6100563a6 Rust upgrade for new master rebase 2014-03-18 22:00:48 -05:00
Lars Bergstrom
fe22598c56 Check properly for None in the headless compositor case 2014-03-18 09:31:23 -05:00
Josh Matthews
64c0de9fe7 Warning police. 2014-03-18 09:31:22 -05:00
Lars Bergstrom
bbac8aa5c3 Rust upgrades 2014-03-18 09:30:35 -05:00
Tetsuharu OHZEKI
63cab5c72c Move from gfx::opts to servo_util::opts. 2014-02-25 07:07:54 +09:00
Keegan McAllister
36b8f63984 Restore failure handling
We probably leak some threads and resources, e.g. when the script task crashes
and doesn't get a chance to send layout data back to layout to be deallocated.

Not tested with iframes yet.
2014-02-12 18:07:32 -08:00
Ms2ger
5de886b31d Remove duplicate imports from render_task.rs. 2014-02-01 10:16:44 +01:00
Isabelle Carter
0892fada74 Multiple display list support 2014-01-30 17:11:17 -06:00
Patrick Walton
54f0f17f83 layout: Implement parallel reflow for the bubble-widths and
assign-heights phases.

This uses the new work-stealing deque. By default, 3/4 of a thread per
logical CPU is used. This can be tuned with the `-y` flag.

I measured a 65% reflow speedup on `perf-rainbow.html` and a 247% reflow
speedup on `http://en.wikipedia.org/wiki/South_China_Sea` on a 4-core
HyperThreaded Core i7. However, numbers were fairly volatile, especially
for the latter.
2014-01-22 15:59:21 -08:00
Lars Bergstrom
3e6ff80f18 Add extra debugging information. 2014-01-15 15:26:24 -06:00
zmike
193b6d2635 add names for all servo spawned tasks
* add servo_util::task::{spawn_named,spawn_with_named} functions

* add name param for spawn_listener and spawn_conversation functions

this should resolve #1169
2014-01-13 13:12:48 -05:00
Jack Moffitt
a7ef1cd35e Upgrade to latest Rust. 2014-01-12 19:45:45 -07:00
Daniel Hedlund
e7a591a7e1 Ensure render and layout tasks get destructed before main thread finishes
Fixes #1097.
2013-12-15 14:25:41 -08:00
Keegan McAllister
f0613184cf Don't clear buffers if we have no native graphics context
Fixes ./servo -z for content that calls window.close(), such as content tests.
2013-12-11 16:31:08 -08:00
patrick kim
964b5e9d9a remove SendableTextRun & remove @mut Font From TextRun&Shaper(Font),Font.shaper,
fontfamily,fontgroup,render_context.font_ctx
2013-12-07 09:52:06 +09:00
Keegan McAllister
4a72abbbb2 Return None from get_graphics_metadata in headless compositor
This fixes servo -z.
2013-12-05 13:55:33 -08:00
Isabelle Carter
9886135b43 unrendered content uses doc's background color
uses html's background color, or body's.
2013-11-24 16:50:12 -06:00
Keegan McAllister
ee821df09c Remove render() bypass for headless mode
render() isn't called in headless mode because the headless compositor never
sends a ReRenderMsg.

(This code was needed originally and that probably changed when CPU rendering
landed, but I'm not sure exactly why.)
2013-11-06 11:51:50 -08:00
Keegan McAllister
e2b7885b73 fmt! -> format! 2013-10-31 14:58:55 -06:00
Simon Sapin
b9fddb951e Fix unused import warnings. 2013-10-28 15:50:28 +00:00
Patrick Walton
3d0bfa5040 Implement CPU rendering. Replace texture sharing with native OS surface sharing. 2013-10-25 16:58:30 -07:00
Keegan McAllister
1b785f150c Add a headless null compositor
We also have to disable rendering in headless mode because it uses OpenGL calls
for now.

Fixes #471.
2013-10-22 13:35:09 -07:00
Jack Moffitt
94202661c0 Update to latest Rust. 2013-10-21 17:38:34 -06:00
Tim Kuehn
5f600f0ec0 fix constellation being inundated with messages from script.
script task sent RendererReadyMsg after every reflow.
now, the renderer sends RendererReady at the appropriate time,
and _only_ if it doesn't have paint permission.
2013-09-20 18:36:26 -04:00
Tim Kuehn
9df66ff021 workaround for broken cross-crate generic newtype structs
add issue number for newtype struct issue
2013-09-20 17:25:08 -04:00
Tim Kuehn
c804db0f93 deactive profiler when not in use; use newtype structs for task chans 2013-09-20 17:25:08 -04:00
eschweic
529573d3d7 Don't send invalid cached paint messages to compositor 2013-08-22 14:39:08 -07:00
eschweic
594246891d Change quadtree iterators 2013-08-20 13:28:02 -07:00
eschweic
d92cbe6a51 Add buffer_map.rs; implement LayerBuffer recycling 2013-08-20 13:15:06 -07:00
eschweic
02ae7bdd34 Stop copying buffers when sending them to quadtrees 2013-08-20 13:03:22 -07:00
Eric Atkinson
eb58e4f5d1 Remove extraneous references to flow tree objects. 2013-08-20 11:29:39 -07:00
eschweic
813bb2e43f Add Epoch newtype; address review comments 2013-08-19 19:36:29 -04:00
eschweic
eb6973c7dc Implement epochs; fix integration bugs 2013-08-19 19:34:52 -04:00
eschweic
8993434c39 Better layer resize methods 2013-08-19 19:11:12 -04:00
Tim Kuehn
86f0aacb3d reorganized constellation.
compositor routes dom events via constellation.
constellation handles iframe sizing and resizing.
2013-08-19 19:11:11 -04:00
Keegan McAllister
a2d9810b69 Update Rust version again
This gets us the new runtime.
2013-08-15 13:56:29 -07:00
Keegan McAllister
307f1074d3 For loops and misc changes 2013-08-15 13:56:29 -07:00
Keegan McAllister
be061a9aa0 Library changes 2013-08-15 13:55:40 -07:00
Keegan McAllister
ffe60ea027 Trait changes, and eliminate 'copy' 2013-08-15 13:55:40 -07:00
eschweic
974ed79144 Refactor compositor; implement compositor iframe support 2013-08-05 11:18:33 -07:00
Tim Kuehn
e9888b299c structural changes to support Iframes 2013-07-29 11:03:17 -07:00
eschweic
cc816c04b9 Move buffer requests to quadtree; add remove_tile() to quadtree; automatic rerendering after pinch-zoom 2013-07-10 17:15:20 -07:00
eschweic
435941e932 Address metajack's comments 2013-07-10 17:15:20 -07:00
eschweic
d40086048c Fix paint permissions issue, clean up 2013-07-10 17:15:20 -07:00
eschweic
1948280aec Clean up and annotations 2013-07-10 17:12:52 -07:00
eschweic
6bebda4f26 Implement progressive rendering 2013-07-10 17:12:52 -07:00
Tim Kuehn
9f6cbf91c6 mildly cleaner profiling code in util::time 2013-07-10 14:11:28 -07:00
Jack Moffitt
870db39836 Update to latest Rust. 2013-07-09 14:37:53 -06:00