pub fn screen_height() -> f32Examples found in repository?
examples/screenshot_history.rs (line 17)
16 fn update(&mut self, c: &mut EngineContext) {
17 let screen_size = uvec2(screen_width() as u32, screen_height() as u32);
18
19 if !self.initialized {
20 self.initialized = true;
21
22 c.renderer.screenshot_params.record_screenshots = true;
23 c.renderer.screenshot_params.screenshot_interval_n = 10;
24 c.renderer.screenshot_params.history_length = 5;
25
26 for i in 0..c.renderer.screenshot_params.history_length {
27 self.handles.push(
28 c.renderer
29 .context
30 .texture_creator
31 .borrow_mut()
32 .handle_from_size(
33 &format!("screenshot-{i}"),
34 screen_size,
35 RED,
36 ),
37 );
38 }
39 }
40
41 if is_key_pressed(KeyCode::F) {
42 let start = Instant::now();
43
44 save_screenshots_to_folder(
45 "screenshot-history",
46 &c.renderer.screenshot_history_buffer,
47 );
48
49 println!(
50 "Saved screenshots to folder 'screenshot-history', time: {}ms",
51 start.elapsed().as_millis()
52 );
53 }
54
55 for (screenshot, handle) in
56 c.renderer.screenshot_history_buffer.iter().zip(self.handles.iter())
57 {
58 c.renderer.context.texture_creator.borrow_mut().update_texture(
59 &imageops::flip_vertical(&screenshot.image),
60 *handle,
61 );
62 }
63
64 let ratio = screen_size.x as f32 / screen_size.y as f32;
65 let w = 2.0;
66
67 for (i, handle) in self.handles.iter().enumerate() {
68 draw_sprite(
69 *handle,
70 vec2(i as f32 * 2.0 + 2.0, 2.0),
71 WHITE,
72 100,
73 vec2(w, w / ratio),
74 );
75 }
76
77 draw_text_ex(
78 "Press F to save screenshots to disk",
79 Vec2::ZERO,
80 TextAlign::Center,
81 TextParams::default(),
82 );
83
84 let time = get_time() as f32;
85
86 clear_background(Color::rgb8(13, 2, 8));
87
88 let colors = [RED, GREEN, BLUE, YELLOW, CYAN];
89
90 for (i, color) in colors.into_iter().enumerate() {
91 let s = (i + 1) as f32;
92 let t = s * time;
93
94 let z_index = i as i32;
95
96 draw_circle(
97 vec2(i as f32 * 2.0 + 2.0, t.sin() - 2.0),
98 s * 0.75,
99 color,
100 z_index,
101 );
102
103 let r = rescale(i, 0..colors.len(), 2..5);
104 draw_arc(
105 vec2(-s - 2.0, t.sin() - 2.0),
106 r,
107 PI - t.sin(),
108 PI - t.cos(),
109 color,
110 z_index,
111 );
112
113 draw_arc_outline(
114 vec2(-0.5, s - 0.5),
115 r,
116 s / 10.0,
117 PI / 4.0 - t.cos().powf(2.0),
118 t.sin().powf(2.0) + PI * 3.0 / 4.0,
119 // t.cos(),
120 color,
121 z_index,
122 );
123 }
124 }