1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use crate::drawing::Renderable;
use crate::{sized_renderable, Graphics};
use graphics_shapes::coord::Coord;
use ici_files::prelude::*;

sized_renderable!(
    RenderableIndexedImage,
    IndexedImage,
    |img: &IndexedImage| (img.width() as usize, img.height() as usize),
    |g: &mut Graphics, img: &IndexedImage| g.draw_indexed_image((0, 0), img)
);
sized_renderable!(
    RenderableAnimatedImage,
    AnimatedIndexedImage,
    |img: &AnimatedIndexedImage| (img.width() as usize, img.height() as usize),
    |g: &mut Graphics, img: &AnimatedIndexedImage| g.draw_animated_image((0, 0), img)
);
sized_renderable!(
    RenderableWrappedImage,
    IndexedWrapper,
    |img: &IndexedWrapper| (img.width() as usize, img.height() as usize),
    |g: &mut Graphics, img: &IndexedWrapper| g.draw_wrapped_image((0, 0), img)
);

impl RenderableAnimatedImage {
    pub fn update(&mut self, delta: f64) {
        self.item.update(delta);
    }
}

impl RenderableWrappedImage {
    pub fn update(&mut self, delta: f64) {
        self.item.update(delta);
    }
}