Skip to content

Commit d1a48c9

Browse files
committed
glium: Update dependencies
1 parent 62db5f3 commit d1a48c9

File tree

2 files changed

+71
-49
lines changed

2 files changed

+71
-49
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ v4l-sys = { path = "v4l-sys", version = "0.3.0", optional = true }
1515
v4l2-sys = { path = "v4l2-sys", version = "0.3.0", package="v4l2-sys-mit", optional = true }
1616

1717
[dev-dependencies]
18-
glium = "0.34"
18+
glium = "0.35"
1919
jpeg-decoder = "0.3.0"
20-
winit = "0.29"
20+
winit = "0.30"
2121

2222
[features]
2323
default = ["v4l2"]

examples/glium.rs

Lines changed: 69 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ use v4l::video::capture::Parameters;
1616
use v4l::video::Capture;
1717
use v4l::{Format, FourCC};
1818

19+
use winit::application::ApplicationHandler;
20+
use winit::event::WindowEvent;
21+
use winit::event_loop::ActiveEventLoop;
22+
use winit::window::WindowId;
23+
1924
#[derive(Debug, Clone, Copy)]
2025
enum UserEvent {
2126
WakeUp,
@@ -157,58 +162,75 @@ fn main() -> io::Result<()> {
157162
}
158163
});
159164

160-
event_loop
161-
.run(move |event, elwt| {
162-
let t0 = Instant::now();
163-
let data = rx.recv().unwrap();
164-
let t1 = Instant::now();
165-
166-
let image = glium::texture::RawImage2d::from_raw_rgb_reversed(
167-
&data,
168-
(format.width, format.height),
169-
);
170-
let opengl_texture = glium::texture::Texture2d::new(&display, image).unwrap();
171-
172-
// building the uniforms
173-
let uniforms = uniform! {
174-
matrix: [
175-
[1.0, 0.0, 0.0, 0.0],
176-
[0.0, 1.0, 0.0, 0.0],
177-
[0.0, 0.0, 1.0, 0.0],
178-
[0.0, 0.0, 0.0, 1.0f32]
179-
],
180-
tex: &opengl_texture
181-
};
165+
struct LoopHandler<F> {
166+
user_event: F,
167+
}
182168

183-
// drawing a frame
184-
185-
let mut target = display.draw();
186-
target.clear_color(0.0, 0.0, 0.0, 0.0);
187-
target
188-
.draw(
189-
&vertex_buffer,
190-
&index_buffer,
191-
&program,
192-
&uniforms,
193-
&Default::default(),
194-
)
195-
.unwrap();
196-
target.finish().unwrap();
169+
impl<F: Fn(UserEvent)> ApplicationHandler<UserEvent> for LoopHandler<F> {
170+
fn resumed(&mut self, _event_loop: &ActiveEventLoop) {}
197171

172+
fn window_event(
173+
&mut self,
174+
event_loop: &ActiveEventLoop,
175+
_window_id: WindowId,
176+
event: WindowEvent,
177+
) {
198178
// polling and handling the events received by the window
199-
if let winit::event::Event::WindowEvent {
200-
event: winit::event::WindowEvent::CloseRequested,
201-
..
202-
} = event
203-
{
204-
elwt.exit();
179+
if let winit::event::WindowEvent::CloseRequested = event {
180+
event_loop.exit();
205181
}
182+
}
206183

207-
print!(
208-
"\rms: {}\t (buffer) + {}\t (UI)",
209-
t1.duration_since(t0).as_millis(),
210-
t1.elapsed().as_millis(),
211-
);
184+
fn user_event(&mut self, _event_loop: &ActiveEventLoop, event: UserEvent) {
185+
(self.user_event)(event)
186+
}
187+
}
188+
189+
event_loop
190+
.run_app(&mut LoopHandler {
191+
user_event: move |_event| {
192+
let t0 = Instant::now();
193+
let data = rx.recv().unwrap();
194+
let t1 = Instant::now();
195+
196+
let image = glium::texture::RawImage2d::from_raw_rgb_reversed(
197+
&data,
198+
(format.width, format.height),
199+
);
200+
let opengl_texture = glium::texture::Texture2d::new(&display, image).unwrap();
201+
202+
// building the uniforms
203+
let uniforms = uniform! {
204+
matrix: [
205+
[1.0, 0.0, 0.0, 0.0],
206+
[0.0, 1.0, 0.0, 0.0],
207+
[0.0, 0.0, 1.0, 0.0],
208+
[0.0, 0.0, 0.0, 1.0f32]
209+
],
210+
tex: &opengl_texture
211+
};
212+
213+
// drawing a frame
214+
215+
let mut target = display.draw();
216+
target.clear_color(0.0, 0.0, 0.0, 0.0);
217+
target
218+
.draw(
219+
&vertex_buffer,
220+
&index_buffer,
221+
&program,
222+
&uniforms,
223+
&Default::default(),
224+
)
225+
.unwrap();
226+
target.finish().unwrap();
227+
228+
print!(
229+
"\rms: {}\t (buffer) + {}\t (UI)",
230+
t1.duration_since(t0).as_millis(),
231+
t1.elapsed().as_millis(),
232+
);
233+
},
212234
})
213235
.map_err(io::Error::other)
214236
}

0 commit comments

Comments
 (0)