diff options
Diffstat (limited to 'vgcodec/src/helper.rs')
-rw-r--r-- | vgcodec/src/helper.rs | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/vgcodec/src/helper.rs b/vgcodec/src/helper.rs deleted file mode 100644 index 13f9c1a..0000000 --- a/vgcodec/src/helper.rs +++ /dev/null @@ -1,40 +0,0 @@ -use log::info; -use wgpu::{Extent3d, Queue, Texture}; - -pub fn write_texture(queue: &Queue, target: &Texture, data: &[u8], size: Extent3d) { - info!("uploading texture {size:?} ({} bytes)", data.len()); - - let bytes_per_pixel = std::mem::size_of::<u32>() as u32; - let unpadded_bytes_per_row = size.width * bytes_per_pixel; - let align = wgpu::COPY_BYTES_PER_ROW_ALIGNMENT; - let padded_bytes_per_row_padding = (align - unpadded_bytes_per_row % align) % align; - let padded_bytes_per_row = unpadded_bytes_per_row + padded_bytes_per_row_padding; - - let mut padded = vec![]; - for y in 0..(size.height as usize) { - for x in 0..(size.width as usize) { - for c in 0..4 { - padded.push(data[c + x * 4 + y * 4 * size.width as usize]) - } - } - for _ in 0..padded_bytes_per_row_padding { - padded.push(0) - } - } - - queue.write_texture( - wgpu::ImageCopyTexture { - texture: &target, - mip_level: 0, - origin: wgpu::Origin3d::ZERO, - aspect: wgpu::TextureAspect::All, - }, - &padded, - wgpu::ImageDataLayout { - offset: 0, - bytes_per_row: Some(std::num::NonZeroU32::try_from(padded_bytes_per_row).unwrap()), - rows_per_image: None, - }, - size, - ); -} |