Skip to content

Commit aeca45b

Browse files
Merge pull request #1262 from mitchmindtree/winit_versions
Support different versions of winit for different backends
2 parents b279448 + c6160ad commit aeca45b

30 files changed

Lines changed: 443 additions & 355 deletions

backends/conrod_gfx/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,4 @@ petgraph = "0.4"
2929
## glutin_gfx.rs example dependencies
3030
gfx_window_glutin = "0.28"
3131
glutin = "0.19"
32+
winit = "0.18"

backends/conrod_gfx/examples/all_winit_gfx.rs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
extern crate conrod_core;
99
extern crate conrod_example_shared;
1010
extern crate conrod_gfx;
11+
#[macro_use]
1112
extern crate conrod_winit;
1213
extern crate gfx;
1314
extern crate gfx_core;
1415
extern crate gfx_window_glutin;
1516
extern crate glutin;
1617
extern crate find_folder;
1718
extern crate image;
18-
19-
use self::conrod_winit::winit;
19+
extern crate winit;
2020

2121
use conrod_example_shared::{WIN_W, WIN_H};
2222
use gfx::Device;
@@ -25,6 +25,24 @@ const CLEAR_COLOR: [f32; 4] = [0.2, 0.2, 0.2, 1.0];
2525

2626
type DepthFormat = gfx::format::DepthStencil;
2727

28+
// A wrapper around the winit window that allows us to implement the trait necessary for enabling
29+
// the winit <-> conrod conversion functions.
30+
struct WindowRef<'a>(&'a winit::Window);
31+
32+
// Implement the `WinitWindow` trait for `WindowRef` to allow for generating compatible conversion
33+
// functions.
34+
impl<'a> conrod_winit::WinitWindow for WindowRef<'a> {
35+
fn get_inner_size(&self) -> Option<(u32, u32)> {
36+
winit::Window::get_inner_size(&self.0).map(Into::into)
37+
}
38+
fn hidpi_factor(&self) -> f32 {
39+
winit::Window::get_hidpi_factor(&self.0) as _
40+
}
41+
}
42+
43+
// Generate the winit <-> conrod_core type conversion fns.
44+
conrod_winit::conversion_fns!();
45+
2846
fn main() {
2947
// Builder for window
3048
let builder = glutin::WindowBuilder::new()
@@ -121,7 +139,7 @@ fn main() {
121139
events_loop.poll_events(|event|{
122140

123141
// Convert winit event to conrod event, requires conrod to be built with the `winit` feature
124-
if let Some(event) = conrod_winit::convert_event(event.clone(), window.window()) {
142+
if let Some(event) = convert_event(event.clone(), &WindowRef(window.window())) {
125143
ui.handle_event(event);
126144
}
127145

backends/conrod_glium/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ find_folder = "0.3.0"
2626
image = "0.21"
2727
petgraph = "0.4"
2828
rand = "0.6"
29+
winit = "0.18"

backends/conrod_glium/examples/all_winit_glium.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
extern crate conrod_core;
33
extern crate conrod_example_shared;
44
extern crate conrod_glium;
5+
#[macro_use]
56
extern crate conrod_winit;
67
extern crate find_folder;
78
extern crate glium;
@@ -77,7 +78,7 @@ fn main() {
7778
for event in event_loop.next(&mut events_loop) {
7879

7980
// Use the `winit` backend feature to convert the winit event to a conrod one.
80-
if let Some(event) = conrod_winit::convert_event(event.clone(), &display) {
81+
if let Some(event) = support::convert_event(event.clone(), &display) {
8182
ui.handle_event(event);
8283
event_loop.needs_update();
8384
}

backends/conrod_glium/examples/all_winit_glium_threaded.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
extern crate conrod_core;
55
extern crate conrod_example_shared;
66
extern crate conrod_glium;
7+
#[macro_use]
78
extern crate conrod_winit;
89
extern crate find_folder;
910
extern crate glium;
@@ -154,7 +155,7 @@ fn main() {
154155

155156
events_loop.run_forever(|event| {
156157
// Use the `winit` backend feature to convert the winit event to a conrod one.
157-
if let Some(event) = conrod_winit::convert_event(event.clone(), &display) {
158+
if let Some(event) = support::convert_event(event.clone(), &display) {
158159
event_tx.send(event).unwrap();
159160
}
160161

backends/conrod_glium/examples/canvas.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
#[macro_use] extern crate conrod_core;
44
extern crate conrod_glium;
5-
extern crate conrod_winit;
5+
#[macro_use] extern crate conrod_winit;
66
extern crate find_folder;
77
extern crate glium;
88
extern crate image;
@@ -52,7 +52,7 @@ fn main() {
5252
for event in event_loop.next(&mut events_loop) {
5353

5454
// Use the `winit` backend feature to convert the winit event to a conrod one.
55-
if let Some(event) = conrod_winit::convert_event(event.clone(), &display) {
55+
if let Some(event) = support::convert_event(event.clone(), &display) {
5656
ui.handle_event(event);
5757
event_loop.needs_update();
5858
}

backends/conrod_glium/examples/counter.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#[macro_use] extern crate conrod_core;
22
extern crate conrod_glium;
3-
extern crate conrod_winit;
3+
#[macro_use] extern crate conrod_winit;
44
extern crate find_folder;
55
extern crate glium;
66

@@ -53,7 +53,7 @@ fn main() {
5353
for event in event_loop.next(&mut events_loop) {
5454

5555
// Use the `winit` backend feature to convert the winit event to a conrod one.
56-
if let Some(event) = conrod_winit::convert_event(event.clone(), &display) {
56+
if let Some(event) = support::convert_event(event.clone(), &display) {
5757
ui.handle_event(event);
5858
event_loop.needs_update();
5959
}

backends/conrod_glium/examples/custom_widget.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
1414
#[macro_use] extern crate conrod_core;
1515
extern crate conrod_glium;
16-
extern crate conrod_winit;
16+
#[macro_use] extern crate conrod_winit;
1717
extern crate find_folder;
1818
extern crate glium;
1919

@@ -288,7 +288,7 @@ fn main() {
288288
for event in event_loop.next(&mut events_loop) {
289289

290290
// Use the `winit` backend feature to convert the winit event to a conrod one.
291-
if let Some(event) = conrod_winit::convert_event(event.clone(), &display) {
291+
if let Some(event) = support::convert_event(event.clone(), &display) {
292292
ui.handle_event(event);
293293
event_loop.needs_update();
294294
}

backends/conrod_glium/examples/file_navigator.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#[macro_use] extern crate conrod_core;
22
extern crate conrod_glium;
3-
extern crate conrod_winit;
3+
#[macro_use] extern crate conrod_winit;
44
extern crate find_folder;
55
extern crate glium;
66

@@ -52,7 +52,7 @@ fn main() {
5252
for event in event_loop.next(&mut events_loop) {
5353

5454
// Use the `winit` backend feature to convert the winit event to a conrod one.
55-
if let Some(event) = conrod_winit::convert_event(event.clone(), &display) {
55+
if let Some(event) = support::convert_event(event.clone(), &display) {
5656
ui.handle_event(event);
5757
event_loop.needs_update();
5858
}

backends/conrod_glium/examples/graph.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
#[macro_use] extern crate conrod_core;
44
extern crate conrod_glium;
5-
extern crate conrod_winit;
5+
#[macro_use] extern crate conrod_winit;
66
extern crate find_folder;
77
extern crate glium;
88
extern crate petgraph;
@@ -87,7 +87,7 @@ fn main() {
8787
for event in event_loop.next(&mut events_loop) {
8888

8989
// Use the `winit` backend feature to convert the winit event to a conrod one.
90-
if let Some(event) = conrod_winit::convert_event(event.clone(), &display) {
90+
if let Some(event) = support::convert_event(event.clone(), &display) {
9191
ui.handle_event(event);
9292
event_loop.needs_update();
9393
}

0 commit comments

Comments
 (0)