facett-simview/examples/native.rs
//! The Simulate viewer in a native window, over the in-process mock (no server):
//!
//! ```text
//! cargo run --release -p facett-simview --example native -- 110000
//! cargo run --release -p facett-simview --example native --features gpu -- 110000
//! ```
//!
//! With `--features gpu` the 3D cloud draws on the shared instanced GPU cloud renderer
//! (installed here from eframe's render state, as facet-wrapped does in the browser);
//! without it the CPU painter draws a depth-strided sample.
use facett_simview::SimView;
use facett_simview::mock::{MockBackend, MockServer};
use facett_wasm_demo::FacetApp;
fn main() {
let persons: usize = std::env::args().nth(1).and_then(|a| a.parse().ok()).unwrap_or(110_000);
let backend = MockBackend::new(MockServer::new(persons));
let run = facett_wasm_demo::NativeDemo::new(format!("facett-simview — {persons} persons (mock)"))
.with_inner_size([1500.0, 900.0])
.run(move |cc| {
#[cfg(feature = "gpu")]
if let Some(rs) = cc.wgpu_render_state.as_ref() {
facett_core::render::gpu::graphcloud::cloud::install_cloud_renderer(rs);
}
let _ = cc;
FacetApp::boxed(Box::new(SimView::new(Box::new(backend))))
});
if let Err(e) = run {
eprintln!("facett-simview: {e}");
std::process::exit(1);
}
}