From 68761608fc1093b1c75d7944a401be5527044ba9 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Fri, 3 Feb 2023 16:59:18 +0100 Subject: [PATCH] desktop: Add --quality option --- Cargo.lock | 1 + desktop/Cargo.toml | 2 +- desktop/src/main.rs | 5 +++++ render/Cargo.toml | 1 + render/src/quality.rs | 1 + 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index fbbadfab1..16b0ec7a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3561,6 +3561,7 @@ name = "ruffle_render" version = "0.1.0" dependencies = [ "approx", + "clap", "downcast-rs", "enum-map", "flate2", diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index 3d5d37e42..9f29e7e0c 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -11,7 +11,7 @@ version.workspace = true clap = { version = "4.1.4", features = ["derive"] } cpal = "0.15.0" ruffle_core = { path = "../core", features = ["audio", "clap", "mp3", "nellymoser"] } -ruffle_render = { path = "../render" } +ruffle_render = { path = "../render", features = ["clap"] } ruffle_render_wgpu = { path = "../render/wgpu", features = ["clap"] } ruffle_video_software = { path = "../video/software", optional = true } tracing-subscriber = { version = "0.3.16", features = ["env-filter"] } diff --git a/desktop/src/main.rs b/desktop/src/main.rs index 81807e772..0922ae73c 100644 --- a/desktop/src/main.rs +++ b/desktop/src/main.rs @@ -25,6 +25,7 @@ use ruffle_core::{ PlayerEvent, StageDisplayState, StaticCallstack, ViewportDimensions, }; use ruffle_render::backend::RenderBackend; +use ruffle_render::quality::StageQuality; use ruffle_render_wgpu::backend::WgpuRenderBackend; use ruffle_render_wgpu::clap::{GraphicsBackend, PowerPreference}; use std::cell::RefCell; @@ -90,6 +91,10 @@ struct Opt { #[clap(long, display_order = 2)] height: Option, + /// Default quality of the movie. + #[clap(long, short, default_value = "high")] + quality: StageQuality, + /// Location to store a wgpu trace output #[clap(long)] #[cfg(feature = "render_trace")] diff --git a/render/Cargo.toml b/render/Cargo.toml index 8cdaa2572..8f5c37f94 100644 --- a/render/Cargo.toml +++ b/render/Cargo.toml @@ -22,6 +22,7 @@ wasm-bindgen = { version = "=0.2.83", optional = true } gc-arena = { workspace = true } enum-map = "2.4.2" serde = "1.0.152" +clap = { version = "4.1.4", features = ["derive"], optional = true } [dependencies.jpeg-decoder] version = "0.3.0" diff --git a/render/src/quality.rs b/render/src/quality.rs index 10b0f5c84..9f8422814 100644 --- a/render/src/quality.rs +++ b/render/src/quality.rs @@ -9,6 +9,7 @@ use std::str::FromStr; /// In the Flash Player, this settings affects anti-aliasing and bitmap smoothing. /// These settings currently have no effect in Ruffle, but the active setting is still stored. /// [StageQuality in the AS3 Reference](https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/StageQuality.html) +#[cfg_attr(feature = "clap", derive(clap::ValueEnum))] #[derive(Default, Clone, Collect, Copy, Debug, Eq, PartialEq)] #[collect(require_static)] pub enum StageQuality {