From 7758a50ed5c41dc87ddae9a83155b3af1e9de85f Mon Sep 17 00:00:00 2001 From: Tsuki Date: Sat, 16 Nov 2024 09:36:57 +0800 Subject: [PATCH] sync --- mp_elements/src/app.rs | 25 +++++++++++------------ mp_elements/src/elements/ppi.rs | 35 +++++++++------------------------ mp_elements/src/utils.rs | 2 +- 3 files changed, 21 insertions(+), 41 deletions(-) diff --git a/mp_elements/src/app.rs b/mp_elements/src/app.rs index 27dfad2..b0afb45 100644 --- a/mp_elements/src/app.rs +++ b/mp_elements/src/app.rs @@ -55,10 +55,10 @@ impl App { // Create a new texture. This texture will be used as the output texture for the render pass. let texture_size = wgpu::Extent3d { - width: 256, - height: 256, - depth_or_array_layers: 1, - }; + width: 256, + height: 256, + depth_or_array_layers: 1, + }; let texture = device.create_texture(&wgpu::TextureDescriptor { label: Some("output texture"), size: texture_size, @@ -157,11 +157,10 @@ impl App { // Draw the element. element.draw(attach, &mut render_pass); } - - } // output - self.output.output(&mut encoder, &self._texture, self._texture_size, &self.ctx); + self.output + .output(&mut encoder, &self._texture, self._texture_size, &self.ctx); self.ctx.queue.submit(Some(encoder.finish())); self.output.get_data(&self.ctx).await; @@ -369,7 +368,7 @@ impl Output { ); } - pub async fn get_data(&self,ctx: &Ctx) { + pub async fn get_data(&self, ctx: &Ctx) { let device = &ctx.device; // 需要对映射变量设置范围,以便我们能够解除缓冲区的映射 let buffer_slice = self.output_buffer.slice(..); @@ -385,8 +384,7 @@ impl Output { let data = buffer_slice.get_mapped_range(); use image::{ImageBuffer, Rgba}; - let buffer = - ImageBuffer::, _>::from_raw(256,256, data).unwrap(); + let buffer = ImageBuffer::, _>::from_raw(256, 256, data).unwrap(); buffer.save("image.png").unwrap(); println!("保存图片成功!"); @@ -406,12 +404,11 @@ mod test { use super::*; #[test] fn test_app() { - let plugin_manager = - PluginManager::new(r#"C:\Users\qwin7\projects\radarmp\loaders"#).unwrap(); + let plugin_manager = PluginManager::new(r#"/Users/tsuki/projects/mp/loaders"#).unwrap(); let data = plugin_manager.try_load_data( - // "/Users/tsuki/Desktop/Z_RADR_I_X5775_20230726180000_O_DOR-XPD-CAP-FMT.BIN.zip", - r#"C:\Users\qwin7\Downloads\ZJSXAA_20230113070200_R.dat.gz"#, + "/Users/tsuki/Desktop/Z_RADR_I_X5775_20230726180000_O_DOR-XPD-CAP-FMT.BIN.zip", + // r#"C:\Users\qwin7\Downloads\ZJSXAA_20230113070200_R.dat.gz"#, ); pollster::block_on(async { diff --git a/mp_elements/src/elements/ppi.rs b/mp_elements/src/elements/ppi.rs index 1d676e2..d59ea11 100644 --- a/mp_elements/src/elements/ppi.rs +++ b/mp_elements/src/elements/ppi.rs @@ -257,8 +257,7 @@ impl Element for PPI { impl PPI { fn init_shader(device: &wgpu::Device) -> wgpu::ShaderModule { - let shader_str = - merge_shader(r#"C:\Users\qwin7\projects\radarmp\mp_elements\shaders\ppi.wgsl"#); + let shader_str = merge_shader(r#"/Users/tsuki/projects/mp/mp_elements/shaders/ppi.wgsl"#); let shader = device.create_shader_module(wgpu::ShaderModuleDescriptor { label: Some("PPI Shader Module"), source: wgpu::ShaderSource::Wgsl(shader_str.into()), @@ -266,17 +265,6 @@ impl PPI { shader } - fn create_uniform_buffer(device: &wgpu::Device) -> wgpu::Buffer { - let buffer = device.create_buffer(&wgpu::BufferDescriptor { - label: Some("PPI Uniform Buffer"), - usage: wgpu::BufferUsages::COPY_DST | wgpu::BufferUsages::UNIFORM, - size: 0, - mapped_at_creation: false, - }); - - buffer - } - fn generate_key(&self, data: &RadarGridData) -> BufferKey { let key_name = format!( "ppi_{}_{}", @@ -335,22 +323,17 @@ impl PPI { // index buffer let mut indice_buffer = Vec::with_capacity(a.len() * r.len() * 6); - for a_idx in 0..a.len() - 1 { - for r_idx in 0..r.len() - 1 { - let lt = (a_idx * r.len() + r_idx) as u32; - let lb = (a_idx * r.len() + r_idx + 1) as u32; - let rt = ((a_idx + 1) * r.len() + r_idx) as u32; - let rb = ((a_idx + 1) * r.len() + r_idx + 1) as u32; - indice_buffer.push(lt); - indice_buffer.push(lb); - indice_buffer.push(rt); + for i in 0..a.len() * r.len() { + indice_buffer.push(i as u32 * 4); + indice_buffer.push(i as u32 * 4 + 1); + indice_buffer.push(i as u32 * 4 + 2); - indice_buffer.push(lb); - indice_buffer.push(rb); - indice_buffer.push(rt); - } + indice_buffer.push(i as u32 * 4 + 1); + indice_buffer.push(i as u32 * 4 + 3); + indice_buffer.push(i as u32 * 4 + 2); } + return (vertexs, indice_buffer); } } diff --git a/mp_elements/src/utils.rs b/mp_elements/src/utils.rs index a67fe9b..128562e 100644 --- a/mp_elements/src/utils.rs +++ b/mp_elements/src/utils.rs @@ -33,7 +33,7 @@ struct UniformCommonTools { Ok(path) => path.parent().unwrap().to_owned(), Err(e) => { // panic!("Failed to canonicalize path: {}", e); - PathBuf::from(r#"C:\Users\qwin7\projects\radarmp\mp_elements\shaders"#) + PathBuf::from(r#"/Users/tsuki/projects/mp/mp_elements/shaders"#) } };