pixel_engine/engine/
screen.rs

1use px_draw::traits::SmartDrawingTrait;
2
3impl px_draw::graphics::DrawSpriteTrait for crate::Engine {
4    fn size(&self) -> pixel_engine_draw::vector2::Vu2d {
5        self.screen.size()
6    }
7
8    fn get_pixel(
9        &self,
10        pos: pixel_engine_draw::vector2::Vi2d,
11    ) -> Option<pixel_engine_draw::graphics::Color> {
12        px_draw::graphics::DrawSpriteTrait::get_pixel(&self.screen, pos)
13    }
14    fn set_pixel(
15        &mut self,
16        pos: pixel_engine_draw::vector2::Vi2d,
17        col: pixel_engine_draw::graphics::Color,
18    ) {
19        self.screen.set_pixel(pos, col);
20        self.has_changed = true;
21    }
22    unsafe fn get_pixel_unchecked(
23        &self,
24        pos: pixel_engine_draw::vector2::Vu2d,
25    ) -> pixel_engine_draw::graphics::Color {
26        self.screen.get_pixel_unchecked(pos)
27    }
28
29    unsafe fn set_pixel_unchecked(
30        &mut self,
31        pos: pixel_engine_draw::vector2::Vu2d,
32        col: pixel_engine_draw::graphics::Color,
33    ) {
34        self.screen.set_pixel_unchecked(pos, col);
35        self.has_changed = true;
36    }
37}
38
39impl SmartDrawingTrait for crate::Engine {
40    fn draw<P: Into<pixel_engine_draw::vector2::Vi2d>>(
41        &mut self,
42        pos: P,
43        col: pixel_engine_draw::graphics::Color,
44    ) {
45        self.has_changed = true;
46        self.screen.draw(pos, col);
47    }
48
49    fn clear(&mut self, col: pixel_engine_draw::graphics::Color) {
50        self.screen.clear(col);
51    }
52
53    fn get_size(&self) -> pixel_engine_draw::vector2::Vu2d {
54        self.screen.get_size()
55    }
56
57    fn set_pixel_mode(&mut self, mode: pixel_engine_draw::graphics::PixelMode) {
58        self.screen.set_pixel_mode(mode);
59    }
60
61    fn get_pixel<P: Into<pixel_engine_draw::vector2::Vi2d>>(
62        &self,
63        pos: P,
64    ) -> Option<pixel_engine_draw::graphics::Color> {
65        self.screen.get_pixel(pos)
66    }
67
68    fn set_blend_factor(&mut self, f: f32) {
69        self.screen.set_blend_factor(f);
70    }
71
72    fn get_textsheet(&self) -> &'static pixel_engine_draw::graphics::Sprite {
73        self.screen.get_textsheet()
74    }
75
76    fn get_pixel_mode(&self) -> pixel_engine_draw::graphics::PixelMode {
77        self.screen.get_pixel_mode()
78    }
79
80    fn get_blend_factor(&self) -> f32 {
81        self.screen.get_blend_factor()
82    }
83}