mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35:33 +01:00
Use a SyncImageCacheTask on the PNG pipeline
This commit is contained in:
parent
18c4263663
commit
ec71456bcf
2 changed files with 20 additions and 4 deletions
|
@ -1,4 +1,4 @@
|
||||||
export EngineTask, EngineProto;
|
export EngineTask, EngineTask_, EngineProto;
|
||||||
|
|
||||||
import gfx::compositor::Compositor;
|
import gfx::compositor::Compositor;
|
||||||
import gfx::render_task;
|
import gfx::render_task;
|
||||||
|
@ -23,11 +23,19 @@ fn macros() {
|
||||||
type EngineTask = EngineProto::client::Running;
|
type EngineTask = EngineProto::client::Running;
|
||||||
|
|
||||||
fn EngineTask<C: Compositor send copy>(+compositor: C) -> EngineTask {
|
fn EngineTask<C: Compositor send copy>(+compositor: C) -> EngineTask {
|
||||||
|
let resource_task = ResourceTask();
|
||||||
|
let image_cache_task = ImageCacheTask(resource_task);
|
||||||
|
EngineTask_(compositor, resource_task, image_cache_task)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn EngineTask_<C: Compositor send copy>(
|
||||||
|
+compositor: C,
|
||||||
|
resource_task: ResourceTask,
|
||||||
|
image_cache_task: ImageCacheTask
|
||||||
|
) -> EngineTask {
|
||||||
do spawn_service(EngineProto::init) |request, move compositor| {
|
do spawn_service(EngineProto::init) |request, move compositor| {
|
||||||
|
|
||||||
let render_task = RenderTask(compositor);
|
let render_task = RenderTask(compositor);
|
||||||
let resource_task = ResourceTask();
|
|
||||||
let image_cache_task = ImageCacheTask(resource_task);
|
|
||||||
let layout_task = LayoutTask(render_task, image_cache_task);
|
let layout_task = LayoutTask(render_task, image_cache_task);
|
||||||
let content_task = ContentTask(layout_task, compositor, resource_task);
|
let content_task = ContentTask(layout_task, compositor, resource_task);
|
||||||
|
|
||||||
|
|
|
@ -69,10 +69,18 @@ fn run_pipeline_png(-url: ~str, outfile: ~str) {
|
||||||
import png_compositor::PngCompositor;
|
import png_compositor::PngCompositor;
|
||||||
import result::{ok, err};
|
import result::{ok, err};
|
||||||
import io::{Writer, buffered_file_writer};
|
import io::{Writer, buffered_file_writer};
|
||||||
|
import resource::resource_task::ResourceTask;
|
||||||
|
import resource::image_cache_task::SyncImageCacheTask;
|
||||||
|
import engine::EngineTask_;
|
||||||
|
|
||||||
listen(|pngdata_from_compositor| {
|
listen(|pngdata_from_compositor| {
|
||||||
let compositor = PngCompositor(pngdata_from_compositor);
|
let compositor = PngCompositor(pngdata_from_compositor);
|
||||||
let engine_task = EngineTask(compositor);
|
let resource_task = ResourceTask();
|
||||||
|
// For the PNG pipeline we are using a synchronous image cache
|
||||||
|
// so that all requests will be fullfilled before the first
|
||||||
|
// render
|
||||||
|
let image_cache_task = SyncImageCacheTask(resource_task);
|
||||||
|
let engine_task = EngineTask_(compositor, resource_task, image_cache_task);
|
||||||
let engine_task = EngineProto::client::LoadURL(engine_task, make_url(url, none));
|
let engine_task = EngineProto::client::LoadURL(engine_task, make_url(url, none));
|
||||||
|
|
||||||
match buffered_file_writer(outfile) {
|
match buffered_file_writer(outfile) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue