mirror of
https://github.com/CrispyPin/julia-fractal-renderer.git
synced 2024-11-09 20:20:25 +01:00
Compare commits
2 commits
f4394ad273
...
0052bd1686
Author | SHA1 | Date | |
---|---|---|---|
0052bd1686 | |||
af608fdab0 |
3 changed files with 39 additions and 877 deletions
851
Cargo.lock
generated
851
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -1,12 +1,15 @@
|
|||
[package]
|
||||
name = "julia-fractal-renderer"
|
||||
version = "1.0.0"
|
||||
version = "1.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
eframe = "0.22.0"
|
||||
eframe = { version = "0.22.0", default-features = false, features = [
|
||||
"glow",
|
||||
"default_fonts",
|
||||
] }
|
||||
image = { version = "0.24.6", default-features = false, features = ["png"] }
|
||||
native-dialog = "0.6.4"
|
||||
rand = "0.8.5"
|
||||
|
|
58
src/main.rs
58
src/main.rs
|
@ -229,27 +229,26 @@ impl eframe::App for JuliaGUI {
|
|||
.exact_width(200.0)
|
||||
.show(ctx, |ui| {
|
||||
ui.label(format!(
|
||||
"Preview render took {:.2}ms",
|
||||
self.preview_render_ms
|
||||
"Preview render took {}",
|
||||
format_time(self.preview_render_ms, true)
|
||||
));
|
||||
|
||||
let set_point_vis = ui.checkbox(&mut self.preview_point, "View C point");
|
||||
ui.label("C point (X, Y):");
|
||||
let set_point_vis = ui.checkbox(&mut self.preview_point, "View offset point");
|
||||
ui.label("Offset point (x, y):");
|
||||
let set_cx =
|
||||
ui.add(Slider::new(&mut self.settings.cx, -1.0..=1.0).clamp_to_range(false));
|
||||
let set_cy =
|
||||
ui.add(Slider::new(&mut self.settings.cy, -1.0..=1.0).clamp_to_range(false));
|
||||
ui.label("render width:");
|
||||
ui.label("Width:");
|
||||
let set_unit_width = ui.add(Slider::new(&mut self.settings.unit_width, 0.1..=6.0));
|
||||
ui.label("Fill style:");
|
||||
ui.horizontal(|ui| {
|
||||
let set_black =
|
||||
ui.radio_value(&mut self.settings.fill_style, FillStyle::Black, "Black");
|
||||
let set_bright =
|
||||
ui.radio_value(&mut self.settings.fill_style, FillStyle::Bright, "Bright");
|
||||
if set_bright.changed() || set_black.changed() {
|
||||
self.settings_changed = true;
|
||||
}
|
||||
ui.label("Fill style:");
|
||||
self.settings_changed |= ui
|
||||
.radio_value(&mut self.settings.fill_style, FillStyle::Black, "Black")
|
||||
.changed();
|
||||
self.settings_changed |= ui
|
||||
.radio_value(&mut self.settings.fill_style, FillStyle::Bright, "Bright")
|
||||
.changed();
|
||||
});
|
||||
|
||||
ui.horizontal(|ui| {
|
||||
|
@ -370,24 +369,19 @@ impl eframe::App for JuliaGUI {
|
|||
|
||||
let predicted_render_time = (self.preview_render_ms
|
||||
* (1 << (self.export_res_power * 2)) as f64
|
||||
* (self.export_max_iter as f64 / self.settings.max_iter as f64)
|
||||
/ 1000.0)
|
||||
* (self.export_max_iter as f64 / self.settings.max_iter as f64))
|
||||
.floor();
|
||||
if predicted_render_time < 60.0 {
|
||||
ui.label(format!("Predicted render time: {predicted_render_time}s"));
|
||||
} else {
|
||||
ui.label(format!(
|
||||
"Predicted render time: {:.1} min",
|
||||
predicted_render_time / 60.0
|
||||
));
|
||||
}
|
||||
ui.label(format!(
|
||||
"Predicted render time: {}",
|
||||
format_time(predicted_render_time, false)
|
||||
));
|
||||
|
||||
ui.label(
|
||||
self.export_render_ms
|
||||
.map(|ms| format!("took {ms:.2}ms"))
|
||||
.map(|ms| format!("Took {}", format_time(ms, true)))
|
||||
.unwrap_or_default(),
|
||||
);
|
||||
ui.label(format!("version {}", env!("CARGO_PKG_VERSION")));
|
||||
ui.label(format!("Version: {}", env!("CARGO_PKG_VERSION")));
|
||||
|
||||
if set_cx.changed()
|
||||
|| set_cy.changed() || set_unit_width.changed()
|
||||
|
@ -415,3 +409,17 @@ impl eframe::App for JuliaGUI {
|
|||
self.render_thread_handle.take().unwrap().join().unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
fn format_time(ms: f64, precise: bool) -> String {
|
||||
if ms < 1000.0 {
|
||||
if precise {
|
||||
format!("{ms:.2}ms")
|
||||
} else {
|
||||
"<1s".into()
|
||||
}
|
||||
} else if ms < 60_000.0 {
|
||||
format!("{:.1}s", ms / 1000.0)
|
||||
} else {
|
||||
format!("{:.1}m", ms / 60_000.0)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue