From 42e23a48d76b5f94acdee34aff54e859797e71ec Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Mon, 8 Aug 2022 02:45:20 +0200 Subject: [PATCH] exporter: Use rayon to export files in parallel --- Cargo.lock | 1 + exporter/Cargo.toml | 1 + exporter/src/main.rs | 7 +++++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0ef91871f..89b6fec18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1224,6 +1224,7 @@ dependencies = [ "image", "indicatif", "log", + "rayon", "ruffle_core", "ruffle_render_wgpu", "walkdir", diff --git a/exporter/Cargo.toml b/exporter/Cargo.toml index 791f55440..57b37de1c 100644 --- a/exporter/Cargo.toml +++ b/exporter/Cargo.toml @@ -15,6 +15,7 @@ log = "0.4" walkdir = "2.3.2" indicatif = "0.17" anyhow = "1.0" +rayon = "1.5.3" [features] avm_debug = ["ruffle_core/avm_debug"] diff --git a/exporter/src/main.rs b/exporter/src/main.rs index 3d8f0cf30..82653a1ec 100644 --- a/exporter/src/main.rs +++ b/exporter/src/main.rs @@ -2,6 +2,7 @@ use anyhow::{anyhow, Result}; use clap::Parser; use image::RgbaImage; use indicatif::{ProgressBar, ProgressStyle}; +use rayon::prelude::*; use ruffle_core::tag_utils::SwfMovie; use ruffle_core::PlayerBuilder; use ruffle_render_wgpu::clap::{GraphicsBackend, PowerPreference}; @@ -272,7 +273,7 @@ fn capture_multiple_swfs(descriptors: Arc, opt: &Opt) -> Result<()> None }; - for file in &files { + files.par_iter().try_for_each(|file| -> Result<()> { let frames = take_screenshot( descriptors.clone(), file.path(), @@ -317,7 +318,9 @@ fn capture_multiple_swfs(descriptors: Arc, opt: &Opt) -> Result<()> image.save(&destination)?; } } - } + + Ok(()) + })?; let message = if opt.frames == 1 { format!(