summaryrefslogtreecommitdiff
path: root/WebInterface/wasm/webhogg/src/canvas.rs
diff options
context:
space:
mode:
Diffstat (limited to 'WebInterface/wasm/webhogg/src/canvas.rs')
-rw-r--r--WebInterface/wasm/webhogg/src/canvas.rs24
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,
})