mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
auto merge of #4895 : mrobinson/servo/fix-buffer-return, r=mbrubeck
Update to latest rust-layers and send back all buffers to their original pipeline.
This commit is contained in:
commit
bc6882bdef
4 changed files with 15 additions and 18 deletions
|
@ -21,7 +21,7 @@ use gfx::color;
|
||||||
use gfx::paint_task::Msg as PaintMsg;
|
use gfx::paint_task::Msg as PaintMsg;
|
||||||
use gfx::paint_task::PaintRequest;
|
use gfx::paint_task::PaintRequest;
|
||||||
use layers::geometry::{DevicePixel, LayerPixel};
|
use layers::geometry::{DevicePixel, LayerPixel};
|
||||||
use layers::layers::{BufferRequest, Layer, LayerBufferSet};
|
use layers::layers::{BufferRequest, Layer, LayerBuffer, LayerBufferSet};
|
||||||
use layers::rendergl;
|
use layers::rendergl;
|
||||||
use layers::rendergl::RenderContext;
|
use layers::rendergl::RenderContext;
|
||||||
use layers::scene::Scene;
|
use layers::scene::Scene;
|
||||||
|
@ -1036,16 +1036,12 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn send_back_unused_buffers(&mut self) {
|
fn send_back_unused_buffers(&mut self,
|
||||||
match self.root_pipeline {
|
unused_buffers: Vec<(Rc<Layer<CompositorData>>,
|
||||||
Some(ref pipeline) => {
|
Vec<Box<LayerBuffer>>)>) {
|
||||||
let unused_buffers = self.scene.collect_unused_buffers();
|
for (layer, buffers) in unused_buffers.into_iter() {
|
||||||
if unused_buffers.len() != 0 {
|
let pipeline = self.get_pipeline(layer.get_pipeline_id());
|
||||||
let message = PaintMsg::UnusedBuffer(unused_buffers);
|
let _ = pipeline.paint_chan.send_opt(PaintMsg::UnusedBuffer(buffers));
|
||||||
let _ = pipeline.paint_chan.send(message);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
None => {}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1073,11 +1069,11 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
||||||
/// Returns true if any buffer requests were sent or false otherwise.
|
/// Returns true if any buffer requests were sent or false otherwise.
|
||||||
fn send_buffer_requests_for_all_layers(&mut self) -> bool {
|
fn send_buffer_requests_for_all_layers(&mut self) -> bool {
|
||||||
let mut layers_and_requests = Vec::new();
|
let mut layers_and_requests = Vec::new();
|
||||||
self.scene.get_buffer_requests(&mut layers_and_requests,
|
let mut unused_buffers = Vec::new();
|
||||||
Rect(TypedPoint2D(0f32, 0f32), self.window_size.as_f32()));
|
self.scene.get_buffer_requests(&mut layers_and_requests, &mut unused_buffers);
|
||||||
|
|
||||||
// Return unused tiles first, so that they can be reused by any new BufferRequests.
|
// Return unused tiles first, so that they can be reused by any new BufferRequests.
|
||||||
self.send_back_unused_buffers();
|
self.send_back_unused_buffers(unused_buffers);
|
||||||
|
|
||||||
if layers_and_requests.len() == 0 {
|
if layers_and_requests.len() == 0 {
|
||||||
return false;
|
return false;
|
||||||
|
|
2
components/servo/Cargo.lock
generated
2
components/servo/Cargo.lock
generated
|
@ -446,7 +446,7 @@ source = "git+https://github.com/bjz/gl-rs.git#230e6c9ed611cddfcb6682dee9686471d
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "layers"
|
name = "layers"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/servo/rust-layers#253fd0eb7e49b356393e14abdf34c76152cba10f"
|
source = "git+https://github.com/servo/rust-layers#8eec5bd428b57391329dbdb3656241a065b261d9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
||||||
"cgl 0.0.1 (git+https://github.com/servo/rust-cgl)",
|
"cgl 0.0.1 (git+https://github.com/servo/rust-cgl)",
|
||||||
|
|
5
ports/cef/Cargo.lock
generated
5
ports/cef/Cargo.lock
generated
|
@ -52,6 +52,7 @@ version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
||||||
"geom 0.1.0 (git+https://github.com/servo/rust-geom)",
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom)",
|
||||||
|
"gfx 0.0.1",
|
||||||
"util 0.0.1",
|
"util 0.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -80,7 +81,6 @@ dependencies = [
|
||||||
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
||||||
"core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)",
|
"core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)",
|
||||||
"core_text 0.1.0 (git+https://github.com/servo/rust-core-text)",
|
"core_text 0.1.0 (git+https://github.com/servo/rust-core-text)",
|
||||||
"devtools 0.0.1",
|
|
||||||
"devtools_traits 0.0.1",
|
"devtools_traits 0.0.1",
|
||||||
"geom 0.1.0 (git+https://github.com/servo/rust-geom)",
|
"geom 0.1.0 (git+https://github.com/servo/rust-geom)",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
|
@ -145,6 +145,7 @@ version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"devtools_traits 0.0.1",
|
"devtools_traits 0.0.1",
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
|
"time 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"util 0.0.1",
|
"util 0.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -444,7 +445,7 @@ source = "git+https://github.com/bjz/gl-rs.git#230e6c9ed611cddfcb6682dee9686471d
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "layers"
|
name = "layers"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/servo/rust-layers#253fd0eb7e49b356393e14abdf34c76152cba10f"
|
source = "git+https://github.com/servo/rust-layers#8eec5bd428b57391329dbdb3656241a065b261d9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
||||||
"cgl 0.0.1 (git+https://github.com/servo/rust-cgl)",
|
"cgl 0.0.1 (git+https://github.com/servo/rust-cgl)",
|
||||||
|
|
2
ports/gonk/Cargo.lock
generated
2
ports/gonk/Cargo.lock
generated
|
@ -366,7 +366,7 @@ source = "git+https://github.com/bjz/gl-rs.git#230e6c9ed611cddfcb6682dee9686471d
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "layers"
|
name = "layers"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/servo/rust-layers#253fd0eb7e49b356393e14abdf34c76152cba10f"
|
source = "git+https://github.com/servo/rust-layers#8eec5bd428b57391329dbdb3656241a065b261d9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
|
||||||
"cgl 0.0.1 (git+https://github.com/servo/rust-cgl)",
|
"cgl 0.0.1 (git+https://github.com/servo/rust-cgl)",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue