Moved client to iced-rs, todos example

This commit is contained in:
2024-06-19 13:35:39 -04:00
Unverified
parent bafbdc9b36
commit 66849dba55
14 changed files with 571 additions and 191 deletions

View File

@@ -1,45 +1,12 @@
#![warn(clippy::all, rust_2018_idioms)]
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
use realm_client::Realm;
// When compiling natively:
#[cfg(not(target_arch = "wasm32"))]
fn main() -> eframe::Result<()> {
env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`).
pub fn main() -> iced::Result {
tracing_subscriber::fmt::init();
let native_options = eframe::NativeOptions {
viewport: egui::ViewportBuilder::default()
.with_inner_size([1280.0, 720.0])
.with_min_inner_size([300.0, 220.0])
.with_icon(
// NOTE: Adding an icon is optional
eframe::icon_data::from_png_bytes(&include_bytes!("../assets/icon-256.png")[..])
.expect("Failed to load icon"),
),
..Default::default()
};
eframe::run_native(
"Realm Chat",
native_options,
Box::new(|cc| Box::new(realm_client::RealmApp::new(cc))),
)
}
// When compiling to web using trunk:
#[cfg(target_arch = "wasm32")]
fn main() {
// Redirect `log` message to `console.log` and friends:
eframe::WebLogger::init(log::LevelFilter::Debug).ok();
let web_options = eframe::WebOptions::default();
wasm_bindgen_futures::spawn_local(async {
eframe::WebRunner::new()
.start(
"the_canvas_id", // hardcode it
web_options,
Box::new(|cc| Box::new(eframe_template::TemplateApp::new(cc))),
)
.await
.expect("failed to start eframe");
});
iced::program(Realm::title, Realm::update, Realm::view)
.load(Realm::load)
.subscription(Realm::subscription)
.font(include_bytes!("../assets/icons.ttf").as_slice())
.window_size((1280.0, 720.0))
.run()
}