diff --git a/src/generate.rs b/src/generate.rs index 616e786..babe5da 100644 --- a/src/generate.rs +++ b/src/generate.rs @@ -8,7 +8,6 @@ pub struct RenderOptions { pub width: usize, pub height: usize, pub unit_width: f64, - #[serde(alias = "iterations")] pub max_iter: u16, pub cx: f64, pub cy: f64, diff --git a/src/main.rs b/src/main.rs index f5113b3..2ad86de 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,25 +39,20 @@ fn main() { #[derive(Serialize, Deserialize)] struct JuliaGUI { color: (u8, u8, u8), - settings: RenderOptions, - export_res_power: u8, - #[serde(alias = "export_iterations")] - export_max_iter: u16, - preview_point: bool, - #[serde(default = "default_color_presets")] - color_presets: Vec<(String, (u8, u8, u8))>, #[serde(skip)] preview: Option, + settings: RenderOptions, #[serde(skip)] preview_render_ms: f64, #[serde(skip)] export_render_ms: Option, + export_res_power: u8, + export_max_iter: u16, #[serde(skip)] export_path: PathBuf, #[serde(skip)] settings_changed: bool, - #[serde(skip)] - new_color_preset_name: String, + preview_point: bool, #[serde(skip)] render_thread_handle: Option>, #[serde(skip)] @@ -68,17 +63,6 @@ struct JuliaGUI { waiting: bool, } -fn default_color_presets() -> Vec<(String, (u8, u8, u8))> { - vec![ - ("pink".into(), (8, 2, 6)), - ("blue".into(), (2, 4, 8)), - ("green".into(), (2, 8, 4)), - ("salmon".into(), (8, 4, 4)), - ("purple".into(), (5, 2, 11)), - ("yellow".into(), (9, 6, 1)), - ] -} - enum RenderJob { Render(PathBuf, RenderOptions, (u8, u8, u8)), Exit, @@ -88,15 +72,13 @@ impl Default for JuliaGUI { fn default() -> Self { Self { color: (12, 5, 10), - color_presets: default_color_presets(), - new_color_preset_name: String::new(), preview: None, settings: RenderOptions::default(), preview_render_ms: 0.0, export_render_ms: None, export_res_power: 3, export_max_iter: 512, - export_path: PathBuf::new(), + export_path: "".into(), settings_changed: true, preview_point: false, render_thread_handle: None, @@ -255,20 +237,25 @@ impl eframe::App for JuliaGUI { ui.horizontal(|ui| { ui.label("Colour (RGB)"); ui.menu_button("presets", |ui| { - let mut to_remove = None; - for (i, (name, col)) in self.color_presets.iter().enumerate() { - ui.horizontal(|ui| { - if ui.button(name).clicked() { - self.color = *col; - self.settings_changed = true; - } - if ui.button("x").clicked() { - to_remove = Some(i); - } - }); + if ui.button("pink").clicked() { + self.color = (8, 2, 6); + self.settings_changed = true; } - if let Some(i) = to_remove { - self.color_presets.remove(i); + if ui.button("blue").clicked() { + self.color = (2, 4, 8); + self.settings_changed = true; + } + if ui.button("green").clicked() { + self.color = (2, 8, 4); + self.settings_changed = true; + } + if ui.button("salmon").clicked() { + self.color = (8, 4, 4); + self.settings_changed = true; + } + if ui.button("purple").clicked() { + self.color = (5, 2, 11); + self.settings_changed = true; } if ui.button("randomise").clicked() { self.color = ( @@ -278,13 +265,6 @@ impl eframe::App for JuliaGUI { ); self.settings_changed = true; } - ui.horizontal(|ui| { - ui.text_edit_singleline(&mut self.new_color_preset_name); - if ui.button("add").clicked() { - self.color_presets - .push((self.new_color_preset_name.clone(), self.color)); - } - }) }); }); let set_red = ui.add(Slider::new(&mut self.color.0, 0..=16)); @@ -408,10 +388,10 @@ impl eframe::App for JuliaGUI { } fn on_exit(&mut self, _gl: Option<&eframe::glow::Context>) { - self.save_settings(); if let Some(channel) = &self.render_thread { channel.send(RenderJob::Exit).unwrap(); } self.render_thread_handle.take().unwrap().join().unwrap(); + self.save_settings(); } }