mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15: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::render_task;
|
||||
|
@ -23,11 +23,19 @@ fn macros() {
|
|||
type EngineTask = EngineProto::client::Running;
|
||||
|
||||
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| {
|
||||
|
||||
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 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 result::{ok, err};
|
||||
import io::{Writer, buffered_file_writer};
|
||||
import resource::resource_task::ResourceTask;
|
||||
import resource::image_cache_task::SyncImageCacheTask;
|
||||
import engine::EngineTask_;
|
||||
|
||||
listen(|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));
|
||||
|
||||
match buffered_file_writer(outfile) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue