pub struct AnimatedIndexedImage { /* private fields */ }
Expand description

Series of images to play as an animation

Usage

[set_animate] to play/pause Call [update] in your UI/game update method, passing in your time step delta

Implementations§

§

impl AnimatedIndexedImage

pub fn new( width: u8, height: u8, per_frame: f64, frame_count: u8, palette: Vec<IciColor, Global>, pixels: Vec<u8, Global>, play_type: PlayType ) -> Result<AnimatedIndexedImage, IndexedImageError>

§

impl AnimatedIndexedImage

pub fn set_palette( &mut self, palette: &[IciColor] ) -> Result<(), IndexedImageError>

Replace palette for image Will only return an error if the new palette has less colors than the image needs

pub fn set_palette_replace_id( &mut self, palette: &[IciColor], id: u8 ) -> Result<(), IndexedImageError>

Replace palette for image, any pixels outside the new palette will be replaced with id Will only return an error if id is outside the new palette

pub fn set_palette_replace_color<C>(&mut self, palette: &[IciColor], color: C)where C: Into<IciColor> + Copy,

Replace palette for image, any color indexes outside the palette will be expanded with color

pub fn size(&self) -> (u8, u8)

pub fn set_pixel( &mut self, frame: u8, pixel_idx: usize, color_idx: u8 ) -> Result<(), IndexedImageError>

This is unchecked and if color_idx > min_palette_size_supported will crash when rendering

pub fn get_pixels(&self) -> &[u8]

pub fn get_frame_pixels(&self, idx: u8) -> Result<&[u8], IndexedImageError>

pub fn get_current_frame_pixels(&self) -> &[u8]

pub fn get_pixel( &self, frame: u8, pixel_idx: usize ) -> Result<u8, IndexedImageError>

pub fn get_pixel_index(&self, x: u8, y: u8) -> Result<usize, IndexedImageError>

pub fn as_images(&self) -> Vec<IndexedImage, Global>

pub fn get_frame(&self, idx: usize) -> IndexedImage

pub fn get_color(&self, idx: u8) -> Result<IciColor, IndexedImageError>

pub fn set_color( &mut self, idx: u8, color: IciColor ) -> Result<(), IndexedImageError>

pub fn get_palette(&self) -> &[IciColor]

pub fn min_palette_size_supported(&self) -> u8

pub fn get_per_frame(&self) -> f64

pub fn set_per_frame(&mut self, seconds: f64)

pub fn set_animate(&mut self, animate: bool)

pub fn animate(&self) -> bool

pub fn frame_count(&self) -> u8

pub fn skip_to_next_frame(&mut self)

Doesn’t go to next frame until [update] is called

pub fn delay_next_frame(&mut self, seconds: f64)

Add seconds as one off dely for next frame

pub fn play_type(&self) -> PlayType

pub fn reset(&mut self)

Frame timer to per frame and then depending on play type

  • Once - Frame to 0, playing to false
  • OnceReversed - Frame to end, playing to false
  • Looping - Frame to 0, playing to true
  • LoopingReversed - Frame to end, playing to true
  • LoopingBoth - Frame to 0, playing to true

pub fn set_play_type(&mut self, play_type: PlayType)

Sets play type and [reset]s

pub fn set_just_play_type(&mut self, play_type: PlayType)

Like [set_play_type] but doesn’t change anything else

pub fn reverse(&mut self)

Changes play type { Once <-> OnceReversed Loops <-> LoopsReversed LoopsBoth swaps direction

§

impl AnimatedIndexedImage

pub fn update(&mut self, delta: f64)

Update frame timing

  • delta - Time delta, e.g. timing.fixed_time_step
§

impl AnimatedIndexedImage

pub fn to_file_contents( &self, palette: &FilePalette ) -> Result<Vec<u8, Global>, IndexedImageError>

Errors will only be returned if you FilePalette::Name and the len is invalid

pub fn from_file_contents( bytes: &[u8] ) -> Result<(AnimatedIndexedImage, FilePalette), IndexedImageError>

Create an AnimatedIndexedImage, image palette will be filled with transparency unless file contains colors use image.set_palette* to replace the palette

Trait Implementations§

source§

impl ChangeColors for AnimatedIndexedImage

source§

fn with_saturate(&self, amount: f32) -> AnimatedIndexedImage

De/saturate color by percentage Negative amount increases saturation So -0.1 is 10% more saturated
source§

fn with_brightness(&self, amount: f32) -> AnimatedIndexedImage

Change brightness to amount So 1.1 is 10% brighter
source§

fn saturate(&self) -> Selfwhere Self: Sized,

Increase saturation by 10%
source§

fn desaturate(&self) -> Selfwhere Self: Sized,

Decrease saturation by 10%
source§

fn lighten(&self) -> Selfwhere Self: Sized,

source§

fn darken(&self) -> Selfwhere Self: Sized,

§

impl Clone for AnimatedIndexedImage

§

fn clone(&self) -> AnimatedIndexedImage

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 AnimatedIndexedImage

§

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

Formats the value using the given formatter. Read more
§

impl PartialEq<AnimatedIndexedImage> for AnimatedIndexedImage

§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl StructuralPartialEq for AnimatedIndexedImage

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> AnyToAny for Twhere T: 'static,

source§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

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

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
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.
source§

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

Performs the conversion.
§

impl<T> Upcast<T> for T

§

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