diff options
Diffstat (limited to 'WebInterface/wasm/webhogg/src/canvas.rs')
-rw-r--r-- | WebInterface/wasm/webhogg/src/canvas.rs | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/WebInterface/wasm/webhogg/src/canvas.rs b/WebInterface/wasm/webhogg/src/canvas.rs index a0ef7d1..5f819e9 100644 --- a/WebInterface/wasm/webhogg/src/canvas.rs +++ b/WebInterface/wasm/webhogg/src/canvas.rs @@ -1,32 +1,26 @@ use web_sys::WebGl2RenderingContext as WebGl2; use wasm_bindgen::JsCast; use crate::webhogg_exception::WebhoggException; -use crate::page::Page; +use web_sys::OffscreenCanvas as ECanvas; pub struct Canvas { ctx: WebGl2, } impl Canvas { - pub fn from_existing(id: &str, page: &Page) -> Result<Self, WebhoggException> { - let canvas_element = page.get_element(id) - .ok_or(WebhoggException::DomError( - "could not obtain canvas element (id=canvas)" - .to_string()))?; - let canvas_element = canvas_element - .dyn_into::<web_sys::HtmlCanvasElement>() - .map_err(|_| WebhoggException::DomError( - "id=canvas is not a canvas element".to_string()))?; - debug!("successfully obtained canvas element"); - let ctx = canvas_element.get_context("webgl2") - .map_err(|_| WebhoggException::WebGlContextError( - "obtained invalid webgl2 context js value".to_string()))? + pub fn from_existing(canvas: &ECanvas) -> Result<Self, WebhoggException> { + info!("messages lol"); + let ctx = canvas.get_context("webgl2") + .map_err(|x| WebhoggException::WebGlContextError( + format!("obtained invalid webgl2 context js value: {:?}", x)))? .ok_or(WebhoggException::WebGlContextError( "could not obtaine webgl2 context".to_string()))? .dyn_into::<WebGl2>() .map_err(|_| WebhoggException::WebGlContextError( "obtained invalid webgl2 context js object".to_string()))?; - debug!("successfully obtained webgl2 context"); + info!("successfully obtained webgl2 context"); + ctx.clear_color(1.0, 0.0, 0.0, 1.0); + ctx.clear(WebGl2::COLOR_BUFFER_BIT); Ok(Self { ctx, }) |