Rename lister to layout

This commit is contained in:
Brian Anderson 2012-05-03 17:14:39 -07:00
parent f98c4ff1ad
commit 0b46922d6d
4 changed files with 55 additions and 82 deletions

View file

@ -1,17 +1,65 @@
#[doc = "
Builds display lists on request and passes them to the renderer
"];
import task::*;
import comm::*;
import display_list::*;
import gfx::geom;
import gfx::geom::*;
import gfx::renderer;
enum msg {
do_layout,
build,
exit
}
fn layout(lister: chan<lister::msg>) -> chan<msg> {
fn layout(renderer: chan<renderer::msg>) -> chan<msg> {
spawn_listener::<msg> {|po|
let mut x1 = 100;
let mut y1 = 100;
let mut w1 = 200;
let mut h1 = 200;
let mut x2 = 200;
let mut y2 = 200;
let mut w2 = 300;
let mut h2 = 300;
loop {
alt recv(po) {
do_layout {
send(lister, lister::build)
build {
let dlist = [
display_item({
item_type: solid_color,
bounds: geom::box(
int_to_au(x1),
int_to_au(y1),
int_to_au(w1),
int_to_au(h1))
}),
display_item({
item_type: solid_color,
bounds: geom::box(
int_to_au(x2),
int_to_au(y2),
int_to_au(w2),
int_to_au(h2))
})
];
send(renderer, gfx::renderer::draw(dlist));
x1 += 1;
y1 += 1;
x2 -= 1;
y2 -= 1;
if x1 > 800 { x1 = 0 }
if y1 > 600 { y1 = 0 }
if x2 < 0 { x2 = 800 }
if y2 < 0 { y2 = 600 }
}
exit {
break;
@ -19,4 +67,5 @@ fn layout(lister: chan<lister::msg>) -> chan<msg> {
}
}
}
}

View file

@ -1,71 +0,0 @@
#[doc = "
Builds display lists on request and passes them to the renderer
"];
import task::*;
import comm::*;
import display_list::*;
import gfx::geom;
import gfx::geom::*;
import gfx::renderer;
enum msg {
build,
exit
}
fn lister(renderer: chan<renderer::msg>) -> chan<msg> {
spawn_listener::<msg> {|po|
let mut x1 = 100;
let mut y1 = 100;
let mut w1 = 200;
let mut h1 = 200;
let mut x2 = 200;
let mut y2 = 200;
let mut w2 = 300;
let mut h2 = 300;
loop {
alt recv(po) {
build {
let dlist = [
display_item({
item_type: solid_color,
bounds: geom::box(
int_to_au(x1),
int_to_au(y1),
int_to_au(w1),
int_to_au(h1))
}),
display_item({
item_type: solid_color,
bounds: geom::box(
int_to_au(x2),
int_to_au(y2),
int_to_au(w2),
int_to_au(h2))
})
];
send(renderer, gfx::renderer::draw(dlist));
x1 += 1;
y1 += 1;
x2 -= 1;
y2 -= 1;
if x1 > 800 { x1 = 0 }
if y1 > 600 { y1 = 0 }
if x2 < 0 { x2 = 800 }
if y2 < 0 { y2 = 600 }
}
exit {
break;
}
}
}
}
}

View file

@ -30,7 +30,6 @@ mod image {
mod layout {
mod base;
mod display_list;
mod lister;
mod layout;
}

View file

@ -12,24 +12,20 @@ fn main() {
// The compositor
let renderer = gfx::renderer::renderer(osmain);
// The display list builder
let lister = layout::lister::lister(renderer);
// The layout task
let layout = layout::layout::layout(lister);
let layout = layout::layout::layout(renderer);
// The keyboard handler
let key_po = port();
send(osmain, osmain::add_key_handler(chan(key_po)));
loop {
send(layout, layout::layout::do_layout);
send(layout, layout::layout::build);
std::timer::sleep(10u);
if peek(key_po) {
comm::send(layout, layout::layout::exit);
comm::send(lister, layout::lister::exit);
let draw_exit_confirm_po = comm::port();
comm::send(renderer, gfx::renderer::exit(comm::chan(draw_exit_confirm_po)));