summaryrefslogtreecommitdiff
path: root/WebInterface/wasm/webhogg/src/canvas.rs
diff options
context:
space:
mode:
authornatrixaeria <janng@gmx.de>2019-06-02 14:58:22 +0200
committernatrixaeria <janng@gmx.de>2019-06-02 14:58:22 +0200
commit8bc245b8ca099a4c929562677d83aa11122dffd0 (patch)
tree6bdac4b53b7b9d3ec625f235b0fa79f68a9fabe6 /WebInterface/wasm/webhogg/src/canvas.rs
parentee573fd1a02d290ec2aa9201d923805b6d998b14 (diff)
Draw on canvas
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,
})