use bevy::render::{
render_resource::{
Extent3d, TextureDescriptor, TextureDimension, TextureFormat, TextureUsages,
},
renderer::RenderDevice,
texture::{CachedTexture, TextureCache},
view::ViewTarget,
};
use crate::plugin::prelude::*;
pub(crate) fn cached_scaled_2d_texture(
texture_cache: &mut TextureCache,
render_device: &RenderDevice,
settings: &FastLightSettings,
view_target: &ViewTarget,
label: &'static str,
) -> CachedTexture {
let size = view_target.main_texture().size();
let size = Extent3d {
width: (size.width as f32 * settings.texture_scale).round() as u32,
height: (size.height as f32 * settings.texture_scale).round() as u32,
..size
};
let texture_descriptor = TextureDescriptor {
label: Some(label).into(),
size,
mip_level_count: 1,
sample_count: 1,
dimension: TextureDimension::D2,
format: TextureFormat::Rgba8Unorm,
usage: TextureUsages::RENDER_ATTACHMENT | TextureUsages::TEXTURE_BINDING,
view_formats: &[],
};
texture_cache.get(render_device, texture_descriptor)
}