image/
image.rs

1extern crate pushrod;
2extern crate sdl2;
3
4use pushrod::render::engine::Engine;
5use pushrod::render::widget::Widget;
6use pushrod::render::widget_config::{CompassPosition, CONFIG_COLOR_BASE, CONFIG_IMAGE_POSITION};
7use pushrod::render::{make_points, make_size};
8use pushrod::widgets::image_widget::*;
9use sdl2::pixels::Color;
10
11pub fn main() {
12    const WIDTH: u32 = 500;
13    const HEIGHT: u32 = 270;
14
15    let sdl_context = sdl2::init().unwrap();
16    let video_subsystem = sdl_context.video().unwrap();
17    let window = video_subsystem
18        .window("pushrod-render image demo", WIDTH, HEIGHT)
19        .position_centered()
20        .opengl()
21        .build()
22        .unwrap();
23    let mut engine = Engine::new(WIDTH, HEIGHT, 60);
24    let mut widget1 = ImageWidget::new(
25        String::from("assets/rust-48x48.jpg"),
26        make_points(20, 16),
27        make_size(60, 60),
28        false,
29    );
30
31    widget1.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
32    widget1.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::NW);
33
34    let mut widget2 = ImageWidget::new(
35        String::from("assets/rust-48x48.jpg"),
36        make_points(90, 16),
37        make_size(60, 60),
38        false,
39    );
40
41    widget2.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
42    widget2.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::N);
43
44    let mut widget3 = ImageWidget::new(
45        String::from("assets/rust-48x48.jpg"),
46        make_points(160, 16),
47        make_size(60, 60),
48        false,
49    );
50
51    widget3.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
52    widget3.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::NE);
53
54    let mut widget4 = ImageWidget::new(
55        String::from("assets/rust-48x48.jpg"),
56        make_points(20, 86),
57        make_size(60, 60),
58        false,
59    );
60
61    widget4.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
62    widget4.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::W);
63
64    let mut widget5 = ImageWidget::new(
65        String::from("assets/rust-48x48.jpg"),
66        make_points(90, 86),
67        make_size(60, 60),
68        false,
69    );
70
71    widget5.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
72    widget5.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::Center);
73
74    let mut widget6 = ImageWidget::new(
75        String::from("assets/rust-48x48.jpg"),
76        make_points(160, 86),
77        make_size(60, 60),
78        false,
79    );
80
81    widget6.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
82    widget6.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::E);
83
84    let mut widget7 = ImageWidget::new(
85        String::from("assets/rust-48x48.jpg"),
86        make_points(20, 156),
87        make_size(60, 60),
88        false,
89    );
90
91    widget7.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
92    widget7.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::SW);
93
94    let mut widget8 = ImageWidget::new(
95        String::from("assets/rust-48x48.jpg"),
96        make_points(90, 156),
97        make_size(60, 60),
98        false,
99    );
100
101    widget8.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
102    widget8.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::S);
103
104    let mut widget9 = ImageWidget::new(
105        String::from("assets/rust-48x48.jpg"),
106        make_points(160, 156),
107        make_size(60, 60),
108        false,
109    );
110
111    widget9.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
112    widget9.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::SE);
113
114    let mut widget10 = ImageWidget::new(
115        String::from("assets/rust-48x48.jpg"),
116        make_points(230, 16),
117        make_size(80, 80),
118        true,
119    );
120
121    widget10.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
122    widget10.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::NW);
123
124    let mut widget11 = ImageWidget::new(
125        String::from("assets/rust-48x48.jpg"),
126        make_points(260, 46),
127        make_size(120, 120),
128        true,
129    );
130
131    widget11.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
132    widget11.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::NW);
133
134    let mut widget12 = ImageWidget::new(
135        String::from("assets/rust-48x48.jpg"),
136        make_points(320, 86),
137        make_size(160, 160),
138        true,
139    );
140
141    widget12.set_color(CONFIG_COLOR_BASE, Color::RGB(0, 0, 0));
142    widget12.set_compass(CONFIG_IMAGE_POSITION, CompassPosition::NW);
143
144    engine.add_widget(Box::new(widget1), String::from("widget1"));
145    engine.add_widget(Box::new(widget2), String::from("widget2"));
146    engine.add_widget(Box::new(widget3), String::from("widget3"));
147    engine.add_widget(Box::new(widget4), String::from("widget4"));
148    engine.add_widget(Box::new(widget5), String::from("widget5"));
149    engine.add_widget(Box::new(widget6), String::from("widget6"));
150    engine.add_widget(Box::new(widget7), String::from("widget7"));
151    engine.add_widget(Box::new(widget8), String::from("widget8"));
152    engine.add_widget(Box::new(widget9), String::from("widget9"));
153    engine.add_widget(Box::new(widget10), String::from("widget10"));
154    engine.add_widget(Box::new(widget11), String::from("widget11"));
155    engine.add_widget(Box::new(widget12), String::from("widget12"));
156
157    engine.run(sdl_context, window);
158}