pub enum SpriteMipLevel {
SingleChunkSprite {
offset: (u16, u16),
size: (u16, u16),
sprite_chunk: u32,
},
MultiChunkSprite {
size: (u16, u16),
sprite_chunks: Range<u32>,
},
}
Expand description
One mipmap level (i.e. a sprite with a specific resolution) of a
SpriteAsset
.
Each SpriteAsset
has a maximum of MAX_MIPS
of these, with the first
level being the resolution of the original sprite, and each successive mip
having half the width and height of the previous mip.
The sprites do not use hardware mipmapping. Multiple mip levels (especially the smaller ones) can share a single sprite chunk.
Variants§
SingleChunkSprite
A sprite contained within a single chunk. Unlike the other variant, these sprite might not be located in the top-left corner of the chunk, so this variant has an offset field.
Fields
MultiChunkSprite
A sprite split between multiple sprite chunks.
Chunks are allocated for a multi-chunk sprite starting from the
top-left, row by row. Each chunk has a 1px border (copied from the edge
of the sprite, creating a kind of clamp-to-edge effect), inside which is
the actual sprite. The chunks on the right and bottom edges of the
sprite are the only ones that don’t occupy their sprite chunk entirely,
they instead occupy only up to the sprite’s width
and height
plus
the border, effectively taking up a width + 2
by `height
- 2` region from the top left corner of those chunks due to the border.
Trait Implementations§
Source§impl Debug for SpriteMipLevel
impl Debug for SpriteMipLevel
Source§impl Deserialize for SpriteMipLevel
impl Deserialize for SpriteMipLevel
Source§const SERIALIZED_SIZE: usize = 13usize
const SERIALIZED_SIZE: usize = 13usize
Deserialize::deserialize
.Source§fn deserialize(src: &[u8]) -> Self
fn deserialize(src: &[u8]) -> Self
src
must
match the same type’s Deserialize::SERIALIZED_SIZE
constant.Source§impl Serialize for SpriteMipLevel
impl Serialize for SpriteMipLevel
Source§const SERIALIZED_SIZE: usize = 13usize
const SERIALIZED_SIZE: usize = 13usize
Serialize::serialize
.Source§fn serialize(&self, dst: &mut [u8])
fn serialize(&self, dst: &mut [u8])
dst
must
match the same type’s Serialize::SERIALIZED_SIZE
constant.