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::cell::Cell;
|
||||||
use std::comm::{Chan, Port, SharedChan};
|
use std::comm::{Chan, Port, SharedChan};
|
||||||
use std::uint;
|
|
||||||
|
|
||||||
use servo_util::time::{ProfilerChan, profile};
|
use servo_util::time::{ProfilerChan, profile};
|
||||||
use servo_util::time;
|
use servo_util::time;
|
||||||
|
@ -118,7 +117,9 @@ impl<C: RenderListener + Send> RenderTask<C> {
|
||||||
loop {
|
loop {
|
||||||
match self.port.recv() {
|
match self.port.recv() {
|
||||||
RenderMsg(render_layer) => {
|
RenderMsg(render_layer) => {
|
||||||
|
if self.paint_permission {
|
||||||
self.compositor.new_layer(render_layer.size, self.opts.tile_size);
|
self.compositor.new_layer(render_layer.size, self.opts.tile_size);
|
||||||
|
}
|
||||||
self.render_layer = Some(render_layer);
|
self.render_layer = Some(render_layer);
|
||||||
}
|
}
|
||||||
ReRenderMsg(tiles, scale) => {
|
ReRenderMsg(tiles, scale) => {
|
||||||
|
@ -126,10 +127,9 @@ impl<C: RenderListener + Send> RenderTask<C> {
|
||||||
}
|
}
|
||||||
PaintPermissionGranted => {
|
PaintPermissionGranted => {
|
||||||
self.paint_permission = true;
|
self.paint_permission = true;
|
||||||
match self.last_paint_msg {
|
match self.render_layer {
|
||||||
Some((ref layer_buffer_set, layer_size)) => {
|
Some(ref render_layer) => {
|
||||||
self.compositor.paint(self.id, layer_buffer_set.clone(), layer_size);
|
self.compositor.new_layer(render_layer.size, self.opts.tile_size);
|
||||||
self.compositor.set_render_state(IdleRenderState);
|
|
||||||
}
|
}
|
||||||
None => {}
|
None => {}
|
||||||
}
|
}
|
||||||
|
@ -146,8 +146,6 @@ impl<C: RenderListener + Send> RenderTask<C> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render(&mut self, tiles: ~[(Rect<uint>, Rect<f32>)], scale: f32) {
|
fn render(&mut self, tiles: ~[(Rect<uint>, Rect<f32>)], scale: f32) {
|
||||||
debug!("render_task: rendering");
|
|
||||||
|
|
||||||
let render_layer;
|
let render_layer;
|
||||||
match self.render_layer {
|
match self.render_layer {
|
||||||
Some(ref r_layer) => {
|
Some(ref r_layer) => {
|
||||||
|
@ -158,7 +156,6 @@ impl<C: RenderListener + Send> RenderTask<C> {
|
||||||
|
|
||||||
self.compositor.set_render_state(RenderingRenderState);
|
self.compositor.set_render_state(RenderingRenderState);
|
||||||
do time::profile(time::RenderingCategory, self.profiler_chan.clone()) {
|
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.
|
// FIXME: Try not to create a new array here.
|
||||||
let mut new_buffers = ~[];
|
let mut new_buffers = ~[];
|
||||||
|
|
|
@ -40,7 +40,6 @@ use servo_util::time::ProfilerChan;
|
||||||
use extra::arc;
|
use extra::arc;
|
||||||
pub use windowing;
|
pub use windowing;
|
||||||
|
|
||||||
//eschweic
|
|
||||||
use compositing::quadtree::Quadtree;
|
use compositing::quadtree::Quadtree;
|
||||||
mod quadtree;
|
mod quadtree;
|
||||||
|
|
||||||
|
@ -273,11 +272,15 @@ impl CompositorTask {
|
||||||
Some(ref chan) => {
|
Some(ref chan) => {
|
||||||
chan.send(ReRenderMsg(tile_request, *world_zoom));
|
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.
|
/// submit them to be drawn to the display.
|
||||||
pub trait RenderListener {
|
pub trait RenderListener {
|
||||||
fn get_gl_context(&self) -> AzGLContext;
|
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 resize_layer(&self, Size2D<uint>);
|
||||||
fn delete_layer(&self);
|
fn delete_layer(&self);
|
||||||
fn paint(&self, id: uint, layer_buffer_set: arc::ARC<LayerBufferSet>, new_size: Size2D<uint>);
|
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