pub struct Texture {
pub texture: Arc<Texture>,
pub view: Arc<TextureView>,
pub sampler: Arc<Sampler>,
}Expand description
A texture living on the GPU.
Fields§
§texture: Arc<Texture>§view: Arc<TextureView>§sampler: Arc<Sampler>Implementations§
Source§impl Texture
impl Texture
pub const DEPTH_FORMAT: TextureFormat = wgpu::TextureFormat::Depth32Float
pub const HDR_TEXTURE_FORMAT: TextureFormat = wgpu::TextureFormat::Rgba16Float
pub fn width(&self) -> u32
pub fn height(&self) -> u32
Sourcepub fn new_cubemap_texture(
device: &Device,
queue: &Queue,
label: Option<&str>,
texture_size: u32,
face_textures: &[Texture],
image_format: TextureFormat,
mip_levels: u32,
) -> Self
pub fn new_cubemap_texture( device: &Device, queue: &Queue, label: Option<&str>, texture_size: u32, face_textures: &[Texture], image_format: TextureFormat, mip_levels: u32, ) -> Self
Create a cubemap texture from 6 faces.
Sourcepub fn new_with(
device: &Device,
queue: &Queue,
label: Option<&str>,
usage: Option<TextureUsages>,
sampler: Option<Sampler>,
format: TextureFormat,
color_channels: u32,
color_channel_bytes: u32,
width: u32,
height: u32,
mip_level_count: u32,
data: &[u8],
) -> Self
pub fn new_with( device: &Device, queue: &Queue, label: Option<&str>, usage: Option<TextureUsages>, sampler: Option<Sampler>, format: TextureFormat, color_channels: u32, color_channel_bytes: u32, width: u32, height: u32, mip_level_count: u32, data: &[u8], ) -> Self
Create a new texture.
Sourcepub fn new(
device: &Device,
queue: &Queue,
label: Option<&str>,
usage: Option<TextureUsages>,
color_channels: u32,
width: u32,
height: u32,
data: &[u8],
) -> Self
pub fn new( device: &Device, queue: &Queue, label: Option<&str>, usage: Option<TextureUsages>, color_channels: u32, width: u32, height: u32, data: &[u8], ) -> Self
Create a new texture.
This defaults the format to Rgba8UnormSrgb and assumes a pixel is 1
byte per channel.
pub fn from_image_bytes( device: &Device, queue: &Queue, bytes: &[u8], label: &str, ) -> Result<Self, TextureError>
pub fn from_dynamic_image( device: &Device, queue: &Queue, dyn_img: DynamicImage, label: Option<&str>, usage: Option<TextureUsages>, mip_level_count: u32, ) -> Self
pub fn from_image_buffer<P>( device: &Device, queue: &Queue, img: &ImageBuffer<P, Vec<u8>>, label: Option<&str>, usage: Option<TextureUsages>, mip_level_count: Option<u32>, ) -> Result<Self, TextureError>
pub fn from_wgpu_tex( device: &Device, texture: impl Into<Arc<Texture>>, sampler: Option<SamplerDescriptor<'_>>, mip_level_count: Option<u32>, ) -> Self
pub fn create_depth_texture( device: &Device, width: u32, height: u32, multisample_count: u32, ) -> Self
Sourcepub fn read(
texture: &Texture,
device: &Device,
queue: &Queue,
width: usize,
height: usize,
channels: usize,
subpixel_bytes: usize,
) -> CopiedTextureBuffer
pub fn read( texture: &Texture, device: &Device, queue: &Queue, width: usize, height: usize, channels: usize, subpixel_bytes: usize, ) -> CopiedTextureBuffer
Read the texture from the GPU.
To read the texture you must provide the width, height, the number of color/alpha channels and the number of bytes in the underlying subpixel type (usually u8=1, u16=2 or f32=4).
Sourcepub fn read_from(
texture: &Texture,
device: &Device,
queue: &Queue,
width: usize,
height: usize,
channels: usize,
subpixel_bytes: usize,
mip_level: u32,
origin: Option<Origin3d>,
) -> CopiedTextureBuffer
pub fn read_from( texture: &Texture, device: &Device, queue: &Queue, width: usize, height: usize, channels: usize, subpixel_bytes: usize, mip_level: u32, origin: Option<Origin3d>, ) -> CopiedTextureBuffer
Read the texture from the GPU.
To read the texture you must provide the width, height, the number of color/alpha channels and the number of bytes in the underlying subpixel type (usually u8=1, u16=2 or f32=4).
pub fn read_hdr_image( &self, device: &Device, queue: &Queue, ) -> Result<Rgba32FImage, TextureError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Texture
impl !RefUnwindSafe for Texture
impl Send for Texture
impl Sync for Texture
impl Unpin for Texture
impl !UnwindSafe for Texture
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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