mirror of
https://github.com/servo/servo.git
synced 2025-06-20 15:18:58 +01:00
Fix paint permissions issue, clean up
This commit is contained in:
parent
1b225fbad2
commit
d40086048c
3 changed files with 13 additions and 13 deletions
|
@ -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 = ~[];
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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>);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue