mirror of
https://github.com/servo/servo.git
synced 2025-07-22 14:53:49 +01:00
Use a more modern style in renderer
This commit is contained in:
parent
50ce0448e2
commit
d62a643c91
1 changed files with 39 additions and 37 deletions
|
@ -7,32 +7,34 @@ enum msg {
|
||||||
exit(comm::chan<()>)
|
exit(comm::chan<()>)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn renderer(osmain_ch: comm::chan<osmain::msg>) -> comm::chan<msg> {
|
fn renderer(osmain: chan<osmain::msg>) -> chan<msg> {
|
||||||
task::spawn_listener {|po|
|
task::spawn_listener::<msg> {|po|
|
||||||
let draw_target_po = comm::port();
|
listen {|draw_target_ch|
|
||||||
comm::send(osmain_ch, osmain::get_draw_target(comm::chan(draw_target_po)));
|
osmain.send(osmain::get_draw_target(draw_target_ch));
|
||||||
let draw_target = comm::recv(draw_target_po);
|
let draw_target = draw_target_ch.recv();
|
||||||
|
|
||||||
let mut exit_confirm_ch = none;
|
let mut exit_confirm_ch = none;
|
||||||
loop {
|
loop {
|
||||||
alt comm::recv::<msg>(po) {
|
alt po.recv() {
|
||||||
draw(display_list) {
|
draw(display_list) {
|
||||||
|
|
||||||
draw_display_list(draw_target, display_list);
|
draw_display_list(draw_target, display_list);
|
||||||
|
|
||||||
let draw_po = comm::port();
|
listen {|draw_ch|
|
||||||
comm::send(osmain_ch, osmain::draw(comm::chan(draw_po)));
|
osmain.send(osmain::draw(draw_ch));
|
||||||
comm::recv(draw_po);
|
draw_ch.recv();
|
||||||
}
|
}
|
||||||
exit(response_ch) {
|
}
|
||||||
exit_confirm_ch = some(response_ch);
|
exit(response_ch) {
|
||||||
break;
|
exit_confirm_ch = some(response_ch);
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
assert exit_confirm_ch.is_some();
|
assert exit_confirm_ch.is_some();
|
||||||
comm::send(exit_confirm_ch.get(), ());
|
exit_confirm_ch.get().send(());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,18 +48,18 @@ fn draw_display_list(
|
||||||
let bounds = (*item).bounds;
|
let bounds = (*item).bounds;
|
||||||
|
|
||||||
let red_color = {
|
let red_color = {
|
||||||
r: 1f as azure::AzFloat,
|
r: 1f as AzFloat,
|
||||||
g: 0f as azure::AzFloat,
|
g: 0f as AzFloat,
|
||||||
b: 0f as azure::AzFloat,
|
b: 0f as AzFloat,
|
||||||
a: 0.5f as azure::AzFloat
|
a: 0.5f as AzFloat
|
||||||
};
|
};
|
||||||
let red_pattern = AzCreateColorPattern(ptr::addr_of(red_color));
|
let red_pattern = AzCreateColorPattern(ptr::addr_of(red_color));
|
||||||
|
|
||||||
let red_rect = {
|
let red_rect = {
|
||||||
x: au_to_int(bounds.origin.x) as azure::AzFloat,
|
x: au_to_int(bounds.origin.x) as AzFloat,
|
||||||
y: au_to_int(bounds.origin.y) as azure::AzFloat,
|
y: au_to_int(bounds.origin.y) as AzFloat,
|
||||||
width: au_to_int(bounds.size.width) as azure::AzFloat,
|
width: au_to_int(bounds.size.width) as AzFloat,
|
||||||
height: au_to_int(bounds.size.height) as azure::AzFloat
|
height: au_to_int(bounds.size.height) as AzFloat
|
||||||
};
|
};
|
||||||
AzDrawTargetFillRect(
|
AzDrawTargetFillRect(
|
||||||
draw_target,
|
draw_target,
|
||||||
|
@ -72,18 +74,18 @@ fn draw_display_list(
|
||||||
fn clear(draw_target: AzDrawTargetRef) {
|
fn clear(draw_target: AzDrawTargetRef) {
|
||||||
|
|
||||||
let black_color = {
|
let black_color = {
|
||||||
r: 0f as azure::AzFloat,
|
r: 0f as AzFloat,
|
||||||
g: 0f as azure::AzFloat,
|
g: 0f as AzFloat,
|
||||||
b: 0f as azure::AzFloat,
|
b: 0f as AzFloat,
|
||||||
a: 1f as azure::AzFloat
|
a: 1f as AzFloat
|
||||||
};
|
};
|
||||||
let black_pattern = AzCreateColorPattern(ptr::addr_of(black_color));
|
let black_pattern = AzCreateColorPattern(ptr::addr_of(black_color));
|
||||||
|
|
||||||
let black_rect = {
|
let black_rect = {
|
||||||
x: 0 as azure::AzFloat,
|
x: 0 as AzFloat,
|
||||||
y: 0 as azure::AzFloat,
|
y: 0 as AzFloat,
|
||||||
width: 800 as azure::AzFloat,
|
width: 800 as AzFloat,
|
||||||
height: 600 as azure::AzFloat,
|
height: 600 as AzFloat,
|
||||||
};
|
};
|
||||||
|
|
||||||
AzDrawTargetFillRect(
|
AzDrawTargetFillRect(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue