pub(crate) fn build_aa_step_texture(device: &wgpu::Device, queue: &wgpu::Queue) -> wgpu::Texture {
const W: u32 = 1024;
let mut pixels = vec![255u8; (W as usize) * 4];
pixels[3] = 0;
let tex = device.create_texture(&wgpu::TextureDescriptor {
label: Some("aa_step"),
size: wgpu::Extent3d {
width: W,
height: 1,
depth_or_array_layers: 1,
},
mip_level_count: 1,
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format: wgpu::TextureFormat::Rgba8Unorm,
usage: wgpu::TextureUsages::TEXTURE_BINDING | wgpu::TextureUsages::COPY_DST,
view_formats: &[],
});
queue.write_texture(
wgpu::TexelCopyTextureInfo {
texture: &tex,
mip_level: 0,
origin: wgpu::Origin3d::ZERO,
aspect: wgpu::TextureAspect::All,
},
&pixels,
wgpu::TexelCopyBufferLayout {
offset: 0,
bytes_per_row: Some(W * 4),
rows_per_image: Some(1),
},
wgpu::Extent3d {
width: W,
height: 1,
depth_or_array_layers: 1,
},
);
tex
}