summaryrefslogtreecommitdiffstats
path: root/wgpu/src/image
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--wgpu/src/image.rs27
-rw-r--r--wgpu/src/image/vector.rs4
2 files changed, 14 insertions, 17 deletions
diff --git a/wgpu/src/image.rs b/wgpu/src/image.rs
index 891dba1e..c256ca7e 100644
--- a/wgpu/src/image.rs
+++ b/wgpu/src/image.rs
@@ -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],
}
diff --git a/wgpu/src/image/vector.rs b/wgpu/src/image/vector.rs
index 7648aa7e..95df2e99 100644
--- a/wgpu/src/image/vector.rs
+++ b/wgpu/src/image/vector.rs
@@ -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,
)?;