From 866f979c0c5d41f3b17612e4c4968735c92726e9 Mon Sep 17 00:00:00 2001 From: TriMill Date: Thu, 8 Jun 2023 20:25:06 -0400 Subject: [PATCH] the things are changing --- Cargo.lock | 63 +-------------- cxgraph-desktop/src/main.rs | 9 ++- cxgraph-web/index.html | 65 ++++++++++++++-- cxgraph-web/index.js | 62 +++++++++++++-- cxgraph-web/src/lib.rs | 33 ++++++-- cxgraph-web/style.css | 21 ++++- libcxgraph/Cargo.toml | 2 - libcxgraph/src/language/compiler.rs | 6 +- libcxgraph/src/language/mod.rs | 11 ++- libcxgraph/src/language/syntax.lalrpop | 2 +- libcxgraph/src/renderer/fragment.wgsl | 104 ++++++++++++++++++++++--- libcxgraph/src/renderer/mod.rs | 81 ++++++++++++------- 12 files changed, 328 insertions(+), 131 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1613849..66cedf3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -86,15 +86,6 @@ dependencies = [ "libc", ] -[[package]] -name = "approx" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" -dependencies = [ - "num-traits", -] - [[package]] name = "arrayref" version = "0.3.7" @@ -245,16 +236,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" -[[package]] -name = "cgmath" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a98d30140e3296250832bbaaff83b27dcd6fa3cc70fb6f1f3e5c9c0023b5317" -dependencies = [ - "approx", - "num-traits", -] - [[package]] name = "codespan-reporting" version = "0.11.1" @@ -291,12 +272,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "const_panic" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6051f239ecec86fde3410901ab7860d458d160371533842974fc61f96d15879b" - [[package]] name = "core-foundation" version = "0.9.3" @@ -452,38 +427,6 @@ dependencies = [ "log", ] -[[package]] -name = "encase" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fce2eeef77fd4a293a54b62aa00ac9daebfbcda4bf8998c5a815635b004aa1c" -dependencies = [ - "cgmath", - "const_panic", - "encase_derive", - "thiserror", -] - -[[package]] -name = "encase_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e520cde08cbf4f7cc097f61573ec06ce467019803de8ae82fb2823fa1554a0e" -dependencies = [ - "encase_derive_impl", -] - -[[package]] -name = "encase_derive_impl" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fe2568f851fd6144a45fa91cfed8fe5ca8fc0b56ba6797bfc1ed2771b90e37c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.18", -] - [[package]] name = "env_logger" version = "0.10.0" @@ -818,8 +761,6 @@ checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" name = "libcxgraph" version = "0.1.0" dependencies = [ - "cgmath", - "encase", "lalrpop", "lalrpop-util", "log", @@ -1258,9 +1199,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" +checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" dependencies = [ "unicode-ident", ] diff --git a/cxgraph-desktop/src/main.rs b/cxgraph-desktop/src/main.rs index 9706a37..ac0c9d5 100644 --- a/cxgraph-desktop/src/main.rs +++ b/cxgraph-desktop/src/main.rs @@ -1,4 +1,6 @@ +use std::collections::HashMap; + use libcxgraph::{renderer::WgpuState, language::compile}; use winit::{event_loop::EventLoop, window::Window, event::{Event, WindowEvent}}; @@ -8,7 +10,7 @@ fn main() { .init(); let src = "plot(z) = 27^z - 9^z - 3^z"; - let wgsl = compile(src).unwrap(); + let wgsl = compile(src, &HashMap::new()).unwrap(); println!("{wgsl}"); let event_loop = EventLoop::new(); @@ -24,8 +26,9 @@ async fn run(event_loop: EventLoop<()>, window: Window, code: &str) { state.load_shaders(code); - state.set_bounds((-5.0, -5.0), (5.0, 5.0)); - state.set_shading_intensity(0.05); + state.uniforms.bounds_min = (-5.0, -5.0).into(); + state.uniforms.bounds_max = ( 5.0, 5.0).into(); + state.uniforms.shading_intensity = 0.3; event_loop.run(move |event, _, control_flow| { control_flow.set_wait(); diff --git a/cxgraph-web/index.html b/cxgraph-web/index.html index 0e43353..1324fb4 100644 --- a/cxgraph-web/index.html +++ b/cxgraph-web/index.html @@ -10,13 +10,64 @@ - +