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}