aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/gfx/render_task.rs
Commit message (Collapse)AuthorAgeFilesLines
* Cargoify servoJack Moffitt2014-09-081-443/+0
|
* Implement sideways text.Simon Sapin2014-08-291-1/+1
|
* Update to latest rust-layersMartin Robinson2014-08-151-0/+3
| | | | | We now need to pass through the content age of the LayerBuffer when creating it.
* Merge pull request #3000 from Ms2ger/rendertaskMs2ger2014-08-061-15/+3
|\ | | | | Use spawn_named_with_send_on_failure for the RenderTask; r=Manishearth
| * Use spawn_named_with_send_on_failure for the RenderTask (fixes #2744).Ms2ger2014-08-041-15/+3
| |
* | Rename ReRenderMsg to RenderMsgCameron Zwarich2014-08-051-5/+5
| | | | | | | | | | ReRenderMsg is also used for rendering the first time, so the name is confusing.
* | Rename RenderMsg to RenderInitMsgCameron Zwarich2014-08-051-2/+2
|/ | | | RenderMsg doesn't actually render anything, so the name is confusing.
* Merge pull request #2965 from zwarich/render-state-lessPatrick Walton2014-07-301-3/+4
|\ | | | | Move RenderState manipulation out of a loop so that we thrash it less
| * Move RenderState manipulation out of a loop so that we thrash it lessCameron Zwarich2014-07-301-3/+4
| | | | | | | | | | It doesn't really make sense to say that we're idle when we're potentially still rendering.
* | Call NativeSurface::upload through a mut reference.Matt Brubeck2014-07-301-1/+1
|/ | | | Required for servo/rust-layers#95.
* Track rerender msgsBryan Bell2014-07-261-0/+1
| | | | | | | | | If the compositor outputs to a file: * Track rerender msgs sent from the compositor to the render tasks. * Before outputting, wait until all rerender msgs are processed by the render tasks. Fixes issue https://github.com/servo/servo/issues/2871.
* Revert "Merge pull request #2819 from bjwbell/iframe-layers"Cameron Zwarich2014-07-191-7/+15
| | | | | This reverts commit 0200b61f713f2cdddcbc06ccd4cb5de11332899a, reversing changes made to ca968219025a46e57b5cd770ae7c8ac5919876b1.
* Restructure compositor layers to work with iframesBryan Bell2014-07-191-15/+7
| | | | | | | | | | | | | | | | | | | | | | | | | When a frame is selected via set_ids, a tree of root compositor layers is also created, matching the tree of pipelines in the frame. This decouples the chronological ordering dependency for parent frames and child iframes sending CreateOrUpdateRootLayer & CreateOrUpdateDescendentLayer messages. Change the Compositor ready and render states to per pipeline. This ensures the compositor doesn't composite for an epoch until every *pipeline* in the epoch is finished rendering. For iframes it fixes a bug where the compositor didnt wait on the child pipeline ready state before compositing the window. Gotchas: * layout task or script task failure on exit ("task '' failed at sending on a closed channel"), this happens if the child iframe shares the same script task as the parent and can be avoided by adding the sandbox attribute to the iframe. Other changes: * Inline set_clipping_rect in compositor.rs * Commented out ref test simple_iframe.html fails on os x
* Changes reflecting the latest version of rust-layersMartin Robinson2014-07-161-3/+6
| | | | | | The Tile trait has been removed and TileGrid now keeps Tile structs with Textures embedded instead of simply buffers. rust-layers now creates its own textures instead of relying on Servo to do it.
* Remove FIXMEs related to batching buffer requestsCameron Zwarich2014-07-101-3/+0
|
* Make RenderListener::paint take multiple repliesCameron Zwarich2014-07-101-3/+1
|
* Batch replies in RenderTask::renderCameron Zwarich2014-07-101-4/+13
|
* Check whether the render task has permission to paint before paintingCameron Zwarich2014-07-101-7/+8
| | | | | | This matches the behavior of RenderMsg. It doesn't make sense to go to the trouble of rendering if the render task doesn't have permission to paint in the first place.
* Make ReRenderMsg take multiple ReRenderRequestsCameron Zwarich2014-07-101-6/+9
|
* Separate the contents of ReRenderMsg into its own typeCameron Zwarich2014-07-101-3/+10
| | | | | | Make a ReRenderRequest type to represent the contents of a ReRenderMsg. Currently, ReRenderMsg just takes a single one, but it in the future it will take multiple requests.
* Next stage of refactoring font system. This commit introducesGlenn Watson2014-07-071-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the font cache task, and adapts client code to use it. It also cleans up some existing code paths. - Fonts are only read once from disk while in use (they are discarded if the reference count reaches zero, however). This saves memory and prevents unnecessary reading from disk. - It will be easier to add web font support, as all fonts are created and managed in a single place and the entire pipeline ensures that only one in-memory copy of font data is required. An overview of how the pieces fit together: FontTemplate - A structure containing everything that is required to create (and select) font handles. This structure is shared among all matching font handles (via Arc). FontTemplateData - A platform specific structure that contains the actual font data inside a template (this is a byte array on Linux/Android, CTFont on Mac). FontHandle - An opaque, platform specific handle to a font instance. Each FontHandle contains an Arc<> reference to the FontTemplate it was created from. FontCache - This is a separate task, that is responsible for loading and caching FontTemplate structures. There is one FontCache per constellation. It is only ever accessed via the FontContext described below. FontContext - This is the public interface to the FontCache and is used by the layout and render code to create font handles. These must *not* be shared between threads. There is typically one FontContext per thread/task.
* Refactor compositor layer tree designMartin Robinson2014-07-021-18/+2
| | | | | | Instead of having two parallel trees of CompositorLayers and ContainerLayers, transform CompositorLayer to CompositorData and move tiling logic to rust-layers.
* Run render task on OS thread to avoid Skia memory corruption.Glenn Watson2014-07-021-6/+15
| | | | | | | | | | | | | When Skia is running on a green task, it can sometimes be rescheduled onto a different OS thread. This creates problems with the memory pool implementation in Skia, which uses TLS for storing the per thread memory pool information. Free'ing a pool allocation from a different OS thread than it was allocated on can cause heap corruption. FIXME: When we update rustc, switch the task failure message to using the new NativeTaskBuilder interface so that it can use the same send_on_failure function as green tasks.
* Rename |Profiler| as |TimeProfiler|.Nicholas Nethercote2014-06-261-8/+8
| | | | | And likewise for |ProfilerChan|, |profiler_chan|, and so on. This contrasts nicely with the newly added |MemoryProfiler|.
* Revert parallel render patch due to issue #2718.Glenn Watson2014-06-261-234/+146
|
* Fix warning in gfx: "variable does not need to be mutable"Tetsuharu OHZEKI2014-06-221-1/+0
|
* gfx: Don't crash if there is no graphics metadata.Patrick Walton2014-06-201-5/+14
|
* Revert "Revert "Merge pull request #2609 from brson/parallel-render""Patrick Walton2014-06-201-146/+226
| | | | This reverts commit 3f8f065b76d034803bfb666899ef07afce0a1cd9.
* Revert "Merge pull request #2609 from brson/parallel-render"Lars Bergstrom2014-06-201-226/+146
| | | | | This reverts commit 850bd2891de589b95e32dc8f0b59d4043ed1e0a3, reversing changes made to 5b0feac32a3ef13a76670eb2f5f21e7b598fc890.
* Fix typosBrian Anderson2014-06-181-1/+1
|
* Allow render threads to be specified with -tBrian Anderson2014-06-181-10/+1
|
* Render in parallelBrian Anderson2014-06-181-146/+235
|
* gfx: Add display list optimization to eliminate clipped items beforePatrick Walton2014-06-051-10/+16
| | | | | | submitting them to Skia. 40x improvement in painting time on Wikipedia.
* Make RenderChan a newtype struct.Cameron Zwarich2014-05-261-18/+7
| | | | Also, derive Clone rather than implementing it manually.
* Update Rust.Ms2ger2014-05-221-12/+12
|
* Changes based on reviewMatt Murphy2014-05-041-1/+1
|
* Convert Vec::new() to vec!()Matt Murphy2014-05-041-1/+1
|
* ~[] to Vec in main/compositing and associated filesMatt Murphy2014-05-041-6/+5
|
* This batch of changes upgrades Servo to work with the Rust upgrade as ofLars Bergstrom2014-04-271-8/+8
| | | | | | April 10, 2014. The main changes are to privacy, to work around the issues with incorrect bounds on the libstd `Arc<Mutex<T>>`, and the various API changes strewn throughout the libraries.
* Fix some private type in public signature warnings.Josh Matthews2014-04-161-2/+2
|
* Remove trailing whitespace.Ms2ger2014-04-071-1/+1
|
* Upgrade rust.Ms2ger2014-04-041-8/+8
|
* layout: Address review feedback.Patrick Walton2014-04-031-18/+11
|
* servo: Implement stacking contexts and allow multiple layers perPatrick Walton2014-04-031-166/+213
| | | | pipeline. This handles fixed positioning mostly correctly.
* Rust upgrade for new master rebaseLars Bergstrom2014-03-181-5/+3
|
* Check properly for None in the headless compositor caseLars Bergstrom2014-03-181-2/+4
|
* Warning police.Josh Matthews2014-03-181-1/+1
|
* Rust upgradesLars Bergstrom2014-03-181-17/+18
|
* Move from gfx::opts to servo_util::opts.Tetsuharu OHZEKI2014-02-251-1/+1
|
* Restore failure handlingKeegan McAllister2014-02-121-4/+10
| | | | | | | 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.