Rename renderer to render_task

This commit is contained in:
Brian Anderson 2012-08-19 17:33:34 -07:00
parent 4e54e0abea
commit 0721daad0f
10 changed files with 37 additions and 29 deletions

View file

@ -19,7 +19,7 @@ import dom::base::{Node, NodeScope, define_bindings};
import dom::event::{Event, ResizeEvent};
import dom::style;
import dom::style::Stylesheet;
import gfx::renderer::Compositor;
import gfx::compositor::Compositor;
import parser::html_lexer::spawn_html_lexer_task;
import parser::html_builder::build_dom;
import layout::layout_task;

View file

@ -1,4 +1,6 @@
import gfx::renderer::{Renderer, Compositor};
import gfx::compositor::Compositor;
import gfx::render_task;
import render_task::RenderTask;
import pipes::{spawn_service, select};
import layout::layout_task;
import layout_task::Layout;
@ -18,7 +20,7 @@ fn macros() {
struct Engine<C:Compositor send copy> {
let compositor: C;
let renderer: Renderer;
let render_task: RenderTask;
let resource_task: ResourceTask;
let image_cache_task: ImageCacheTask;
let layout: Layout;
@ -27,13 +29,13 @@ struct Engine<C:Compositor send copy> {
new(+compositor: C) {
self.compositor = compositor;
let renderer = Renderer(compositor);
let render_task = RenderTask(compositor);
let resource_task = ResourceTask();
let image_cache_task = image_cache_task(resource_task);
let layout = Layout(renderer, image_cache_task);
let layout = Layout(render_task, image_cache_task);
let content = create_content(layout, compositor, resource_task);
self.renderer = renderer;
self.render_task = render_task;
self.resource_task = resource_task;
self.image_cache_task = image_cache_task;
self.layout = layout;
@ -66,8 +68,8 @@ struct Engine<C:Compositor send copy> {
let (response_chan, response_port) =
pipes::stream();
self.renderer.send(
renderer::ExitMsg(response_chan));
self.render_task.send(
render_task::ExitMsg(response_chan));
response_port.recv();
self.image_cache_task.exit();

View file

@ -0,0 +1,13 @@
import dom::event::Event;
import azure::azure_hl::DrawTarget;
#[doc = "
The interface used to by the renderer to aquire draw targets for
each rendered frame and submit them to be drawn to the display
"]
trait Compositor {
fn begin_drawing(+next_dt: pipes::chan<DrawTarget>);
fn draw(+next_dt: pipes::chan<DrawTarget>, +draw_me: DrawTarget);
fn add_event_listener(listener: comm::Chan<Event>);
}

View file

@ -17,7 +17,8 @@ import cairo::{CAIRO_FORMAT_ARGB32, cairo_surface_t, cairo_status_t, CAIRO_STATU
import cairo_bg = cairo::bindgen;
import cairo_bg::{cairo_image_surface_create, cairo_surface_destroy,
cairo_surface_write_to_png_stream};
import renderer::{Renderer, Compositor, RenderMsg};
import compositor::Compositor;
import render_task::{RenderTask, RenderMsg};
import task::spawn_listener;
import comm::{Chan, Port, chan, port};
import unsafe::reinterpret_cast;
@ -86,12 +87,12 @@ fn do_draw(sender: pipes::chan<DrawTarget>,
fn sanity_check() {
do listen |self_channel| {
let compositor = PngCompositor(self_channel);
let renderer = Renderer(compositor);
let renderer = RenderTask(compositor);
let dlist : display_list = dvec();
renderer.send(RenderMsg(dlist));
let (exit_chan, exit_response_from_engine) = pipes::stream();
renderer.send(renderer::ExitMsg(exit_chan));
renderer.send(render_task::ExitMsg(exit_chan));
exit_response_from_engine.recv();
compositor.send(Exit)

View file

@ -8,7 +8,6 @@ import azure::bindgen::*;
import libc::size_t;
import text::font::Font;
import text::text_run::TextRun;
import dom::event::{Event, ResizeEvent};
import geom::size::Size2D;
import geom::rect::Rect;
import geom::point::Point2D;
@ -18,6 +17,7 @@ import ptr::addr_of;
import std::arc::arc;
import azure::cairo::{cairo_font_face_t, cairo_scaled_font_t};
import std::cell::Cell;
import compositor::Compositor;
import pipes::{port, chan};
@ -28,17 +28,9 @@ enum Msg {
ExitMsg(pipes::chan<()>)
}
#[doc = "
The interface used to by the renderer to aquire draw targets for
each rendered frame and submit them to be drawn to the display
"]
trait Compositor {
fn begin_drawing(+next_dt: pipes::chan<DrawTarget>);
fn draw(+next_dt: pipes::chan<DrawTarget>, +draw_me: DrawTarget);
fn add_event_listener(listener: comm::Chan<Event>);
}
type RenderTask = comm::Chan<Msg>;
fn Renderer<C: Compositor send copy>(compositor: C) -> comm::Chan<Msg> {
fn RenderTask<C: Compositor send copy>(compositor: C) -> RenderTask {
do task::spawn_listener |po: comm::Port<Msg>| {
let (draw_target_ch, draw_target_po) = pipes::stream();
let mut draw_target_ch = draw_target_ch;

View file

@ -9,7 +9,6 @@ import geom::point::Point2D;
import geom::rect::Rect;
import geom::size::Size2D;
import gfx::geometry::{au, au_to_px, box, px_to_au};
import gfx::renderer;
import util::tree;
import dvec::dvec;

View file

@ -8,7 +8,8 @@ import display_list_builder::build_display_list;
import dom::base::Node;
import dom::style::Stylesheet;
import gfx::geometry::px_to_au;
import gfx::renderer::Renderer;
import gfx::render_task;
import render_task::RenderTask;
import resource::image_cache_task::ImageCacheTask;
import std::net::url::url;
import style::apply::apply_style;
@ -25,7 +26,7 @@ enum Msg {
ExitMsg
}
fn Layout(renderer: Renderer, image_cache_task: ImageCacheTask) -> Layout {
fn Layout(render_task: RenderTask, image_cache_task: ImageCacheTask) -> Layout {
do spawn_listener::<Msg>|request| {
loop {
match request.recv() {
@ -52,7 +53,7 @@ fn Layout(renderer: Renderer, image_cache_task: ImageCacheTask) -> Layout {
this_box.reflow_subtree(px_to_au(800));
let dlist = build_display_list(this_box);
renderer.send(renderer::RenderMsg(dlist));
render_task.send(render_task::RenderMsg(dlist));
}
}
}

View file

@ -10,7 +10,7 @@ import azure::cairo_hl::ImageSurface;
import comm::*;
import dvec::{DVec, dvec};
import azure::cairo::cairo_surface_t;
import gfx::renderer::Compositor;
import gfx::compositor::Compositor;
import dom::event::{Event, ResizeEvent};
import layers::ImageLayer;
import geom::size::Size2D;

View file

@ -32,7 +32,8 @@ mod dom {
mod gfx {
mod geometry;
mod surface;
mod renderer;
mod render_task;
mod compositor;
mod png_compositor;
}

View file

@ -1,6 +1,5 @@
import comm::*;
import option::swap_unwrap;
import gfx::renderer;
import platform::osmain;
import osmain::{OSMain, AddKeyHandler};
import opts::{Opts, Screen, Png};