Update bytemuck and remove zerocopy in iced_wgpu
				
					
				
			This commit is contained in:
		
							parent
							
								
									b86accfe1c
								
							
						
					
					
						commit
						9d4f664c94
					
				| @ -16,13 +16,15 @@ default_system_font = ["iced_graphics/font-source"] | ||||
| wgpu = "0.6" | ||||
| wgpu_glyph = "0.10" | ||||
| glyph_brush = "0.7" | ||||
| zerocopy = "0.3" | ||||
| bytemuck = "1.2" | ||||
| raw-window-handle = "0.3" | ||||
| log = "0.4" | ||||
| guillotiere = "0.6" | ||||
| futures = "0.3" | ||||
| 
 | ||||
| [dependencies.bytemuck] | ||||
| version = "1.4" | ||||
| features = ["derive"] | ||||
| 
 | ||||
| [dependencies.iced_native] | ||||
| version = "0.2" | ||||
| path = "../native" | ||||
|  | ||||
| @ -13,7 +13,8 @@ use iced_graphics::layer; | ||||
| use iced_native::Rectangle; | ||||
| use std::cell::RefCell; | ||||
| use std::mem; | ||||
| use zerocopy::AsBytes; | ||||
| 
 | ||||
| use bytemuck::{Pod, Zeroable}; | ||||
| 
 | ||||
| #[cfg(feature = "image")] | ||||
| use iced_native::image; | ||||
| @ -219,14 +220,14 @@ impl Pipeline { | ||||
|         let vertices = | ||||
|             device.create_buffer_init(&wgpu::util::BufferInitDescriptor { | ||||
|                 label: Some("iced_wgpu::image vertex buffer"), | ||||
|                 contents: QUAD_VERTS.as_bytes(), | ||||
|                 contents: bytemuck::cast_slice(&QUAD_VERTS), | ||||
|                 usage: wgpu::BufferUsage::VERTEX, | ||||
|             }); | ||||
| 
 | ||||
|         let indices = | ||||
|             device.create_buffer_init(&wgpu::util::BufferInitDescriptor { | ||||
|                 label: Some("iced_wgpu::image index buffer"), | ||||
|                 contents: QUAD_INDICES.as_bytes(), | ||||
|                 contents: bytemuck::cast_slice(&QUAD_INDICES), | ||||
|                 usage: wgpu::BufferUsage::INDEX, | ||||
|             }); | ||||
| 
 | ||||
| @ -385,12 +386,9 @@ impl Pipeline { | ||||
|                 device, | ||||
|             ); | ||||
| 
 | ||||
|             uniforms_buffer.copy_from_slice( | ||||
|                 Uniforms { | ||||
|                     transform: transformation.into(), | ||||
|                 } | ||||
|                 .as_bytes(), | ||||
|             ); | ||||
|             uniforms_buffer.copy_from_slice(bytemuck::bytes_of(&Uniforms { | ||||
|                 transform: transformation.into(), | ||||
|             })); | ||||
|         } | ||||
| 
 | ||||
|         let mut i = 0; | ||||
| @ -411,8 +409,9 @@ impl Pipeline { | ||||
|                 device, | ||||
|             ); | ||||
| 
 | ||||
|             instances_buffer | ||||
|                 .copy_from_slice(instances[i..i + amount].as_bytes()); | ||||
|             instances_buffer.copy_from_slice(bytemuck::cast_slice( | ||||
|                 &instances[i..i + amount], | ||||
|             )); | ||||
| 
 | ||||
|             let mut render_pass = | ||||
|                 encoder.begin_render_pass(&wgpu::RenderPassDescriptor { | ||||
| @ -463,7 +462,7 @@ impl Pipeline { | ||||
| } | ||||
| 
 | ||||
| #[repr(C)] | ||||
| #[derive(Clone, Copy, AsBytes)] | ||||
| #[derive(Clone, Copy, Zeroable, Pod)] | ||||
| pub struct Vertex { | ||||
|     _position: [f32; 2], | ||||
| } | ||||
| @ -486,7 +485,7 @@ const QUAD_VERTS: [Vertex; 4] = [ | ||||
| ]; | ||||
| 
 | ||||
| #[repr(C)] | ||||
| #[derive(Debug, Clone, Copy, AsBytes)] | ||||
| #[derive(Debug, Clone, Copy, Zeroable, Pod)] | ||||
| struct Instance { | ||||
|     _position: [f32; 2], | ||||
|     _size: [f32; 2], | ||||
| @ -500,7 +499,7 @@ impl Instance { | ||||
| } | ||||
| 
 | ||||
| #[repr(C)] | ||||
| #[derive(Debug, Clone, Copy, AsBytes)] | ||||
| #[derive(Debug, Clone, Copy, Zeroable, Pod)] | ||||
| struct Uniforms { | ||||
|     transform: [f32; 16], | ||||
| } | ||||
|  | ||||
| @ -2,8 +2,6 @@ use crate::image::atlas::{self, Atlas}; | ||||
| use iced_native::svg; | ||||
| use std::collections::{HashMap, HashSet}; | ||||
| 
 | ||||
| use zerocopy::AsBytes; | ||||
| 
 | ||||
| pub enum Svg { | ||||
|     Loaded(resvg::usvg::Tree), | ||||
|     NotFound, | ||||
| @ -119,7 +117,7 @@ impl Cache { | ||||
|                 let allocation = texture_atlas.upload( | ||||
|                     width, | ||||
|                     height, | ||||
|                     canvas.get_data().as_bytes(), | ||||
|                     bytemuck::cast_slice(canvas.get_data()), | ||||
|                     device, | ||||
|                     encoder, | ||||
|                 )?; | ||||
|  | ||||
| @ -2,9 +2,9 @@ use crate::Transformation; | ||||
| use iced_graphics::layer; | ||||
| use iced_native::Rectangle; | ||||
| 
 | ||||
| use bytemuck::{Pod, Zeroable}; | ||||
| use std::mem; | ||||
| use wgpu::util::DeviceExt; | ||||
| use zerocopy::AsBytes; | ||||
| 
 | ||||
| #[derive(Debug)] | ||||
| pub struct Pipeline { | ||||
| @ -156,14 +156,14 @@ impl Pipeline { | ||||
|         let vertices = | ||||
|             device.create_buffer_init(&wgpu::util::BufferInitDescriptor { | ||||
|                 label: Some("iced_wgpu::quad vertex buffer"), | ||||
|                 contents: QUAD_VERTS.as_bytes(), | ||||
|                 contents: bytemuck::cast_slice(&QUAD_VERTS), | ||||
|                 usage: wgpu::BufferUsage::VERTEX, | ||||
|             }); | ||||
| 
 | ||||
|         let indices = | ||||
|             device.create_buffer_init(&wgpu::util::BufferInitDescriptor { | ||||
|                 label: Some("iced_wgpu::quad index buffer"), | ||||
|                 contents: QUAD_INDICES.as_bytes(), | ||||
|                 contents: bytemuck::cast_slice(&QUAD_INDICES), | ||||
|                 usage: wgpu::BufferUsage::INDEX, | ||||
|             }); | ||||
| 
 | ||||
| @ -207,7 +207,7 @@ impl Pipeline { | ||||
|                 device, | ||||
|             ); | ||||
| 
 | ||||
|             constants_buffer.copy_from_slice(uniforms.as_bytes()); | ||||
|             constants_buffer.copy_from_slice(bytemuck::bytes_of(&uniforms)); | ||||
|         } | ||||
| 
 | ||||
|         let mut i = 0; | ||||
| @ -271,7 +271,7 @@ impl Pipeline { | ||||
| } | ||||
| 
 | ||||
| #[repr(C)] | ||||
| #[derive(Clone, Copy, AsBytes)] | ||||
| #[derive(Clone, Copy, Zeroable, Pod)] | ||||
| pub struct Vertex { | ||||
|     _position: [f32; 2], | ||||
| } | ||||
| @ -296,7 +296,7 @@ const QUAD_VERTS: [Vertex; 4] = [ | ||||
| const MAX_INSTANCES: usize = 100_000; | ||||
| 
 | ||||
| #[repr(C)] | ||||
| #[derive(Debug, Clone, Copy, AsBytes)] | ||||
| #[derive(Debug, Clone, Copy, Zeroable, Pod)] | ||||
| struct Uniforms { | ||||
|     transform: [f32; 16], | ||||
|     scale: f32, | ||||
|  | ||||
| @ -1,8 +1,9 @@ | ||||
| //! Draw meshes of triangles.
 | ||||
| use crate::{settings, Transformation}; | ||||
| use iced_graphics::layer; | ||||
| 
 | ||||
| use bytemuck::{Pod, Zeroable}; | ||||
| use std::mem; | ||||
| use zerocopy::AsBytes; | ||||
| 
 | ||||
| pub use iced_graphics::triangle::{Mesh2D, Vertex2D}; | ||||
| 
 | ||||
| @ -322,7 +323,7 @@ impl Pipeline { | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         let uniforms = uniforms.as_bytes(); | ||||
|         let uniforms = bytemuck::cast_slice(&uniforms); | ||||
| 
 | ||||
|         if let Some(uniforms_size) = | ||||
|             wgpu::BufferSize::new(uniforms.len() as u64) | ||||
| @ -409,7 +410,7 @@ impl Pipeline { | ||||
| } | ||||
| 
 | ||||
| #[repr(C)] | ||||
| #[derive(Debug, Clone, Copy, AsBytes)] | ||||
| #[derive(Debug, Clone, Copy, Zeroable, Pod)] | ||||
| struct Uniforms { | ||||
|     transform: [f32; 16], | ||||
|     // We need to align this to 256 bytes to please `wgpu`...
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user