summaryrefslogtreecommitdiff
path: root/WebInterface/wasm/asm-paint/src
diff options
context:
space:
mode:
authornatrixaeria <janng@gmx.de>2019-06-11 20:24:45 +0200
committernatrixaeria <janng@gmx.de>2019-06-11 20:24:45 +0200
commitb21428c0ea29452e3edc5a11f72fa3e614ea617e (patch)
treef8f04744fe61700e59d68eec1de8dc562c1ed689 /WebInterface/wasm/asm-paint/src
parent8276c94169c7f6027691f124c63b61c815ab15a5 (diff)
Remove the WebInterface directory
and create webhogg project folder
Diffstat (limited to 'WebInterface/wasm/asm-paint/src')
-rw-r--r--WebInterface/wasm/asm-paint/src/app.rs19
-rw-r--r--WebInterface/wasm/asm-paint/src/canvas.rs39
-rw-r--r--WebInterface/wasm/asm-paint/src/client_logger.rs46
-rw-r--r--WebInterface/wasm/asm-paint/src/lib.rs20
-rw-r--r--WebInterface/wasm/asm-paint/src/shader.rs97
-rw-r--r--WebInterface/wasm/asm-paint/src/site.rs28
6 files changed, 0 insertions, 249 deletions
diff --git a/WebInterface/wasm/asm-paint/src/app.rs b/WebInterface/wasm/asm-paint/src/app.rs
deleted file mode 100644
index 005764d..0000000
--- a/WebInterface/wasm/asm-paint/src/app.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-use crate::site::Site;
-
-pub struct App {
- site: Site,
-}
-
-impl App {
- pub fn new() -> Option<Self> {
- Some(Self {
- site: Site::from_current()?,
- })
- }
-
- pub fn run(&mut self) {
- let mut canvas = self.site.create_canvas().unwrap();
- canvas.init().unwrap();
- info!("canvas initialisation was succuessfull");
- }
-}
diff --git a/WebInterface/wasm/asm-paint/src/canvas.rs b/WebInterface/wasm/asm-paint/src/canvas.rs
deleted file mode 100644
index 400e258..0000000
--- a/WebInterface/wasm/asm-paint/src/canvas.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-use web_sys;
-use web_sys::{WebGl2RenderingContext};
-use wasm_bindgen::JsCast;
-use crate::shader::Shaders;
-
-pub struct Canvas {
- element: web_sys::HtmlCanvasElement,
- ctx: WebGl2RenderingContext,
- shaders: Shaders,
-}
-
-impl Canvas {
- pub fn new(element: web_sys::Element) -> Option<Self> {
- let element: web_sys::HtmlCanvasElement =
- element.dyn_into::<web_sys::HtmlCanvasElement>()
- .ok()?;
- debug!("create webgl2 context");
- let ctx = element.get_context("webgl2").ok()??
- .dyn_into::<WebGl2RenderingContext>().ok()?;
- info!("created webgl2 context successfully");
- Some(Self {
- element, ctx,
- shaders: Shaders::new(),
- })
- }
-
- pub fn init(&mut self) -> Result<(), ()> {
- self.shaders.init(&self.ctx).map_err(|_|())?;
- self.ctx.clear_color(1.0, 0.2, 1.0, 1.0);
- self.ctx.clear(WebGl2RenderingContext::COLOR_BUFFER_BIT);
- Ok(())
- }
-}
-
-impl Drop for Canvas {
- fn drop(&mut self) {
- self.shaders.remove(&self.ctx);
- }
-}
diff --git a/WebInterface/wasm/asm-paint/src/client_logger.rs b/WebInterface/wasm/asm-paint/src/client_logger.rs
deleted file mode 100644
index f71918f..0000000
--- a/WebInterface/wasm/asm-paint/src/client_logger.rs
+++ /dev/null
@@ -1,46 +0,0 @@
-use wasm_bindgen::prelude::*;
-
-#[wasm_bindgen]
-extern "C" {
- #[wasm_bindgen(js_namespace=console, js_name=debug)]
- fn __console_debug_colored2(f: &str, c1: &str, c2: &str);
- #[wasm_bindgen(js_namespace=console, js_name=info)]
- fn __console_info_colored2(f: &str, c1: &str, c2: &str);
- #[wasm_bindgen(js_namespace=console, js_name=warn)]
- fn __console_warn_colored2(f: &str, c1: &str, c2: &str);
- #[wasm_bindgen(js_namespace=console, js_name=error)]
- fn __console_error_colored2(f: &str, c1: &str, c2: &str);
-}
-
-fn log(rec: &log::Record) {
- let log_fn = match rec.level() {
- log::Level::Trace | log::Level::Debug => __console_debug_colored2,
- log::Level::Info => __console_info_colored2,
- log::Level::Warn => __console_warn_colored2,
- log::Level::Error => __console_error_colored2,
- };
- log_fn(&format!("{}", rec.args()),
- &format!("color: {}", match rec.level() {
- log::Level::Trace => "violet",
- log::Level::Debug => "blue",
- log::Level::Info => "green",
- log::Level::Warn => "orange",
- log::Level::Error => "red"
- }), "");
-}
-
-pub fn init_logger() {
- fern::Dispatch::new().format(|out, message, record|{
- out.finish(format_args!(
- "%c{}%c {} > {}",
- record.level(),
- record.target(),
- message
- )
- )
- })
- .level(log::LevelFilter::Debug)
- .chain(fern::Output::call(log))
- .apply().unwrap();
-}
-
diff --git a/WebInterface/wasm/asm-paint/src/lib.rs b/WebInterface/wasm/asm-paint/src/lib.rs
deleted file mode 100644
index 6c773c5..0000000
--- a/WebInterface/wasm/asm-paint/src/lib.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-mod client_logger;
-mod shader;
-mod canvas;
-mod site;
-mod app;
-
-use wasm_bindgen::prelude::*;
-
-#[macro_use]
-extern crate log;
-
-#[wasm_bindgen(start)]
-pub fn entry() {
- client_logger::init_logger();
-
- info!("begin running wasm application");
-
- let mut app = app::App::new().unwrap();
- app.run();
-}
diff --git a/WebInterface/wasm/asm-paint/src/shader.rs b/WebInterface/wasm/asm-paint/src/shader.rs
deleted file mode 100644
index 3352bcf..0000000
--- a/WebInterface/wasm/asm-paint/src/shader.rs
+++ /dev/null
@@ -1,97 +0,0 @@
-use web_sys::{WebGlProgram, WebGl2RenderingContext};
-
-const VERTEX_SHADER: &str =
-r#"#version 300 es
-in vec4 pos;
-void main() {
- gl_Position = pos;
-}
-"#;
-
-const FRAGMENT_SHADER: &str =
-r#"#version 300 es
-precision mediump float;
-out vec4 color;
-
-void main() {
- color = vec4(1, 0, 0, 1);
-}
-"#;
-
-pub struct Shaders {
- program: Option<WebGlProgram>,
- pos_loc: i32,
-}
-
-impl Shaders {
- pub fn new() -> Self {
- Self {
- program: None,
- pos_loc: -1
- }
- }
-
- fn create_program(&mut self, ctx: &WebGl2RenderingContext) -> Result<(), String> {
- self.program = Some(ctx.create_program().ok_or("could not create program id")?);
- Ok(())
- }
-
- fn create_shader(&mut self, ctx: &WebGl2RenderingContext,
- shader_type: u32, source: &str) -> Result<(), String> {
- let program = self.program.as_ref().ok_or("could not find created program")?;
- let shader = ctx.create_shader(shader_type)
- .ok_or("could not create shader")?;
- ctx.shader_source(&shader, source);
- ctx.compile_shader(&shader);
- let status = ctx.get_shader_parameter(&shader, WebGl2RenderingContext::COMPILE_STATUS);
- if status == wasm_bindgen::JsValue::TRUE {
- ctx.attach_shader(program, &shader);
- Ok(())
- } else {
- Err(format!("\n{}", ctx.get_shader_info_log(&shader).unwrap_or_default()))
- }
- }
-
- fn create_vertex_shader(&mut self, ctx: &WebGl2RenderingContext) -> Result<(), String> {
- self.create_shader(ctx, WebGl2RenderingContext::VERTEX_SHADER, VERTEX_SHADER)
- }
-
- fn create_fragment_shader(&mut self, ctx: &WebGl2RenderingContext) -> Result<(), String> {
- self.create_shader(ctx, WebGl2RenderingContext::FRAGMENT_SHADER, FRAGMENT_SHADER)
- }
-
- fn compile(&mut self, ctx: &WebGl2RenderingContext) -> Result<(), String> {
- let program = self.program.as_ref().ok_or("could not find created program")?;
- ctx.link_program(program);
- let status = ctx.get_program_parameter(program, WebGl2RenderingContext::LINK_STATUS);
- if status == wasm_bindgen::JsValue::TRUE {
- Ok(())
- } else {
- Err(format!("\n{}", ctx.get_program_info_log(program).unwrap_or_default()))
- }
- }
-
- pub fn init(&mut self, ctx: &WebGl2RenderingContext) -> Result<(), String> {
- debug!("create program");
- self.create_program(ctx)
- .map_err(|e| { error!("webgl2 create program: {}", e); e})?;
- debug!("create vertex shader");
- self.create_vertex_shader(ctx)
- .map_err(|e| { error!("webgl2 create vertex shader: {}", e); e})?;
- debug!("create fragment shader");
- self.create_fragment_shader(ctx)
- .map_err(|e| { error!("webgl2 create fragment shader: {}", e); e})?;
- debug!("compile shader program");
- self.compile(ctx)
- .map_err(|e| { error!("webgl2 shader: {}", e); e})?;
- let program = self.program.as_ref().ok_or("could not find created program")?;
- self.pos_loc = ctx.get_attrib_location(program, "pos");
- trace!("got attrib location 'pos'({})", self.pos_loc);
- info!("initialised shader program");
- Ok(())
- }
-
- pub fn remove(&mut self, ctx: &WebGl2RenderingContext) {
- ctx.delete_program(self.program.as_ref())
- }
-}
diff --git a/WebInterface/wasm/asm-paint/src/site.rs b/WebInterface/wasm/asm-paint/src/site.rs
deleted file mode 100644
index 4ae0237..0000000
--- a/WebInterface/wasm/asm-paint/src/site.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-use web_sys;
-use crate::canvas::Canvas;
-
-pub struct Site {
- window: web_sys::Window,
- document: web_sys::Document,
-}
-
-impl Site {
- pub fn from_current() -> Option<Self> {
- let window = web_sys::window()
- .or_else(|| {error!("unable to query window"); None})?;
- let document = window.document()
- .or_else(|| {error!("unable to query document"); None})?;
- Some(Self {
- window, document
- })
- }
-
- pub fn create_canvas(&self) -> Option<Canvas> {
- debug!("gain canvas element");
- let element = self.document.get_element_by_id("canvas")
- .or_else(|| {error!("could not gain canvas element"); None})?;
- Canvas::new(element)
- .or_else(|| {error!("could not create a webgl2 canvas.
- Your browser doesn't seem to support webgl2"); None})
- }
-}