pub struct Image {
pub data: Vec<u8, Global>,
pub texture_descriptor: TextureDescriptor<Option<&'static str>>,
pub sampler_descriptor: SamplerDescriptor<'static>,
}
Fields
data: Vec<u8, Global>
texture_descriptor: TextureDescriptor<Option<&'static str>>
sampler_descriptor: SamplerDescriptor<'static>
Implementations
impl Image
impl Image
pub fn new(
size: Extent3d,
dimension: TextureDimension,
data: Vec<u8, Global>,
format: TextureFormat
) -> Image
pub fn new(
size: Extent3d,
dimension: TextureDimension,
data: Vec<u8, Global>,
format: TextureFormat
) -> Image
Creates a new image from raw binary data and the corresponding metadata.
Panics
Panics if the length of the data
, volume of the size
and the size of the format
do not match.
pub fn new_fill(
size: Extent3d,
dimension: TextureDimension,
pixel: &[u8],
format: TextureFormat
) -> Image
pub fn new_fill(
size: Extent3d,
dimension: TextureDimension,
pixel: &[u8],
format: TextureFormat
) -> Image
Creates a new image from raw binary data and the corresponding metadata, by filling
the image data with the pixel
data repeated multiple times.
Panics
Panics if the size of the format
is not a multiple of the length of the pixel
data.
do not match.
pub fn resize(&mut self, size: Extent3d)
pub fn resize(&mut self, size: Extent3d)
Resizes the image to the new size, by removing information or appending 0 to the data
.
Does not properly resize the contents of the image, but only its internal data
buffer.
pub fn reinterpret_size(&mut self, new_size: Extent3d)
pub fn reinterpret_size(&mut self, new_size: Extent3d)
Changes the size
, asserting that the total number of data elements (pixels) remains the
same.
Panics
Panics if the new_size
does not have the same volume as to old one.
pub fn reinterpret_stacked_2d_as_array(&mut self, layers: u32)
pub fn reinterpret_stacked_2d_as_array(&mut self, layers: u32)
Takes a 2D image containing vertically stacked images of the same size, and reinterprets
it as a 2D array texture, where each of the stacked images becomes one layer of the
array. This is primarily for use with the texture2DArray
shader uniform type.
Panics
Panics if the texture is not 2D, has more than one layers or is not evenly dividable into
the layers
.
pub fn convert(&self, new_format: TextureFormat) -> Option<Image>
pub fn convert(&self, new_format: TextureFormat) -> Option<Image>
Convert a texture from a format to another Only a few formats are supported as input and output:
TextureFormat::R8Unorm
TextureFormat::Rg8Unorm
TextureFormat::Rgba8UnormSrgb
TextureFormat::Bgra8UnormSrgb
pub fn from_buffer(
buffer: &[u8],
image_type: ImageType<'_>
) -> Result<Image, TextureError>
pub fn from_buffer(
buffer: &[u8],
image_type: ImageType<'_>
) -> Result<Image, TextureError>
Load a bytes buffer in a Texture
, according to type image_type
, using the image
crate`
Trait Implementations
impl RenderAsset for Image
impl RenderAsset for Image
pub fn extract_asset(&self) -> <Image as RenderAsset>::ExtractedAsset
pub fn extract_asset(&self) -> <Image as RenderAsset>::ExtractedAsset
Clones the Image.
pub fn prepare_asset(
image: <Image as RenderAsset>::ExtractedAsset,
&mut <<<Image as RenderAsset>::Param as SystemParam>::Fetch as SystemParamFetch<'_, '_>>::Item
) -> Result<<Image as RenderAsset>::PreparedAsset, PrepareAssetError<<Image as RenderAsset>::ExtractedAsset>>
pub fn prepare_asset(
image: <Image as RenderAsset>::ExtractedAsset,
&mut <<<Image as RenderAsset>::Param as SystemParam>::Fetch as SystemParamFetch<'_, '_>>::Item
) -> Result<<Image as RenderAsset>::PreparedAsset, PrepareAssetError<<Image as RenderAsset>::ExtractedAsset>>
Converts the extracted image into a GpuImage
.
type ExtractedAsset = Image
type ExtractedAsset = Image
The representation of the the asset in the “render world”.
type PreparedAsset = GpuImage
type PreparedAsset = GpuImage
The GPU-representation of the the asset.
type Param = (Res<'static, RenderDevice>, Res<'static, Arc<Queue>>)
type Param = (Res<'static, RenderDevice>, Res<'static, Arc<Queue>>)
Specifies all ECS data required by RenderAsset::prepare_asset
.
For convenience use the lifetimeless
SystemParams. Read more
Auto Trait Implementations
impl RefUnwindSafe for Image
impl Send for Image
impl Sync for Image
impl Unpin for Image
impl UnwindSafe for Image
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
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
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn as_any(&self) -> &(dyn Any + 'static)
pub 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. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub 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. Read more
impl<T> FromWorld for T where
T: Default,
impl<T> FromWorld for T where
T: Default,
pub fn from_world(_world: &mut World) -> T
pub fn from_world(_world: &mut World) -> T
Creates Self
using data from the given World
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>ⓘNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
impl<T> TypeUuidDynamic for T where
T: TypeUuid,
impl<T> TypeUuidDynamic for T where
T: TypeUuid,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more