mirror of
https://github.com/servo/servo.git
synced 2025-06-17 04:44:28 +00:00
Rename renderer to render_task
This commit is contained in:
parent
4e54e0abea
commit
0721daad0f
10 changed files with 37 additions and 29 deletions
|
@ -19,7 +19,7 @@ import dom::base::{Node, NodeScope, define_bindings};
|
||||||
import dom::event::{Event, ResizeEvent};
|
import dom::event::{Event, ResizeEvent};
|
||||||
import dom::style;
|
import dom::style;
|
||||||
import dom::style::Stylesheet;
|
import dom::style::Stylesheet;
|
||||||
import gfx::renderer::Compositor;
|
import gfx::compositor::Compositor;
|
||||||
import parser::html_lexer::spawn_html_lexer_task;
|
import parser::html_lexer::spawn_html_lexer_task;
|
||||||
import parser::html_builder::build_dom;
|
import parser::html_builder::build_dom;
|
||||||
import layout::layout_task;
|
import layout::layout_task;
|
||||||
|
|
|
@ -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 pipes::{spawn_service, select};
|
||||||
import layout::layout_task;
|
import layout::layout_task;
|
||||||
import layout_task::Layout;
|
import layout_task::Layout;
|
||||||
|
@ -18,7 +20,7 @@ fn macros() {
|
||||||
struct Engine<C:Compositor send copy> {
|
struct Engine<C:Compositor send copy> {
|
||||||
let compositor: C;
|
let compositor: C;
|
||||||
|
|
||||||
let renderer: Renderer;
|
let render_task: RenderTask;
|
||||||
let resource_task: ResourceTask;
|
let resource_task: ResourceTask;
|
||||||
let image_cache_task: ImageCacheTask;
|
let image_cache_task: ImageCacheTask;
|
||||||
let layout: Layout;
|
let layout: Layout;
|
||||||
|
@ -27,13 +29,13 @@ struct Engine<C:Compositor send copy> {
|
||||||
new(+compositor: C) {
|
new(+compositor: C) {
|
||||||
self.compositor = compositor;
|
self.compositor = compositor;
|
||||||
|
|
||||||
let renderer = Renderer(compositor);
|
let render_task = RenderTask(compositor);
|
||||||
let resource_task = ResourceTask();
|
let resource_task = ResourceTask();
|
||||||
let image_cache_task = image_cache_task(resource_task);
|
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);
|
let content = create_content(layout, compositor, resource_task);
|
||||||
|
|
||||||
self.renderer = renderer;
|
self.render_task = render_task;
|
||||||
self.resource_task = resource_task;
|
self.resource_task = resource_task;
|
||||||
self.image_cache_task = image_cache_task;
|
self.image_cache_task = image_cache_task;
|
||||||
self.layout = layout;
|
self.layout = layout;
|
||||||
|
@ -66,8 +68,8 @@ struct Engine<C:Compositor send copy> {
|
||||||
let (response_chan, response_port) =
|
let (response_chan, response_port) =
|
||||||
pipes::stream();
|
pipes::stream();
|
||||||
|
|
||||||
self.renderer.send(
|
self.render_task.send(
|
||||||
renderer::ExitMsg(response_chan));
|
render_task::ExitMsg(response_chan));
|
||||||
response_port.recv();
|
response_port.recv();
|
||||||
|
|
||||||
self.image_cache_task.exit();
|
self.image_cache_task.exit();
|
||||||
|
|
13
src/servo/gfx/compositor.rs
Normal file
13
src/servo/gfx/compositor.rs
Normal 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>);
|
||||||
|
}
|
||||||
|
|
|
@ -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::bindgen;
|
||||||
import cairo_bg::{cairo_image_surface_create, cairo_surface_destroy,
|
import cairo_bg::{cairo_image_surface_create, cairo_surface_destroy,
|
||||||
cairo_surface_write_to_png_stream};
|
cairo_surface_write_to_png_stream};
|
||||||
import renderer::{Renderer, Compositor, RenderMsg};
|
import compositor::Compositor;
|
||||||
|
import render_task::{RenderTask, RenderMsg};
|
||||||
import task::spawn_listener;
|
import task::spawn_listener;
|
||||||
import comm::{Chan, Port, chan, port};
|
import comm::{Chan, Port, chan, port};
|
||||||
import unsafe::reinterpret_cast;
|
import unsafe::reinterpret_cast;
|
||||||
|
@ -86,12 +87,12 @@ fn do_draw(sender: pipes::chan<DrawTarget>,
|
||||||
fn sanity_check() {
|
fn sanity_check() {
|
||||||
do listen |self_channel| {
|
do listen |self_channel| {
|
||||||
let compositor = PngCompositor(self_channel);
|
let compositor = PngCompositor(self_channel);
|
||||||
let renderer = Renderer(compositor);
|
let renderer = RenderTask(compositor);
|
||||||
|
|
||||||
let dlist : display_list = dvec();
|
let dlist : display_list = dvec();
|
||||||
renderer.send(RenderMsg(dlist));
|
renderer.send(RenderMsg(dlist));
|
||||||
let (exit_chan, exit_response_from_engine) = pipes::stream();
|
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();
|
exit_response_from_engine.recv();
|
||||||
|
|
||||||
compositor.send(Exit)
|
compositor.send(Exit)
|
||||||
|
|
|
@ -8,7 +8,6 @@ import azure::bindgen::*;
|
||||||
import libc::size_t;
|
import libc::size_t;
|
||||||
import text::font::Font;
|
import text::font::Font;
|
||||||
import text::text_run::TextRun;
|
import text::text_run::TextRun;
|
||||||
import dom::event::{Event, ResizeEvent};
|
|
||||||
import geom::size::Size2D;
|
import geom::size::Size2D;
|
||||||
import geom::rect::Rect;
|
import geom::rect::Rect;
|
||||||
import geom::point::Point2D;
|
import geom::point::Point2D;
|
||||||
|
@ -18,6 +17,7 @@ import ptr::addr_of;
|
||||||
import std::arc::arc;
|
import std::arc::arc;
|
||||||
import azure::cairo::{cairo_font_face_t, cairo_scaled_font_t};
|
import azure::cairo::{cairo_font_face_t, cairo_scaled_font_t};
|
||||||
import std::cell::Cell;
|
import std::cell::Cell;
|
||||||
|
import compositor::Compositor;
|
||||||
|
|
||||||
import pipes::{port, chan};
|
import pipes::{port, chan};
|
||||||
|
|
||||||
|
@ -28,17 +28,9 @@ enum Msg {
|
||||||
ExitMsg(pipes::chan<()>)
|
ExitMsg(pipes::chan<()>)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[doc = "
|
type RenderTask = comm::Chan<Msg>;
|
||||||
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>);
|
|
||||||
}
|
|
||||||
|
|
||||||
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>| {
|
do task::spawn_listener |po: comm::Port<Msg>| {
|
||||||
let (draw_target_ch, draw_target_po) = pipes::stream();
|
let (draw_target_ch, draw_target_po) = pipes::stream();
|
||||||
let mut draw_target_ch = draw_target_ch;
|
let mut draw_target_ch = draw_target_ch;
|
|
@ -9,7 +9,6 @@ import geom::point::Point2D;
|
||||||
import geom::rect::Rect;
|
import geom::rect::Rect;
|
||||||
import geom::size::Size2D;
|
import geom::size::Size2D;
|
||||||
import gfx::geometry::{au, au_to_px, box, px_to_au};
|
import gfx::geometry::{au, au_to_px, box, px_to_au};
|
||||||
import gfx::renderer;
|
|
||||||
import util::tree;
|
import util::tree;
|
||||||
|
|
||||||
import dvec::dvec;
|
import dvec::dvec;
|
||||||
|
|
|
@ -8,7 +8,8 @@ import display_list_builder::build_display_list;
|
||||||
import dom::base::Node;
|
import dom::base::Node;
|
||||||
import dom::style::Stylesheet;
|
import dom::style::Stylesheet;
|
||||||
import gfx::geometry::px_to_au;
|
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 resource::image_cache_task::ImageCacheTask;
|
||||||
import std::net::url::url;
|
import std::net::url::url;
|
||||||
import style::apply::apply_style;
|
import style::apply::apply_style;
|
||||||
|
@ -25,7 +26,7 @@ enum Msg {
|
||||||
ExitMsg
|
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| {
|
do spawn_listener::<Msg>|request| {
|
||||||
loop {
|
loop {
|
||||||
match request.recv() {
|
match request.recv() {
|
||||||
|
@ -52,7 +53,7 @@ fn Layout(renderer: Renderer, image_cache_task: ImageCacheTask) -> Layout {
|
||||||
this_box.reflow_subtree(px_to_au(800));
|
this_box.reflow_subtree(px_to_au(800));
|
||||||
|
|
||||||
let dlist = build_display_list(this_box);
|
let dlist = build_display_list(this_box);
|
||||||
renderer.send(renderer::RenderMsg(dlist));
|
render_task.send(render_task::RenderMsg(dlist));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import azure::cairo_hl::ImageSurface;
|
||||||
import comm::*;
|
import comm::*;
|
||||||
import dvec::{DVec, dvec};
|
import dvec::{DVec, dvec};
|
||||||
import azure::cairo::cairo_surface_t;
|
import azure::cairo::cairo_surface_t;
|
||||||
import gfx::renderer::Compositor;
|
import gfx::compositor::Compositor;
|
||||||
import dom::event::{Event, ResizeEvent};
|
import dom::event::{Event, ResizeEvent};
|
||||||
import layers::ImageLayer;
|
import layers::ImageLayer;
|
||||||
import geom::size::Size2D;
|
import geom::size::Size2D;
|
||||||
|
|
|
@ -32,7 +32,8 @@ mod dom {
|
||||||
mod gfx {
|
mod gfx {
|
||||||
mod geometry;
|
mod geometry;
|
||||||
mod surface;
|
mod surface;
|
||||||
mod renderer;
|
mod render_task;
|
||||||
|
mod compositor;
|
||||||
mod png_compositor;
|
mod png_compositor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import comm::*;
|
import comm::*;
|
||||||
import option::swap_unwrap;
|
import option::swap_unwrap;
|
||||||
import gfx::renderer;
|
|
||||||
import platform::osmain;
|
import platform::osmain;
|
||||||
import osmain::{OSMain, AddKeyHandler};
|
import osmain::{OSMain, AddKeyHandler};
|
||||||
import opts::{Opts, Screen, Png};
|
import opts::{Opts, Screen, Png};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue