diff options
author | eschweic <eschweickart@mozilla.com> | 2013-07-08 12:01:52 -0700 |
---|---|---|
committer | eschweic <eschweickart@mozilla.com> | 2013-07-10 17:15:20 -0700 |
commit | d40086048cfdccd06dcfec6aaba9cc5de31f2875 (patch) | |
tree | 86c7add4b8242aefec9f074ccf021bcce83bf853 /src | |
parent | 1b225fbad2c44ddd9fbc7e9bd05cb8e99b9f2d29 (diff) | |
download | servo-d40086048cfdccd06dcfec6aaba9cc5de31f2875.tar.gz servo-d40086048cfdccd06dcfec6aaba9cc5de31f2875.zip |
Fix paint permissions issue, clean up
Diffstat (limited to 'src')
-rw-r--r-- | src/components/gfx/render_task.rs | 15 | ||||
-rw-r--r-- | src/components/main/compositing/mod.rs | 9 | ||||
-rw-r--r-- | src/components/msg/compositor_msg.rs | 2 |
3 files changed, 13 insertions, 13 deletions
diff --git a/src/components/gfx/render_task.rs b/src/components/gfx/render_task.rs index 8d62a57664a..fcc21acce51 100644 --- a/src/components/gfx/render_task.rs +++ b/src/components/gfx/render_task.rs @@ -18,7 +18,6 @@ use render_context::RenderContext; use std::cell::Cell; use std::comm::{Chan, Port, SharedChan}; -use std::uint; use servo_util::time::{ProfilerChan, profile}; use servo_util::time; @@ -118,7 +117,9 @@ impl<C: RenderListener + Send> RenderTask<C> { loop { match self.port.recv() { RenderMsg(render_layer) => { - self.compositor.new_layer(render_layer.size, self.opts.tile_size); + if self.paint_permission { + self.compositor.new_layer(render_layer.size, self.opts.tile_size); + } self.render_layer = Some(render_layer); } ReRenderMsg(tiles, scale) => { @@ -126,10 +127,9 @@ impl<C: RenderListener + Send> RenderTask<C> { } PaintPermissionGranted => { self.paint_permission = true; - match self.last_paint_msg { - Some((ref layer_buffer_set, layer_size)) => { - self.compositor.paint(self.id, layer_buffer_set.clone(), layer_size); - self.compositor.set_render_state(IdleRenderState); + match self.render_layer { + Some(ref render_layer) => { + self.compositor.new_layer(render_layer.size, self.opts.tile_size); } None => {} } @@ -146,8 +146,6 @@ impl<C: RenderListener + Send> RenderTask<C> { } fn render(&mut self, tiles: ~[(Rect<uint>, Rect<f32>)], scale: f32) { - debug!("render_task: rendering"); - let render_layer; match self.render_layer { Some(ref r_layer) => { @@ -158,7 +156,6 @@ impl<C: RenderListener + Send> RenderTask<C> { self.compositor.set_render_state(RenderingRenderState); do time::profile(time::RenderingCategory, self.profiler_chan.clone()) { - let tile_size = self.opts.tile_size; // FIXME: Try not to create a new array here. let mut new_buffers = ~[]; diff --git a/src/components/main/compositing/mod.rs b/src/components/main/compositing/mod.rs index 4f8c4267acd..24f95b1b23a 100644 --- a/src/components/main/compositing/mod.rs +++ b/src/components/main/compositing/mod.rs @@ -40,7 +40,6 @@ use servo_util::time::ProfilerChan; use extra::arc; pub use windowing; -//eschweic use compositing::quadtree::Quadtree; mod quadtree; @@ -273,11 +272,15 @@ impl CompositorTask { Some(ref chan) => { chan.send(ReRenderMsg(tile_request, *world_zoom)); } - _ => {} + _ => { + println("Warning: Compositor: Cannot send tile request, no render chan initialized"); + } } } } - _ => {} + _ => { + fail!("Compositor: Tried to ask for tiles without an initialized quadtree"); + } } }; diff --git a/src/components/msg/compositor_msg.rs b/src/components/msg/compositor_msg.rs index 4a5ba488f1b..49d98e383f2 100644 --- a/src/components/msg/compositor_msg.rs +++ b/src/components/msg/compositor_msg.rs @@ -53,7 +53,7 @@ pub enum ReadyState { /// submit them to be drawn to the display. pub trait RenderListener { fn get_gl_context(&self) -> AzGLContext; - fn new_layer(&self, Size2D<uint>, uint); //eschweic + fn new_layer(&self, Size2D<uint>, uint); fn resize_layer(&self, Size2D<uint>); fn delete_layer(&self); fn paint(&self, id: uint, layer_buffer_set: arc::ARC<LayerBufferSet>, new_size: Size2D<uint>); |