basic_bevy_pixel_camera/
pixel_image.rs

1use bevy::{
2    prelude::*,
3    render::{
4        render_resource::{
5            Extent3d, TextureDescriptor, TextureDimension, TextureFormat, TextureUsages,
6        },
7        texture::{ImageSampler, ImageSamplerDescriptor},
8    },
9};
10
11pub fn create_pixel_image(mut images: ResMut<Assets<Image>>) -> Handle<Image> {
12    let image = Image {
13        texture_descriptor: TextureDescriptor {
14            label: None,
15            size: Extent3d::default(),
16            dimension: TextureDimension::D2,
17            format: TextureFormat::Bgra8UnormSrgb,
18            mip_level_count: 1,
19            sample_count: 1,
20            usage: TextureUsages::TEXTURE_BINDING
21                | TextureUsages::COPY_DST
22                | TextureUsages::RENDER_ATTACHMENT,
23            view_formats: &[],
24        },
25        sampler: ImageSampler::Descriptor(ImageSamplerDescriptor::nearest()),
26        ..default()
27    };
28
29    images.add(image)
30}