aboutsummaryrefslogtreecommitdiff
path: root/server/replaytool/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/replaytool/src/main.rs')
-rw-r--r--server/replaytool/src/main.rs45
1 files changed, 8 insertions, 37 deletions
diff --git a/server/replaytool/src/main.rs b/server/replaytool/src/main.rs
index a9032a61..1e5be601 100644
--- a/server/replaytool/src/main.rs
+++ b/server/replaytool/src/main.rs
@@ -21,7 +21,11 @@ pub mod record;
pub mod render;
pub mod replay;
-use crate::{record::record, render::render, replay::replay};
+use crate::{
+ record::record,
+ render::{render, RenderArgs},
+ replay::replay,
+};
use clap::Parser;
use hurrycurry_protocol::PacketC;
use log::{info, warn, LevelFilter};
@@ -45,23 +49,7 @@ enum Args {
/// Starts a local server that replays previously recorded sessions
Replay { input: PathBuf },
/// Runs a replay server and the client in movie mode to record that replay
- Render {
- /// Replay file path
- input: PathBuf,
- /// Output video file path passed to godot (must end in either .avi for MJPEG or .png for PNG sequence)
- output: PathBuf,
- #[arg(short = 'r', long, default_value = "30")]
- framerate: usize,
- /// Render without display server; Requires wlheadless-run and mutter
- #[arg(short = 'H', long)]
- headless: bool,
- #[arg(long, default_value = "wayland")]
- video_driver: String,
- #[arg(long, default_value = "vulkan")]
- rendering_driver: String,
- #[arg(long, default_value = "mutter")]
- headless_compositor: String,
- },
+ Render(#[command(flatten)] RenderArgs),
}
#[derive(Serialize, Deserialize)]
@@ -118,25 +106,8 @@ async fn main() -> anyhow::Result<()> {
replay(&ws_listener, &input).await?;
}
}
- Args::Render {
- input,
- output,
- framerate,
- headless,
- rendering_driver,
- headless_compositor,
- video_driver,
- } => {
- render(
- &input,
- &output,
- framerate,
- headless,
- &rendering_driver,
- &video_driver,
- &headless_compositor,
- )
- .await?;
+ Args::Render(a) => {
+ render(a).await?;
}
}
Ok(())