Struct bevy::render::texture::ImageSamplerDescriptor
pub struct ImageSamplerDescriptor {
pub label: Option<String>,
pub address_mode_u: ImageAddressMode,
pub address_mode_v: ImageAddressMode,
pub address_mode_w: ImageAddressMode,
pub mag_filter: ImageFilterMode,
pub min_filter: ImageFilterMode,
pub mipmap_filter: ImageFilterMode,
pub lod_min_clamp: f32,
pub lod_max_clamp: f32,
pub compare: Option<ImageCompareFunction>,
pub anisotropy_clamp: u16,
pub border_color: Option<ImageSamplerBorderColor>,
}
Expand description
Indicates to an ImageLoader
how an Image
should be sampled.
As this type is part of the ImageLoaderSettings
,
it will be serialized to an image asset .meta
file which might require a migration in case of
a breaking change.
This types mirrors wgpu::SamplerDescriptor
, but that might change in future versions.
Fields§
§label: Option<String>
§address_mode_u: ImageAddressMode
How to deal with out of bounds accesses in the u (i.e. x) direction.
address_mode_v: ImageAddressMode
How to deal with out of bounds accesses in the v (i.e. y) direction.
address_mode_w: ImageAddressMode
How to deal with out of bounds accesses in the w (i.e. z) direction.
mag_filter: ImageFilterMode
How to filter the texture when it needs to be magnified (made larger).
min_filter: ImageFilterMode
How to filter the texture when it needs to be minified (made smaller).
mipmap_filter: ImageFilterMode
How to filter between mip map levels
lod_min_clamp: f32
Minimum level of detail (i.e. mip level) to use.
lod_max_clamp: f32
Maximum level of detail (i.e. mip level) to use.
compare: Option<ImageCompareFunction>
If this is enabled, this is a comparison sampler using the given comparison function.
anisotropy_clamp: u16
Must be at least 1. If this is not 1, all filter modes must be linear.
border_color: Option<ImageSamplerBorderColor>
Border color to use when address_mode
is ImageAddressMode::ClampToBorder
.
Implementations§
§impl ImageSamplerDescriptor
impl ImageSamplerDescriptor
pub fn linear() -> ImageSamplerDescriptor
pub fn linear() -> ImageSamplerDescriptor
Returns a sampler descriptor with Linear
min and mag filters
Examples found in repository?
368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402
fn uv_debug_texture() -> Image {
use bevy::render::{render_asset::RenderAssetUsages, render_resource::*, texture::*};
const TEXTURE_SIZE: usize = 7;
let mut palette = [
164, 164, 164, 255, 168, 168, 168, 255, 153, 153, 153, 255, 139, 139, 139, 255, 153, 153,
153, 255, 177, 177, 177, 255, 159, 159, 159, 255,
];
let mut texture_data = [0; TEXTURE_SIZE * TEXTURE_SIZE * 4];
for y in 0..TEXTURE_SIZE {
let offset = TEXTURE_SIZE * y * 4;
texture_data[offset..(offset + TEXTURE_SIZE * 4)].copy_from_slice(&palette);
palette.rotate_right(12);
}
let mut img = Image::new_fill(
Extent3d {
width: TEXTURE_SIZE as u32,
height: TEXTURE_SIZE as u32,
depth_or_array_layers: 1,
},
TextureDimension::D2,
&texture_data,
TextureFormat::Rgba8UnormSrgb,
RenderAssetUsages::RENDER_WORLD,
);
img.sampler = ImageSampler::Descriptor(ImageSamplerDescriptor {
address_mode_u: ImageAddressMode::Repeat,
address_mode_v: ImageAddressMode::MirrorRepeat,
mag_filter: ImageFilterMode::Nearest,
..ImageSamplerDescriptor::linear()
});
img
}
pub fn nearest() -> ImageSamplerDescriptor
pub fn nearest() -> ImageSamplerDescriptor
Returns a sampler descriptor with Nearest
min and mag filters
pub fn as_wgpu(&self) -> SamplerDescriptor<'_>
Trait Implementations§
§impl Clone for ImageSamplerDescriptor
impl Clone for ImageSamplerDescriptor
§fn clone(&self) -> ImageSamplerDescriptor
fn clone(&self) -> ImageSamplerDescriptor
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for ImageSamplerDescriptor
impl Debug for ImageSamplerDescriptor
§impl Default for ImageSamplerDescriptor
impl Default for ImageSamplerDescriptor
§fn default() -> ImageSamplerDescriptor
fn default() -> ImageSamplerDescriptor
§impl<'de> Deserialize<'de> for ImageSamplerDescriptor
impl<'de> Deserialize<'de> for ImageSamplerDescriptor
§fn deserialize<__D>(
__deserializer: __D
) -> Result<ImageSamplerDescriptor, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<ImageSamplerDescriptor, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl<'a> From<SamplerDescriptor<'a>> for ImageSamplerDescriptor
impl<'a> From<SamplerDescriptor<'a>> for ImageSamplerDescriptor
§fn from(value: SamplerDescriptor<'_>) -> ImageSamplerDescriptor
fn from(value: SamplerDescriptor<'_>) -> ImageSamplerDescriptor
§impl Serialize for ImageSamplerDescriptor
impl Serialize for ImageSamplerDescriptor
§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for ImageSamplerDescriptor
impl RefUnwindSafe for ImageSamplerDescriptor
impl Send for ImageSamplerDescriptor
impl Sync for ImageSamplerDescriptor
impl Unpin for ImageSamplerDescriptor
impl UnwindSafe for ImageSamplerDescriptor
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.