Browse Source

wip: integrate 3d renderer components

Jonathan Kelley 4 năm trước cách đây
mục cha
commit
5791e49700
4 tập tin đã thay đổi với 42 bổ sung0 xóa
  1. 1 0
      Cargo.toml
  2. 9 0
      packages/3d/Cargo.toml
  3. 25 0
      packages/3d/README.md
  4. 7 0
      packages/3d/src/lib.rs

+ 1 - 0
Cargo.toml

@@ -5,6 +5,7 @@ members = [
     "packages/core",
     "packages/web",
     "packages/liveview",
+    "packages/3d",
 ]
 
 # Built-in

+ 9 - 0
packages/3d/Cargo.toml

@@ -0,0 +1,9 @@
+[package]
+name = "dioxus3d"
+version = "0.0.0"
+authors = ["Jonathan Kelley <jkelleyrtp@gmail.com>"]
+edition = "2018"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]

+ 25 - 0
packages/3d/README.md

@@ -0,0 +1,25 @@
+# Dioxus3d: declarative framework for using the `Canvas`
+
+Declarative wrapper over wgpu for creating interactive gpu-enabled visualizations in the browser with Dioxus. This crate's analog is ThreeJS and react-three-fiber. Here, we expose a set of hooks for using the `Canvas` imperatively, and then provide a set of components that interact with this canvas context. From there, declaring scenes is as easy as:
+
+```rust
+use dioxus3d::{Canvas};
+use dioxus::prelude::*;
+
+static HelloWorld = |ctx, props| {
+    ctx.render(rsx! {
+        Canvas {
+            Text {
+                "Hello world"
+                rel_pos: (0,0,1)
+                size: (1,1,1)
+            }
+            Cube {
+                size: (1,1,1)
+            }
+        }
+    })
+};
+```
+
+// dioxus bevy: wrap a bevy instance with reactive controls. 

+ 7 - 0
packages/3d/src/lib.rs

@@ -0,0 +1,7 @@
+#[cfg(test)]
+mod tests {
+    #[test]
+    fn it_works() {
+        assert_eq!(2 + 2, 4);
+    }
+}