Skip to main content

Sprite

Struct Sprite 

Source
pub struct Sprite {
    pub source: SourceRect,
    pub color: Color,
    pub transform: Affine2,
}
Expand description

One piece of a sprite sheet, and where it goes.

The unit a batched sprite draw is built from. source is in texels of the sheet, because that is how a sheet’s layout is known – a packer emits pixel rectangles, and normalizing them at every call site is how one of them eventually gets normalized twice. The quad is that rectangle’s size in user units before the transform, so a sprite drawn with the identity lands at its own size with its top-left corner at the origin.

Fields§

§source: SourceRect

The part of the sheet to draw, in texels.

§color: Color

A color multiplied into this sprite alone.

White changes nothing, and is what Sprite::new and Sprite::at give. This is what makes one sheet serve a whole palette – and it is per sprite rather than per batch, which is the difference between one draw and one draw per color.

§transform: Affine2

Where it goes, applied to a quad running from the origin to the source’s size.

A full affine rather than the rotation-scale-translation that dart:ui restricts this to. That restriction buys a smaller per-sprite payload for a shader that applies the transform itself; these are applied here, where a general transform costs exactly the same and a caller who wants to skew a sprite is not told they may not.

Implementations§

Source§

impl Sprite

Source

pub fn new(source: SourceRect, transform: Affine2) -> Sprite

Source

pub fn with_color(self, color: Color) -> Sprite

The same sprite, tinted.

Source

pub fn at(source: SourceRect, position: Vec2) -> Sprite

A sprite placed without rotation or scaling.

Trait Implementations§

Source§

impl Clone for Sprite

Source§

fn clone(&self) -> Sprite

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Sprite

Source§

impl Debug for Sprite

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Sprite

Source§

fn eq(&self, other: &Sprite) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Sprite

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

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