Struct wgpu_types::ImageSubresourceRange
source · #[repr(C)]pub struct ImageSubresourceRange {
pub aspect: TextureAspect,
pub base_mip_level: u32,
pub mip_level_count: Option<NonZeroU32>,
pub base_array_layer: u32,
pub array_layer_count: Option<NonZeroU32>,
}
Expand description
Subresource range within an image
Fields§
§aspect: TextureAspect
Aspect of the texture. Color textures must be TextureAspect::All
.
base_mip_level: u32
Base mip level.
mip_level_count: Option<NonZeroU32>
Mip level count.
If Some(count)
, base_mip_level + count
must be less or equal to underlying texture mip count.
If None
, considered to include the rest of the mipmap levels, but at least 1 in total.
base_array_layer: u32
Base array layer.
array_layer_count: Option<NonZeroU32>
Layer count.
If Some(count)
, base_array_layer + count
must be less or equal to the underlying array count.
If None
, considered to include the rest of the array layers, but at least 1 in total.
Implementations§
source§impl ImageSubresourceRange
impl ImageSubresourceRange
sourcepub fn is_full_resource(&self, mip_levels: u32, array_layers: u32) -> bool
pub fn is_full_resource(&self, mip_levels: u32, array_layers: u32) -> bool
Returns if the given range represents a full resource, with a texture of the given layer count and mip count.
use std::num::NonZeroU32;
let range_none = wgpu::ImageSubresourceRange {
aspect: wgpu::TextureAspect::All,
base_mip_level: 0,
mip_level_count: None,
base_array_layer: 0,
array_layer_count: None,
};
assert_eq!(range_none.is_full_resource(5, 10), true);
let range_some = wgpu::ImageSubresourceRange {
aspect: wgpu::TextureAspect::All,
base_mip_level: 0,
mip_level_count: NonZeroU32::new(5),
base_array_layer: 0,
array_layer_count: NonZeroU32::new(10),
};
assert_eq!(range_some.is_full_resource(5, 10), true);
let range_mixed = wgpu::ImageSubresourceRange {
aspect: wgpu::TextureAspect::All,
base_mip_level: 0,
// Only partial resource
mip_level_count: NonZeroU32::new(3),
base_array_layer: 0,
array_layer_count: None,
};
assert_eq!(range_mixed.is_full_resource(5, 10), false);
sourcepub fn mip_range<L, V>(
&self,
texture_desc: &TextureDescriptor<L, V>
) -> Range<u32>
pub fn mip_range<L, V>( &self, texture_desc: &TextureDescriptor<L, V> ) -> Range<u32>
Returns the mip level range of a subresource range describes for a specific texture.
sourcepub fn layer_range<L, V>(
&self,
texture_desc: &TextureDescriptor<L, V>
) -> Range<u32>
pub fn layer_range<L, V>( &self, texture_desc: &TextureDescriptor<L, V> ) -> Range<u32>
Returns the layer range of a subresource range describes for a specific texture.
Trait Implementations§
source§impl Clone for ImageSubresourceRange
impl Clone for ImageSubresourceRange
source§fn clone(&self) -> ImageSubresourceRange
fn clone(&self) -> ImageSubresourceRange
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ImageSubresourceRange
impl Debug for ImageSubresourceRange
source§impl Default for ImageSubresourceRange
impl Default for ImageSubresourceRange
source§fn default() -> ImageSubresourceRange
fn default() -> ImageSubresourceRange
source§impl<'de> Deserialize<'de> for ImageSubresourceRange
impl<'de> Deserialize<'de> for ImageSubresourceRange
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl PartialEq<ImageSubresourceRange> for ImageSubresourceRange
impl PartialEq<ImageSubresourceRange> for ImageSubresourceRange
source§fn eq(&self, other: &ImageSubresourceRange) -> bool
fn eq(&self, other: &ImageSubresourceRange) -> bool
self
and other
values to be equal, and is used
by ==
.