Build for web
This commit is contained in:
		
							parent
							
								
									619f9594cf
								
							
						
					
					
						commit
						ff60439dd5
					
				| 
						 | 
				
			
			@ -2467,6 +2467,8 @@ dependencies = [
 | 
			
		|||
 "log",
 | 
			
		||||
 "plate-tool-lib",
 | 
			
		||||
 "serde",
 | 
			
		||||
 "wasm-bindgen-futures",
 | 
			
		||||
 "web-sys",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
/target
 | 
			
		||||
/dist
 | 
			
		||||
| 
						 | 
				
			
			@ -13,5 +13,17 @@ eframe = { version = "0.30", default-features = false, features = [
 | 
			
		|||
]}
 | 
			
		||||
 | 
			
		||||
log = "0.4"
 | 
			
		||||
env_logger = "0.11"
 | 
			
		||||
serde = { version = "1.0", features = ["derive"] }
 | 
			
		||||
 | 
			
		||||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
 | 
			
		||||
env_logger = "0.11"
 | 
			
		||||
 | 
			
		||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
 | 
			
		||||
wasm-bindgen-futures = "0.4"
 | 
			
		||||
web-sys = "0.3"
 | 
			
		||||
 | 
			
		||||
#[profile.release]
 | 
			
		||||
#opt-level = 2
 | 
			
		||||
 | 
			
		||||
#[profile.dev.package."*"]
 | 
			
		||||
#opt-level = 2
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
[build]
 | 
			
		||||
target = "index.html"
 | 
			
		||||
release = true
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,53 @@
 | 
			
		|||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
    <head>
 | 
			
		||||
        <meta charset="utf-8" />
 | 
			
		||||
        <link data-trunk rel="rust" data-bin="plate-tool-eframe" />
 | 
			
		||||
        <title>Plate Tool</title>
 | 
			
		||||
<style>
 | 
			
		||||
html {
 | 
			
		||||
            /* Remove touch delay: */
 | 
			
		||||
            touch-action: manipulation;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        body {
 | 
			
		||||
            /* Light mode background color for what is not covered by the egui canvas,
 | 
			
		||||
            or where the egui canvas is translucent. */
 | 
			
		||||
            background: #909090;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @media (prefers-color-scheme: dark) {
 | 
			
		||||
            body {
 | 
			
		||||
                /* Dark mode background color for what is not covered by the egui canvas,
 | 
			
		||||
                or where the egui canvas is translucent. */
 | 
			
		||||
                background: #404040;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Allow canvas to fill entire web page: */
 | 
			
		||||
        html,
 | 
			
		||||
        body {
 | 
			
		||||
            overflow: hidden;
 | 
			
		||||
            margin: 0 !important;
 | 
			
		||||
            padding: 0 !important;
 | 
			
		||||
            height: 100%;
 | 
			
		||||
            width: 100%;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Make canvas fill entire document: */
 | 
			
		||||
        canvas {
 | 
			
		||||
            margin-right: auto;
 | 
			
		||||
            margin-left: auto;
 | 
			
		||||
            display: block;
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            top: 0;
 | 
			
		||||
            left: 0;
 | 
			
		||||
            width: 100%;
 | 
			
		||||
            height: 100%;
 | 
			
		||||
        }
 | 
			
		||||
</style>
 | 
			
		||||
    </head>
 | 
			
		||||
    <body>
 | 
			
		||||
        <canvas id="main_canvas"></canvas>
 | 
			
		||||
    </body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,18 +1,48 @@
 | 
			
		|||
use eframe::*;
 | 
			
		||||
use eframe::egui;
 | 
			
		||||
use eframe::*;
 | 
			
		||||
 | 
			
		||||
#[cfg(not(target_arch = "wasm32"))]
 | 
			
		||||
fn main() -> eframe::Result {
 | 
			
		||||
    env_logger::init();
 | 
			
		||||
    log::info!("Shrimp!");
 | 
			
		||||
 | 
			
		||||
    let native_options = eframe::NativeOptions {
 | 
			
		||||
        viewport: egui::ViewportBuilder::default()
 | 
			
		||||
            .with_title("Shrimp"),
 | 
			
		||||
        viewport: egui::ViewportBuilder::default().with_title("Shrimp"),
 | 
			
		||||
        ..Default::default()
 | 
			
		||||
    };
 | 
			
		||||
    eframe::run_native(
 | 
			
		||||
        "PlateToolEframe",
 | 
			
		||||
        native_options,
 | 
			
		||||
        Box::new(|cc| Ok(Box::new(plate_tool_eframe::PlateToolEframe::new(cc))))
 | 
			
		||||
        Box::new(|cc| Ok(Box::new(plate_tool_eframe::PlateToolEframe::new(cc)))),
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(target_arch = "wasm32")]
 | 
			
		||||
fn main() {
 | 
			
		||||
    use eframe::wasm_bindgen::JsCast as _;
 | 
			
		||||
 | 
			
		||||
    eframe::WebLogger::init(log::LevelFilter::Info).ok();
 | 
			
		||||
 | 
			
		||||
    let web_options = eframe::WebOptions::default();
 | 
			
		||||
 | 
			
		||||
    wasm_bindgen_futures::spawn_local(async {
 | 
			
		||||
        let document = web_sys::window()
 | 
			
		||||
            .expect("No window")
 | 
			
		||||
            .document()
 | 
			
		||||
            .expect("No document");
 | 
			
		||||
 | 
			
		||||
        let canvas = document
 | 
			
		||||
            .get_element_by_id("main_canvas")
 | 
			
		||||
            .expect("Canvas id not found")
 | 
			
		||||
            .dyn_into::<web_sys::HtmlCanvasElement>()
 | 
			
		||||
            .expect("Canvas was not a HtmlCanvasElement");
 | 
			
		||||
 | 
			
		||||
        let start_result = eframe::WebRunner::new()
 | 
			
		||||
            .start(
 | 
			
		||||
                canvas,
 | 
			
		||||
                web_options,
 | 
			
		||||
                Box::new(|cc| Ok(Box::new(plate_tool_eframe::PlateToolEframe::new(cc)))),
 | 
			
		||||
            )
 | 
			
		||||
            .await;
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue