فهرست منبع

Added serde, trying to change data on the fly

Ghastrod 1 سال پیش
والد
کامیت
4da0734c97
4فایلهای تغییر یافته به همراه21 افزوده شده و 8 حذف شده
  1. 5 4
      Cargo.lock
  2. 1 0
      Cargo.toml
  3. 11 4
      src/lib.rs
  4. 4 0
      src/object.rs

+ 5 - 4
Cargo.lock

@@ -1321,18 +1321,18 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.201"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.201"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1900,6 +1900,7 @@ dependencies = [
  "glam",
  "log",
  "pollster",
+ "serde",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",

+ 1 - 0
Cargo.toml

@@ -13,6 +13,7 @@ pollster = "0.3.0"
 bytemuck = { version = "1.16.0", features = ["derive"] }
 glam = "0.27.0"
 chrono = "0.4.38"
+serde = { version = "1.0.203", features = ["derive"] }
 
 
 [target.'cfg(target_arch = "wasm32")'.dependencies]

+ 11 - 4
src/lib.rs

@@ -35,6 +35,7 @@ struct State<'a> {
     window: &'a Window,
     num_vertices: u32,
     last_frame: Instant,
+    framecount: u64,
     frametime: f64,
     //sky_pipeline: wgpu::RenderPipeline,
 }
@@ -112,12 +113,12 @@ impl<'a> State<'a> {
 
 
         let plan1 = object::generate_plane(3,3,10.,10.);
-        println!("{:?}", plan1.positions_list());
+        //println!("{:?}", plan1.positions_list());
         let plan2 = plan1.clone();
         let vertex_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor{
             label: Some("Vertex Buffer 1"),
             contents: bytemuck::cast_slice(&plan1.vertices()),
-            usage: wgpu::BufferUsages::VERTEX,
+            usage: wgpu::BufferUsages::VERTEX | wgpu::BufferUsages::COPY_DST,
         });
 
         let num_vertices = plan2.len();
@@ -173,6 +174,7 @@ impl<'a> State<'a> {
         let delta = 0.2;
 
         //let sky_pipeline = sky::sky_pipeline::new_sky_pipeline(&device, &config);
+        let framecount: u64 = 0;
 
         Self {
             surface,
@@ -192,6 +194,7 @@ impl<'a> State<'a> {
             last_frame: last_frame,
             frametime: delta,
             //sky_pipeline: sky_pipeline
+            framecount
         }
     }
 
@@ -233,7 +236,10 @@ impl<'a> State<'a> {
             .device
             .create_command_encoder(&wgpu::CommandEncoderDescriptor {
                 label: Some("Render Encoder"),
-            });
+        });
+
+        //Modify the buffer
+
 
         {
             let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor {
@@ -269,7 +275,8 @@ impl<'a> State<'a> {
 
         self.frametime = self.last_frame.elapsed().as_micros() as f64;
         self.last_frame = Instant::now();
-
+        self.framecount += 1;
+        println!("{:?}", self.framecount);
         //println!("{:?}", self.frametime);
 
         Ok(())

+ 4 - 0
src/object.rs

@@ -111,4 +111,8 @@ pub fn generate_plane(num_segx: u32, num_segy: u32, width: f32, height: f32) ->
     }
 
     result
+}
+
+pub fn change_plane(buff: wgpu::Buffer){
+    println!("{:?}", buff.usage())
 }