blob: 6d9fca9dd9a6388517d5f35f0a69bfaa481459da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
mod client_logger;
mod webhogg_exception;
mod canvas;
use wasm_bindgen::prelude::*;
use web_sys::Worker;
use web_sys::OffscreenCanvas as ECanvas;
#[macro_use]
extern crate log;
#[wasm_bindgen]
pub fn game_logic_entry(worker: web_sys::Worker) {
client_logger::init_logger();
info!("hello from game logic wasm");
worker.post_message(&wasm_bindgen::JsValue::from_str("premsg frm wasm_gLe"))
.unwrap();
info!("game logic terminated");
}
#[wasm_bindgen]
pub fn graphics_entry(worker: web_sys::DedicatedWorkerGlobalScope,
ecanvas: JsValue) {
client_logger::init_logger();
let ecanvas: ECanvas = js_sys::Reflect::get(&ecanvas,
&wasm_bindgen::JsValue::from_str("canvas"))
.map_err(|e| error!("could not load canvas"))
.unwrap().into();
info!("hello from graphics wasm {:?}", ecanvas);
let handler = wasm_bindgen::closure::Closure::once_into_js(
(|e: web_sys::MessageEvent| {
info!("things are getting wired: {:?}", e.data());
}));
worker.set_onmessage(Some(&js_sys::Function::from(handler)));
let canvas = canvas::Canvas::from_existing(&ecanvas)
.map_err(|e| error!("{}", e))
.unwrap();
info!("graphics terminated");
}
|