From 8101a0df569395811417f24795e3a329090c4f00 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 21 Nov 2022 22:28:00 +0100 Subject: works --- vgcodec/src/helper.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'vgcodec/src/helper.rs') diff --git a/vgcodec/src/helper.rs b/vgcodec/src/helper.rs index 1d029b8..13f9c1a 100644 --- a/vgcodec/src/helper.rs +++ b/vgcodec/src/helper.rs @@ -10,6 +10,18 @@ pub fn write_texture(queue: &Queue, target: &Texture, data: &[u8], size: Extent3 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, @@ -17,7 +29,7 @@ pub fn write_texture(queue: &Queue, target: &Texture, data: &[u8], size: Extent3 origin: wgpu::Origin3d::ZERO, aspect: wgpu::TextureAspect::All, }, - &data, + &padded, wgpu::ImageDataLayout { offset: 0, bytes_per_row: Some(std::num::NonZeroU32::try_from(padded_bytes_per_row).unwrap()), -- cgit v1.2.3-70-g09d2