summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornatrixaeria <janng@gmx.de>2019-05-29 21:00:49 +0200
committernatrixaeria <janng@gmx.de>2019-05-29 21:00:49 +0200
commita6d2d62fae44b6d8c96e51055f7222bc679efc48 (patch)
treefdbc7fcd75504dfd8c1a2e913f4d6ccbf77907d1
parent3c21251fec1a1ce4cee42337e727cc8dadfd9563 (diff)
Reforge code snippets
-rw-r--r--WebInterface/wasm/asm-paint/index.html3
-rw-r--r--WebInterface/wasm/asm-paint/src/lib.rs119
-rw-r--r--WebInterface/wasm/asm-paint/src/shader.rs6
3 files changed, 7 insertions, 121 deletions
diff --git a/WebInterface/wasm/asm-paint/index.html b/WebInterface/wasm/asm-paint/index.html
index 5a221e3..c4f3734 100644
--- a/WebInterface/wasm/asm-paint/index.html
+++ b/WebInterface/wasm/asm-paint/index.html
@@ -13,6 +13,9 @@
width: 100%;
height: 100%;
}
+ img {
+ background: violet;
+ }
</style>
</head>
<body>
diff --git a/WebInterface/wasm/asm-paint/src/lib.rs b/WebInterface/wasm/asm-paint/src/lib.rs
index 945f2b1..6c773c5 100644
--- a/WebInterface/wasm/asm-paint/src/lib.rs
+++ b/WebInterface/wasm/asm-paint/src/lib.rs
@@ -18,122 +18,3 @@ pub fn entry() {
let mut app = app::App::new().unwrap();
app.run();
}
-
-/*
-use js_sys::WebAssembly;
-use wasm_bindgen::prelude::*;
-use wasm_bindgen::JsCast;
-use web_sys::{WebGlProgram, WebGlRenderingContext, WebGlShader};
-
-#[wasm_bindgen(start)]
-pub fn start() -> Result<(), JsValue> {
- let document = web_sys::window().unwrap().document().unwrap();
- let canvas = document.get_element_by_id("canvas").unwrap();
- let canvas: web_sys::HtmlCanvasElement = canvas.dyn_into::<web_sys::HtmlCanvasElement>()?;
-
- let context = canvas
- .get_context("webgl")?
- .unwrap()
- .dyn_into::<WebGlRenderingContext>()?;
-
- let vert_shader = compile_shader(
- &context,
- WebGlRenderingContext::VERTEX_SHADER,
- r#"
- attribute vec4 position;
- void main() {
- gl_Position = position;
- }
- "#,
- )?;
- let frag_shader = compile_shader(
- &context,
- WebGlRenderingContext::FRAGMENT_SHADER,
- r#"
- void main() {
- gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
- }
- "#,
- )?;
- let program = link_program(&context, &vert_shader, &frag_shader)?;
- context.use_program(Some(&program));
-
- let vertices: [f32; 9] = [-0.7, -0.7, 0.0, 0.7, -0.7, 0.0, 0.0, 0.7, 0.0];
- let memory_buffer = wasm_bindgen::memory()
- .dyn_into::<WebAssembly::Memory>()?
- .buffer();
- let vertices_location = vertices.as_ptr() as u32 / 4;
- let vert_array = js_sys::Float32Array::new(&memory_buffer)
- .subarray(vertices_location, vertices_location + vertices.len() as u32);
-
- let buffer = context.create_buffer().ok_or("failed to create buffer")?;
- context.bind_buffer(WebGlRenderingContext::ARRAY_BUFFER, Some(&buffer));
- context.buffer_data_with_array_buffer_view(
- WebGlRenderingContext::ARRAY_BUFFER,
- &vert_array,
- WebGlRenderingContext::STATIC_DRAW,
- );
- context.vertex_attrib_pointer_with_i32(0, 3, WebGlRenderingContext::FLOAT, false, 0, 0);
- context.enable_vertex_attrib_array(0);
-
- context.clear_color(0.0, 0.0, 0.0, 1.0);
- context.clear(WebGlRenderingContext::COLOR_BUFFER_BIT);
-
- context.draw_arrays(
- WebGlRenderingContext::TRIANGLES,
- 0,
- (vertices.len() / 3) as i32,
- );
- Ok(())
-}
-
-pub fn compile_shader(
- context: &WebGlRenderingContext,
- shader_type: u32,
- source: &str,
-) -> Result<WebGlShader, String> {
- let shader = context
- .create_shader(shader_type)
- .ok_or_else(|| String::from("Unable to create shader object"))?;
- context.shader_source(&shader, source);
- context.compile_shader(&shader);
-
- if context
- .get_shader_parameter(&shader, WebGlRenderingContext::COMPILE_STATUS)
- .as_bool()
- .unwrap_or(false)
- {
- Ok(shader)
- } else {
- Err(context
- .get_shader_info_log(&shader)
- .unwrap_or_else(|| String::from("Unknown error creating shader")))
- }
-}
-
-pub fn link_program(
- context: &WebGlRenderingContext,
- vert_shader: &WebGlShader,
- frag_shader: &WebGlShader,
-) -> Result<WebGlProgram, String> {
- let program = context
- .create_program()
- .ok_or_else(|| String::from("Unable to create shader object"))?;
-
- context.attach_shader(&program, vert_shader);
- context.attach_shader(&program, frag_shader);
- context.link_program(&program);
-
- if context
- .get_program_parameter(&program, WebGlRenderingContext::LINK_STATUS)
- .as_bool()
- .unwrap_or(false)
- {
- Ok(program)
- } else {
- Err(context
- .get_program_info_log(&program)
- .unwrap_or_else(|| String::from("Unknown error creating program object")))
- }
-}
-*/
diff --git a/WebInterface/wasm/asm-paint/src/shader.rs b/WebInterface/wasm/asm-paint/src/shader.rs
index 2823cd4..3352bcf 100644
--- a/WebInterface/wasm/asm-paint/src/shader.rs
+++ b/WebInterface/wasm/asm-paint/src/shader.rs
@@ -1,13 +1,15 @@
use web_sys::{WebGlProgram, WebGl2RenderingContext};
-const VERTEX_SHADER: &str = r#"#version 300 es
+const VERTEX_SHADER: &str =
+r#"#version 300 es
in vec4 pos;
void main() {
gl_Position = pos;
}
"#;
-const FRAGMENT_SHADER: &str = r#"#version 300 es
+const FRAGMENT_SHADER: &str =
+r#"#version 300 es
precision mediump float;
out vec4 color;