Struct bevy::render::texture::Image

pub struct Image {
    pub data: Vec<u8, Global>,
    pub texture_descriptor: TextureDescriptor<Option<&'static str>, &'static [TextureFormat]>,
    pub sampler_descriptor: ImageSampler,
    pub texture_view_descriptor: Option<TextureViewDescriptor<'static>>,
}

Fields§

§data: Vec<u8, Global>§texture_descriptor: TextureDescriptor<Option<&'static str>, &'static [TextureFormat]>§sampler_descriptor: ImageSampler

The ImageSampler to use during rendering.

§texture_view_descriptor: Option<TextureViewDescriptor<'static>>

Implementations§

§

impl 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

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 aspect_2d(&self) -> f32

Returns the aspect ratio (height/width) of a 2D image.

pub fn size(&self) -> Vec2

Returns the size of a 2D image.

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)

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)

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>

Convert a texture from a format to another. Only a few formats are supported as input and output:

  • TextureFormat::R8Unorm
  • TextureFormat::Rg8Unorm
  • TextureFormat::Rgba8UnormSrgb

To get Image as a [image::DynamicImage] see: Image::try_into_dynamic.

pub fn from_buffer( buffer: &[u8], image_type: ImageType<'_>, supported_compressed_formats: CompressedImageFormats, is_srgb: bool ) -> Result<Image, TextureError>

Load a bytes buffer in a Image, according to type image_type, using the image crate

pub fn is_compressed(&self) -> bool

Whether the texture format is compressed or uncompressed

§

impl Image

pub fn from_dynamic(dyn_img: DynamicImage, is_srgb: bool) -> Image

Converts a [DynamicImage] to an Image.

pub fn try_into_dynamic(self) -> Result<DynamicImage, Error>

Convert a Image to a [DynamicImage]. Useful for editing image data. Not all TextureFormat are covered, therefore it will return an error if the format is unsupported. Supported formats are:

  • TextureFormat::R8Unorm
  • TextureFormat::Rg8Unorm
  • TextureFormat::Rgba8UnormSrgb

To convert Image to a different format see: Image::convert.

Trait Implementations§

§

impl Clone for Image

§

fn clone(&self) -> Image

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Image

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for Image

§

fn default() -> Image

default is a 1x1x1 all ‘1.0’ texture

§

impl FromReflect for Image

§

fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<Image>

Constructs a concrete instance of Self from a reflected value.
§

fn take_from_reflect( reflect: Box<dyn Reflect + 'static, Global> ) -> Result<Self, Box<dyn Reflect + 'static, Global>>

Attempts to downcast the given value to Self using, constructing the value using from_reflect if that fails. Read more
§

impl GetTypeRegistration for Image

§

impl Reflect for Image

§

fn type_name(&self) -> &str

Returns the type name of the underlying type.
§

fn get_type_info(&self) -> &'static TypeInfo

Returns the TypeInfo of the underlying type. Read more
§

fn into_any(self: Box<Image, Global>) -> Box<dyn Any + 'static, Global>

Returns the value as a Box<dyn Any>.
§

fn as_any(&self) -> &(dyn Any + 'static)

Returns the value as a &dyn Any.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Returns the value as a &mut dyn Any.
§

fn into_reflect(self: Box<Image, Global>) -> Box<dyn Reflect + 'static, Global>

Casts this type to a boxed reflected value.
§

fn as_reflect(&self) -> &(dyn Reflect + 'static)

Casts this type to a reflected value.
§

fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)

Casts this type to a mutable reflected value.
§

fn clone_value(&self) -> Box<dyn Reflect + 'static, Global>

Clones the value as a Reflect trait object. Read more
§

fn apply(&mut self, value: &(dyn Reflect + 'static))

Applies a reflected value to this value. Read more
§

fn set( &mut self, value: Box<dyn Reflect + 'static, Global> ) -> Result<(), Box<dyn Reflect + 'static, Global>>

Performs a type-checked assignment of a reflected value to this value. Read more
§

fn reflect_ref(&self) -> ReflectRef<'_>

Returns an enumeration of “kinds” of type. Read more
§

fn reflect_mut(&mut self) -> ReflectMut<'_>

Returns a mutable enumeration of “kinds” of type. Read more
§

fn reflect_owned(self: Box<Image, Global>) -> ReflectOwned

Returns an owned enumeration of “kinds” of type. Read more
§

fn reflect_hash(&self) -> Option<u64>

Returns a hash of the value (which includes the type). Read more
§

fn reflect_partial_eq(&self, _value: &(dyn Reflect + 'static)) -> Option<bool>

Returns a “partial equality” comparison result. Read more
§

fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Debug formatter for the value. Read more
§

fn serializable(&self) -> Option<Serializable<'_>>

Returns a serializable version of the value. Read more
§

impl RenderAsset for Image

§

fn extract_asset(&self) -> <Image as RenderAsset>::ExtractedAsset

Clones the Image.

§

fn prepare_asset( image: <Image as RenderAsset>::ExtractedAsset, _: &mut <<Image as RenderAsset>::Param as SystemParam>::Item<'_, '_> ) -> Result<<Image as RenderAsset>::PreparedAsset, PrepareAssetError<<Image as RenderAsset>::ExtractedAsset>>

Converts the extracted image into a GpuImage.

§

type ExtractedAsset = Image

The representation of the asset in the “render world”.
§

type PreparedAsset = GpuImage

The GPU-representation of the asset.
§

type Param = (Res<'static, RenderDevice>, Res<'static, RenderQueue>, Res<'static, DefaultImageSampler>)

Specifies all ECS data required by RenderAsset::prepare_asset. For convenience use the lifetimeless SystemParam.
§

impl TypeUuid for Image

§

const TYPE_UUID: Uuid = bevy_reflect::Uuid::from_bytes([110, 162, 109, 166, 108, 248, 78, 162, 153, 134, 29, 123, 246, 193, 125, 111])

§

impl Typed for Image

§

fn type_info() -> &'static TypeInfo

Returns the compile-time info for the underlying type.

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§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,

§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

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.
§

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.
§

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.
§

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.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

§

impl<T> FromWorld for Twhere T: Default,

§

fn from_world(_world: &mut World) -> T

Creates Self using data from the given World
§

impl<T> GetPath for Twhere T: Reflect,

§

fn reflect_path<'r, 'p>( &'r self, path: &'p str ) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>

Returns a reference to the value specified by path. Read more
§

fn reflect_path_mut<'r, 'p>( &'r mut self, path: &'p str ) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>

Returns a mutable reference to the value specified by path. Read more
§

fn path<T, 'r, 'p>( &'r self, path: &'p str ) -> Result<&'r T, ReflectPathError<'p>>where T: Reflect,

Returns a statically typed reference to the value specified by path. Read more
§

fn path_mut<T, 'r, 'p>( &'r mut self, path: &'p str ) -> Result<&'r mut T, ReflectPathError<'p>>where T: Reflect,

Returns a statically typed mutable reference to the value specified by path. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> ToSample<U> for Twhere U: FromSample<T>,

§

fn to_sample_(self) -> U

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TypeData for Twhere T: 'static + Send + Sync + Clone,

§

fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>

§

impl<T> TypeUuidDynamic for Twhere T: TypeUuid,

§

fn type_uuid(&self) -> Uuid

Returns the UUID associated with this value’s type.

§

fn type_name(&self) -> &'static str

Returns the type name of this value’s type.

§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> Asset for Twhere T: TypeUuid + AssetDynamic + TypeUuidDynamic,

§

impl<T> AssetDynamic for Twhere T: Send + Sync + 'static + TypeUuidDynamic,

§

impl<S, T> Duplex<S> for Twhere T: FromSample<S> + ToSample<S>,

§

impl<T> Event for Twhere T: Send + Sync + 'static,