mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Rename lister to layout
This commit is contained in:
parent
f98c4ff1ad
commit
0b46922d6d
4 changed files with 55 additions and 82 deletions
|
@ -1,17 +1,65 @@
|
||||||
|
#[doc = "
|
||||||
|
|
||||||
|
Builds display lists on request and passes them to the renderer
|
||||||
|
|
||||||
|
"];
|
||||||
|
|
||||||
import task::*;
|
import task::*;
|
||||||
import comm::*;
|
import comm::*;
|
||||||
|
import display_list::*;
|
||||||
|
import gfx::geom;
|
||||||
|
import gfx::geom::*;
|
||||||
|
import gfx::renderer;
|
||||||
|
|
||||||
enum msg {
|
enum msg {
|
||||||
do_layout,
|
build,
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
fn layout(lister: chan<lister::msg>) -> chan<msg> {
|
fn layout(renderer: chan<renderer::msg>) -> chan<msg> {
|
||||||
|
|
||||||
spawn_listener::<msg> {|po|
|
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 {
|
loop {
|
||||||
alt recv(po) {
|
alt recv(po) {
|
||||||
do_layout {
|
build {
|
||||||
send(lister, lister::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 {
|
exit {
|
||||||
break;
|
break;
|
||||||
|
@ -19,4 +67,5 @@ fn layout(lister: chan<lister::msg>) -> chan<msg> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -30,7 +30,6 @@ mod image {
|
||||||
mod layout {
|
mod layout {
|
||||||
mod base;
|
mod base;
|
||||||
mod display_list;
|
mod display_list;
|
||||||
mod lister;
|
|
||||||
mod layout;
|
mod layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,24 +12,20 @@ fn main() {
|
||||||
// The compositor
|
// The compositor
|
||||||
let renderer = gfx::renderer::renderer(osmain);
|
let renderer = gfx::renderer::renderer(osmain);
|
||||||
|
|
||||||
// The display list builder
|
|
||||||
let lister = layout::lister::lister(renderer);
|
|
||||||
|
|
||||||
// The layout task
|
// The layout task
|
||||||
let layout = layout::layout::layout(lister);
|
let layout = layout::layout::layout(renderer);
|
||||||
|
|
||||||
// The keyboard handler
|
// The keyboard handler
|
||||||
let key_po = port();
|
let key_po = port();
|
||||||
send(osmain, osmain::add_key_handler(chan(key_po)));
|
send(osmain, osmain::add_key_handler(chan(key_po)));
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
send(layout, layout::layout::do_layout);
|
send(layout, layout::layout::build);
|
||||||
|
|
||||||
std::timer::sleep(10u);
|
std::timer::sleep(10u);
|
||||||
|
|
||||||
if peek(key_po) {
|
if peek(key_po) {
|
||||||
comm::send(layout, layout::layout::exit);
|
comm::send(layout, layout::layout::exit);
|
||||||
comm::send(lister, layout::lister::exit);
|
|
||||||
|
|
||||||
let draw_exit_confirm_po = comm::port();
|
let draw_exit_confirm_po = comm::port();
|
||||||
comm::send(renderer, gfx::renderer::exit(comm::chan(draw_exit_confirm_po)));
|
comm::send(renderer, gfx::renderer::exit(comm::chan(draw_exit_confirm_po)));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue