From 0b90b72a0012a09d23ec0589027dd428e361ea6b Mon Sep 17 00:00:00 2001 From: supersurviveur Date: Wed, 16 Sep 2026 15:41:34 +0200 Subject: [PATCH] feat: remove warning and increase performance --- Cargo.toml | 3 ++- src/fractal/renderer.rs | 2 +- src/fractal/share.rs | 25 ++++++++++++++----------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index be97af5..65d3e9a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,6 @@ bytemuck = { version = "1.25.2", features = ["derive"] } dashu-float = "0.6.0" eframe = { version = "0.36.2", default-features = false, features = ["wgpu", "default_fonts", "x11", "wayland", "accesskit"] } egui = "0.36.2" -futures-channel = { version = "0.3.34", default-features = false, features = ["alloc", "std"] } log = "0.4.34" png = "0.18.1" @@ -16,6 +15,7 @@ png = "0.18.1" env_logger = "0.11.11" [target.'cfg(target_arch = "wasm32")'.dependencies] +futures-channel = { version = "0.3.34", default-features = false, features = ["alloc", "std"] } console_error_panic_hook = "0.1.7" console_log = "1.1.0" js-sys = "0.3.105" @@ -26,6 +26,7 @@ web-sys = { version = "0.3.105", features = ["Window", "Location", "Url", "UrlSe # Release: optimize hard (fractal math is hot). [profile.release] opt-level = 3 +codegen-units = 1 # Dev: keep our own crate debuggable, but optimize dependencies (dashu, wgpu, # egui) so the explorer is actually interactive during development. diff --git a/src/fractal/renderer.rs b/src/fractal/renderer.rs index 8e03720..ce6bbf7 100644 --- a/src/fractal/renderer.rs +++ b/src/fractal/renderer.rs @@ -88,7 +88,7 @@ pub struct Uniforms { /// pixel size changes: /// * `data_view` — the iteration pass's output (see [`DATA_FORMAT`]). /// * `color_view` — the colourise pass's output; the blit source. -/// plus the bind groups that read them. +/// plus the bind groups that read them. struct CacheTarget { data_view: wgpu::TextureView, color_view: wgpu::TextureView, diff --git a/src/fractal/share.rs b/src/fractal/share.rs index 3bf8080..fff8639 100644 --- a/src/fractal/share.rs +++ b/src/fractal/share.rs @@ -33,16 +33,19 @@ impl ShareState { pub fn encode(&self) -> String { let mut s = String::new(); s.push_str(if self.julia { "m=j" } else { "m=m" }); - s.push_str(&format!("&f={}", match self.kind { - FractalKind::Mandelbrot => "mandel", - FractalKind::BurningShip => "burning", - FractalKind::Multibrot => "multi", - FractalKind::Tricorn => "tricorn", - FractalKind::Celtic => "celtic", - FractalKind::Perpendicular => "perp", - FractalKind::Buffalo => "buffalo", - FractalKind::Phoenix => "phoenix", - })); + s.push_str(&format!( + "&f={}", + match self.kind { + FractalKind::Mandelbrot => "mandel", + FractalKind::BurningShip => "burning", + FractalKind::Multibrot => "multi", + FractalKind::Tricorn => "tricorn", + FractalKind::Celtic => "celtic", + FractalKind::Perpendicular => "perp", + FractalKind::Buffalo => "buffalo", + FractalKind::Phoenix => "phoenix", + } + )); s.push_str(&format!("&pw={}", self.power)); s.push_str(&format!( "&re={}&im={}&hh={}&it={}", @@ -79,7 +82,7 @@ impl ShareState { "perp" => FractalKind::Perpendicular, "buffalo" => FractalKind::Buffalo, "phoenix" => FractalKind::Phoenix, - _ => FractalKind::Mandelbrot + _ => FractalKind::Mandelbrot, }) .unwrap_or(FractalKind::Mandelbrot), power: map.get("pw").and_then(|s| s.parse().ok()).unwrap_or(2),