summaryrefslogtreecommitdiff
path: root/racer-tracer/src/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'racer-tracer/src/config.rs')
-rw-r--r--racer-tracer/src/config.rs32
1 files changed, 29 insertions, 3 deletions
diff --git a/racer-tracer/src/config.rs b/racer-tracer/src/config.rs
index 3992176..7d28ebe 100644
--- a/racer-tracer/src/config.rs
+++ b/racer-tracer/src/config.rs
@@ -6,13 +6,13 @@ use structopt::StructOpt;
use crate::error::TracerError;
-#[derive(Default, Debug, Deserialize)]
+#[derive(Default, Clone, Debug, Deserialize)]
pub struct Screen {
pub height: usize,
pub width: usize,
}
-#[derive(Default, Debug, Deserialize)]
+#[derive(Default, Clone, Debug, Deserialize)]
pub struct RenderConfigData {
pub samples: usize,
pub max_depth: usize,
@@ -93,6 +93,23 @@ pub enum ImageAction {
SavePng,
}
+#[derive(StructOpt, Debug, Clone, Deserialize, Default)]
+pub enum ConfigSceneController {
+ #[default]
+ Interactive,
+}
+
+#[derive(StructOpt, Debug, Clone, Deserialize, Default)]
+pub enum Renderer {
+ #[default]
+ Cpu,
+ CpuPreview,
+}
+
+fn default_preview_renderer() -> Renderer {
+ Renderer::CpuPreview
+}
+
impl FromStr for ImageAction {
type Err = TracerError;
@@ -105,7 +122,7 @@ impl FromStr for ImageAction {
}
}
-#[derive(Default, Debug, Deserialize)]
+#[derive(Default, Clone, Debug, Deserialize)]
pub struct Config {
#[serde(default)]
pub preview: RenderConfigData,
@@ -124,6 +141,15 @@ pub struct Config {
#[serde(default)]
pub image_output_dir: Option<PathBuf>,
+
+ #[serde(default)]
+ pub scene_controller: ConfigSceneController,
+
+ #[serde(default)]
+ pub renderer: Renderer,
+
+ #[serde(default = "default_preview_renderer")]
+ pub preview_renderer: Renderer,
}
impl Config {