Struct bevy::prelude::TextureAtlasBuilder
source · pub struct TextureAtlasBuilder<'a> { /* private fields */ }
Expand description
A builder which is used to create a texture atlas from many individual sprites.
Implementations§
source§impl<'a> TextureAtlasBuilder<'a>
impl<'a> TextureAtlasBuilder<'a>
sourcepub fn initial_size(self, size: Vec2) -> TextureAtlasBuilder<'a>
pub fn initial_size(self, size: Vec2) -> TextureAtlasBuilder<'a>
Sets the initial size of the atlas in pixels.
sourcepub fn max_size(self, size: Vec2) -> TextureAtlasBuilder<'a>
pub fn max_size(self, size: Vec2) -> TextureAtlasBuilder<'a>
Sets the max size of the atlas in pixels.
sourcepub fn format(self, format: TextureFormat) -> TextureAtlasBuilder<'a>
pub fn format(self, format: TextureFormat) -> TextureAtlasBuilder<'a>
Sets the texture format for textures in the atlas.
sourcepub fn auto_format_conversion(
self,
auto_format_conversion: bool
) -> TextureAtlasBuilder<'a>
pub fn auto_format_conversion( self, auto_format_conversion: bool ) -> TextureAtlasBuilder<'a>
Control whether the added texture should be converted to the atlas format, if different.
sourcepub fn add_texture(
&mut self,
image_id: Option<AssetId<Image>>,
texture: &'a Image
)
pub fn add_texture( &mut self, image_id: Option<AssetId<Image>>, texture: &'a Image )
Adds a texture to be copied to the texture atlas.
Optionally an asset id can be passed that can later be used with the texture layout to retrieve the index of this texture. The insertion order will reflect the index of the added texture in the finished texture atlas.
sourcepub fn padding(self, padding: UVec2) -> TextureAtlasBuilder<'a>
pub fn padding(self, padding: UVec2) -> TextureAtlasBuilder<'a>
Sets the amount of padding in pixels to add between the textures in the texture atlas.
The x
value provide will be added to the right edge, while the y
value will be added to the bottom edge.
sourcepub fn finish(
self
) -> Result<(TextureAtlasLayout, Image), TextureAtlasBuilderError>
pub fn finish( self ) -> Result<(TextureAtlasLayout, Image), TextureAtlasBuilderError>
Consumes the builder, and returns the newly created texture atlas and the associated atlas layout.
Assigns indices to the textures based on the insertion order. Internally it copies all rectangles from the textures and copies them into a new texture.
Usage
fn my_system(mut commands: Commands, mut textures: ResMut<Assets<Image>>, mut layouts: ResMut<Assets<TextureAtlasLayout>>) {
// Declare your builder
let mut builder = TextureAtlasBuilder::default();
// Customize it
// ...
// Build your texture and the atlas layout
let (atlas_layout, texture) = builder.finish().unwrap();
let texture = textures.add(texture);
let layout = layouts.add(atlas_layout);
// Spawn your sprite
commands.spawn(SpriteSheetBundle {
texture,
atlas: TextureAtlas {
layout,
index: 0
},
..Default::default()
});
}
Errors
If there is not enough space in the atlas texture, an error will be returned. It is then recommended to make a larger sprite sheet.
Trait Implementations§
source§impl<'a> Debug for TextureAtlasBuilder<'a>
impl<'a> Debug for TextureAtlasBuilder<'a>
source§impl Default for TextureAtlasBuilder<'_>
impl Default for TextureAtlasBuilder<'_>
source§fn default() -> TextureAtlasBuilder<'_>
fn default() -> TextureAtlasBuilder<'_>
Auto Trait Implementations§
impl<'a> RefUnwindSafe for TextureAtlasBuilder<'a>
impl<'a> Send for TextureAtlasBuilder<'a>
impl<'a> Sync for TextureAtlasBuilder<'a>
impl<'a> Unpin for TextureAtlasBuilder<'a>
impl<'a> UnwindSafe for TextureAtlasBuilder<'a>
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> 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
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>
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>
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)
&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)
&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<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.