image/
image.rs

1use std::sync::Arc;
2
3use rhachis::{
4    camera::SimpleProjection,
5    graphics::SamplerType,
6    model::{Model, Transform},
7    renderers::{SimpleRenderer, SimpleRendererBuilder},
8    texture::Texture,
9    Game, GameExt,
10};
11
12#[rhachis::run]
13struct Image {
14    renderer: SimpleRenderer,
15}
16
17impl Game for Image {
18    fn init() -> Self {
19        let mut renderer = SimpleRendererBuilder {
20            projection_builder: Box::new(|size| {
21                SimpleProjection::center_height(size.as_vec2(), 2.0)
22            }),
23            ..SimpleRendererBuilder::default()
24        }
25        .build();
26        renderer.models.push(Model::quad_texture(
27            Arc::new(
28                Texture::from_path(
29                    "examples/test.png",
30                    SamplerType {
31                        address_mode: wgpu::AddressMode::ClampToEdge,
32                        filter_mode: wgpu::FilterMode::Linear,
33                    },
34                )
35                .unwrap(),
36            ),
37            vec![Transform::scale((0.5, 0.5, 1.0))],
38        ));
39
40        Self { renderer }
41    }
42
43    fn get_renderer(&mut self) -> &mut dyn rhachis::graphics::Renderer {
44        &mut self.renderer
45    }
46}