Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Progressive Rendering #557

Merged
merged 9 commits into from Jul 11, 2013

Fix paint permissions issue, clean up

  • Loading branch information
eschweic
eschweic committed Jul 11, 2013
commit d40086048cfdccd06dcfec6aaba9cc5de31f2875
@@ -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,18 +117,19 @@ 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) => {
self.render(tiles, scale);
}
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) {

This comment has been minimized.

@metajack

metajack Jul 3, 2013

Contributor

I would prefer to use a named structure here instead of the anonymous tuple.

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>);
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.