From b21428c0ea29452e3edc5a11f72fa3e614ea617e Mon Sep 17 00:00:00 2001 From: natrixaeria Date: Tue, 11 Jun 2019 20:24:45 +0200 Subject: Remove the WebInterface directory and create webhogg project folder --- WebInterface/wasm/asm-paint/.gitignore | 6 -- WebInterface/wasm/asm-paint/Cargo.toml | 29 ------- WebInterface/wasm/asm-paint/README.md | 53 ------------- WebInterface/wasm/asm-paint/deploy | 2 - WebInterface/wasm/asm-paint/index.html | 24 ------ WebInterface/wasm/asm-paint/lighttpd.config | 29 ------- WebInterface/wasm/asm-paint/loader.js | 2 - WebInterface/wasm/asm-paint/run | 3 - WebInterface/wasm/asm-paint/src/app.rs | 19 ----- WebInterface/wasm/asm-paint/src/canvas.rs | 39 ---------- WebInterface/wasm/asm-paint/src/client_logger.rs | 46 ----------- WebInterface/wasm/asm-paint/src/lib.rs | 20 ----- WebInterface/wasm/asm-paint/src/shader.rs | 97 ------------------------ WebInterface/wasm/asm-paint/src/site.rs | 28 ------- 14 files changed, 397 deletions(-) delete mode 100644 WebInterface/wasm/asm-paint/.gitignore delete mode 100644 WebInterface/wasm/asm-paint/Cargo.toml delete mode 100644 WebInterface/wasm/asm-paint/README.md delete mode 100755 WebInterface/wasm/asm-paint/deploy delete mode 100644 WebInterface/wasm/asm-paint/index.html delete mode 100644 WebInterface/wasm/asm-paint/lighttpd.config delete mode 100644 WebInterface/wasm/asm-paint/loader.js delete mode 100755 WebInterface/wasm/asm-paint/run delete mode 100644 WebInterface/wasm/asm-paint/src/app.rs delete mode 100644 WebInterface/wasm/asm-paint/src/canvas.rs delete mode 100644 WebInterface/wasm/asm-paint/src/client_logger.rs delete mode 100644 WebInterface/wasm/asm-paint/src/lib.rs delete mode 100644 WebInterface/wasm/asm-paint/src/shader.rs delete mode 100644 WebInterface/wasm/asm-paint/src/site.rs (limited to 'WebInterface/wasm/asm-paint') diff --git a/WebInterface/wasm/asm-paint/.gitignore b/WebInterface/wasm/asm-paint/.gitignore deleted file mode 100644 index 4e30131..0000000 --- a/WebInterface/wasm/asm-paint/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/target -**/*.rs.bk -Cargo.lock -bin/ -pkg/ -wasm-pack.log diff --git a/WebInterface/wasm/asm-paint/Cargo.toml b/WebInterface/wasm/asm-paint/Cargo.toml deleted file mode 100644 index ceb1866..0000000 --- a/WebInterface/wasm/asm-paint/Cargo.toml +++ /dev/null @@ -1,29 +0,0 @@ -[package] -name = "asm-paint-rs" -version = "0.1.0" -authors = [ - "natrixaeria", - "TrueDoctor" -] -edition = "2018" - -[lib] -crate-type = ["cdylib"] - -[dependencies] -wasm-bindgen = "0.2" -log = "0.4" -fern = "0.5" - -[dependencies.web-sys] -version = "0.3.22" -features = [ - 'Document', - 'Element', - 'HtmlCanvasElement', - 'WebGl2RenderingContext', - 'WebGlShader', - 'WebGlProgram', - 'WebGlBuffer', - 'Window' -] diff --git a/WebInterface/wasm/asm-paint/README.md b/WebInterface/wasm/asm-paint/README.md deleted file mode 100644 index 5fcb76f..0000000 --- a/WebInterface/wasm/asm-paint/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# πŸ¦€πŸ•ΈοΈ `wasm-pack-template` - -A template for kick starting a Rust and WebAssembly project using -[`wasm-pack`](https://github.com/rustwasm/wasm-pack). - -[**πŸ“š Read this template tutorial! πŸ“š**][template-docs] - -This template is designed for compiling Rust libraries into WebAssembly and -publishing the resulting package to NPM. - -Be sure to check out [other `wasm-pack` tutorials online][tutorials] for other -templates and usages of `wasm-pack`. - -[tutorials]: https://rustwasm.github.io/docs/wasm-pack/tutorials/index.html -[template-docs]: https://rustwasm.github.io/docs/wasm-pack/tutorials/npm-browser-packages/index.html - -## 🚴 Usage - -### πŸ‘ Use `cargo generate` to Clone this Template - -[Learn more about `cargo generate` here.](https://github.com/ashleygwilliams/cargo-generate) - -``` -cargo generate --git https://github.com/rustwasm/wasm-pack-template.git --name my-project -cd my-project -``` - -### πŸ› οΈ Build with `wasm-pack build` - -``` -wasm-pack build -``` - -### πŸ”¬ Test in Headless Browsers with `wasm-pack test` - -``` -wasm-pack test --headless --firefox -``` - -### 🎁 Publish to NPM with `wasm-pack publish` - -``` -wasm-pack publish -``` - -## πŸ”‹ Batteries Included - -* [`wasm-bindgen`](https://github.com/rustwasm/wasm-bindgen) for communicating - between WebAssembly and JavaScript. -* [`console_error_panic_hook`](https://github.com/rustwasm/console_error_panic_hook) - for logging panic messages to the developer console. -* [`wee_alloc`](https://github.com/rustwasm/wee_alloc), an allocator optimized - for small code size. diff --git a/WebInterface/wasm/asm-paint/deploy b/WebInterface/wasm/asm-paint/deploy deleted file mode 100755 index 13d1d0a..0000000 --- a/WebInterface/wasm/asm-paint/deploy +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -lighttpd -f ./lighttpd.config diff --git a/WebInterface/wasm/asm-paint/index.html b/WebInterface/wasm/asm-paint/index.html deleted file mode 100644 index c4f3734..0000000 --- a/WebInterface/wasm/asm-paint/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Scribblio - - - - - - - diff --git a/WebInterface/wasm/asm-paint/lighttpd.config b/WebInterface/wasm/asm-paint/lighttpd.config deleted file mode 100644 index 5fae32d..0000000 --- a/WebInterface/wasm/asm-paint/lighttpd.config +++ /dev/null @@ -1,29 +0,0 @@ -server.http-parseopts = ( - "header-strict" => "enable", - "host-strict" => "enable", - "host-normalize" => "enable", - "url-normalize" => "enable", - "url-normalize-unreserved" => "enable", - "url-normalize-required" => "enable", - "url-ctrls-reject" => "enable", - "url-path-2f-decode" => "enable", - "url-path-dotseg-remove" => "enable", - "url-query-20-plus" => "enable" -) - -server.document-root = "/home/jan/projects/DiscoBot/WebInterface/wasm/asm-paint" -server.port = 8080 -dir-listing.activate = "enable" -index-file.names = ( "index.html" ) -mimetype.assign = ( - ".html" => "text/html", - ".txt" => "text/plain", - ".css" => "text/css", - ".js" => "application/x-javascript", - ".jpg" => "image/jpeg", - ".jpeg" => "image/jpeg", - ".gif" => "image/gif", - ".png" => "image/png", - ".wasm" => "application/wasm", - "" => "application/octet-stream" -) diff --git a/WebInterface/wasm/asm-paint/loader.js b/WebInterface/wasm/asm-paint/loader.js deleted file mode 100644 index 4566ee1..0000000 --- a/WebInterface/wasm/asm-paint/loader.js +++ /dev/null @@ -1,2 +0,0 @@ -import {default as init} from './pkg/asm_paint_rs.js' -init('./pkg/asm_paint_rs_bg.wasm'); diff --git a/WebInterface/wasm/asm-paint/run b/WebInterface/wasm/asm-paint/run deleted file mode 100755 index 1da1e35..0000000 --- a/WebInterface/wasm/asm-paint/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -wasm-pack build --release --target web 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 { - 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 { - let element: web_sys::HtmlCanvasElement = - element.dyn_into::() - .ok()?; - debug!("create webgl2 context"); - let ctx = element.get_context("webgl2").ok()?? - .dyn_into::().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, - 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 { - 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 { - 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}) - } -} -- cgit v1.2.3-70-g09d2