MCPcopy Create free account
hub / github.com/Rust-GPU/rust-cuda / process_event

Method process_event

examples/cuda/cpu/path_tracer/src/viewer.rs:122–171  ·  view source on GitHub ↗
(
        &mut self,
        ev: Event<()>,
        control_flow: &mut ControlFlow,
        last_frame: &mut Instant,
    )

Source from the content-addressed store, hash-verified

120 }
121
122 pub fn process_event(
123 &mut self,
124 ev: Event<()>,
125 control_flow: &mut ControlFlow,
126 last_frame: &mut Instant,
127 ) {
128 self.renderer.process_event(&ev, control_flow);
129 {
130 let gl_window = self.display.gl_window();
131 self.platform
132 .handle_event(self.imgui_ctx.io_mut(), gl_window.window(), &ev);
133 }
134
135 #[allow(clippy::single_match)]
136 match ev {
137 Event::NewEvents(_) => {
138 let now = Instant::now();
139 self.imgui_ctx.io_mut().update_delta_time(now - *last_frame);
140 *last_frame = now;
141 }
142 Event::MainEventsCleared => {
143 let gl_window = self.display.gl_window();
144 self.platform
145 .prepare_frame(self.imgui_ctx.io_mut(), gl_window.window())
146 .expect("Failed to prepare frame");
147 gl_window.window().request_redraw();
148 }
149 Event::WindowEvent { event, .. } => match event {
150 WindowEvent::CloseRequested => {
151 *control_flow = ControlFlow::Exit;
152 }
153 WindowEvent::Resized(new) => {
154 let image_size = Vec2::new(new.width as usize, new.height as usize);
155 self.image_size = image_size;
156 self.texture = SrgbTexture2d::empty(
157 &self.display,
158 image_size.x as u32,
159 image_size.y as u32,
160 )
161 .unwrap();
162 self.renderer.resize(image_size);
163 }
164 _ => {}
165 },
166 Event::RedrawRequested(_) => {
167 self.render();
168 }
169 _ => {}
170 }
171 }
172
173 pub fn render(&mut self) {
174 let ViewerRenderer {

Callers 1

runFunction · 0.45

Calls 4

newFunction · 0.85
expectMethod · 0.45
resizeMethod · 0.45
renderMethod · 0.45

Tested by

no test coverage detected