aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authoreschweic <eschweickart@mozilla.com>2013-07-08 12:01:52 -0700
committereschweic <eschweickart@mozilla.com>2013-07-10 17:15:20 -0700
commitd40086048cfdccd06dcfec6aaba9cc5de31f2875 (patch)
tree86c7add4b8242aefec9f074ccf021bcce83bf853 /src
parent1b225fbad2c44ddd9fbc7e9bd05cb8e99b9f2d29 (diff)
downloadservo-d40086048cfdccd06dcfec6aaba9cc5de31f2875.tar.gz
servo-d40086048cfdccd06dcfec6aaba9cc5de31f2875.zip
Fix paint permissions issue, clean up
Diffstat (limited to 'src')
-rw-r--r--src/components/gfx/render_task.rs15
-rw-r--r--src/components/main/compositing/mod.rs9
-rw-r--r--src/components/msg/compositor_msg.rs2
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>);