aboutsummaryrefslogtreecommitdiff
path: root/vgcodec/src/helper.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-11-21 22:28:00 +0100
committermetamuffin <metamuffin@disroot.org>2022-11-21 22:28:00 +0100
commit8101a0df569395811417f24795e3a329090c4f00 (patch)
treed48ca4753d496f9ef18d97eca064a6775b278bad /vgcodec/src/helper.rs
parent83bc23206ad0982fcf2bf6c8e7256190dbe148f0 (diff)
downloadvideo-codec-experiments-8101a0df569395811417f24795e3a329090c4f00.tar
video-codec-experiments-8101a0df569395811417f24795e3a329090c4f00.tar.bz2
video-codec-experiments-8101a0df569395811417f24795e3a329090c4f00.tar.zst
works
Diffstat (limited to 'vgcodec/src/helper.rs')
-rw-r--r--vgcodec/src/helper.rs14
1 files changed, 13 insertions, 1 deletions
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()),