Skip to content

Commit 5d78e60

Browse files
authored
Merge pull request #107 from LukasKalbertodt/master
Update wgpu to 0.19 and winit to 0.29
2 parents cdb5512 + 4ac455a commit 5d78e60

File tree

5 files changed

+65
-57
lines changed

5 files changed

+65
-57
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ documentation = "https://docs.rs/wgpu_glyph"
1111
readme = "README.md"
1212

1313
[dependencies]
14-
wgpu = "0.18"
14+
wgpu = "0.19"
1515
glyph_brush = "0.7"
1616
log = "0.4"
1717

@@ -21,5 +21,5 @@ features = ["derive"]
2121

2222
[dev-dependencies]
2323
env_logger = "0.10"
24-
winit = "0.28"
24+
winit = "0.29"
2525
futures = "0.3"

examples/clipping.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ fn main() -> Result<(), Box<dyn Error>> {
66
env_logger::init();
77

88
// Open window and create a surface
9-
let event_loop = winit::event_loop::EventLoop::new();
9+
let event_loop = winit::event_loop::EventLoop::new()?;
1010

1111
let window = winit::window::WindowBuilder::new()
1212
.with_resizable(false)
1313
.build(&event_loop)
1414
.unwrap();
1515

1616
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor::default());
17-
let surface = unsafe { instance.create_surface(&window)? };
17+
let surface = instance.create_surface(&window)?;
1818

1919
// Initialize GPU
2020
let (device, queue) = futures::executor::block_on(async {
@@ -50,6 +50,7 @@ fn main() -> Result<(), Box<dyn Error>> {
5050
present_mode: wgpu::PresentMode::AutoVsync,
5151
alpha_mode: CompositeAlphaMode::Auto,
5252
view_formats: vec![],
53+
desired_maximum_frame_latency: 2,
5354
},
5455
);
5556

@@ -64,12 +65,12 @@ fn main() -> Result<(), Box<dyn Error>> {
6465
// Render loop
6566
window.request_redraw();
6667

67-
event_loop.run(move |event, _, control_flow| {
68+
event_loop.run(move |event, elwt| {
6869
match event {
6970
winit::event::Event::WindowEvent {
7071
event: winit::event::WindowEvent::CloseRequested,
7172
..
72-
} => *control_flow = winit::event_loop::ControlFlow::Exit,
73+
} => elwt.exit(),
7374
winit::event::Event::WindowEvent {
7475
event: winit::event::WindowEvent::Resized(new_size),
7576
..
@@ -86,10 +87,14 @@ fn main() -> Result<(), Box<dyn Error>> {
8687
present_mode: wgpu::PresentMode::AutoVsync,
8788
alpha_mode: CompositeAlphaMode::Auto,
8889
view_formats: vec![],
90+
desired_maximum_frame_latency: 2,
8991
},
9092
);
9193
}
92-
winit::event::Event::MainEventsCleared => {
94+
winit::event::Event::WindowEvent {
95+
event: winit::event::WindowEvent::RedrawRequested,
96+
..
97+
} => {
9398
// Get a command encoder for the current frame
9499
let mut encoder = device.create_command_encoder(
95100
&wgpu::CommandEncoderDescriptor {
@@ -190,9 +195,7 @@ fn main() -> Result<(), Box<dyn Error>> {
190195
// Recall unused staging buffers
191196
staging_belt.recall();
192197
}
193-
_ => {
194-
*control_flow = winit::event_loop::ControlFlow::Wait;
195-
}
198+
_ => {}
196199
}
197-
})
200+
}).map_err(Into::into)
198201
}

examples/depth.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ fn main() -> Result<(), Box<dyn Error>> {
88
env_logger::init();
99

1010
// Open window and create a surface
11-
let event_loop = winit::event_loop::EventLoop::new();
11+
let event_loop = winit::event_loop::EventLoop::new()?;
1212

1313
let window = winit::window::WindowBuilder::new()
1414
.with_resizable(false)
1515
.build(&event_loop)
1616
.unwrap();
1717

1818
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor::default());
19-
let surface = unsafe { instance.create_surface(&window)? };
19+
let surface = instance.create_surface(&window)?;
2020

2121
// Initialize GPU
2222
let (device, queue) = futures::executor::block_on(async {
@@ -62,19 +62,22 @@ fn main() -> Result<(), Box<dyn Error>> {
6262
// Render loop
6363
window.request_redraw();
6464

65-
event_loop.run(move |event, _, control_flow| {
65+
event_loop.run(move |event, elwt| {
6666
match event {
6767
winit::event::Event::WindowEvent {
6868
event: winit::event::WindowEvent::CloseRequested,
6969
..
70-
} => *control_flow = winit::event_loop::ControlFlow::Exit,
70+
} => elwt.exit(),
7171
winit::event::Event::WindowEvent {
7272
event: winit::event::WindowEvent::Resized(size),
7373
..
7474
} => {
7575
new_size = Some(size);
7676
}
77-
winit::event::Event::RedrawRequested { .. } => {
77+
winit::event::Event::WindowEvent {
78+
event: winit::event::WindowEvent::RedrawRequested,
79+
..
80+
} => {
7881
if let Some(new_size) = new_size.take() {
7982
depth_view =
8083
create_frame_views(&device, &surface, new_size);
@@ -183,11 +186,9 @@ fn main() -> Result<(), Box<dyn Error>> {
183186
// Recall unused staging buffers
184187
staging_belt.recall();
185188
}
186-
_ => {
187-
*control_flow = winit::event_loop::ControlFlow::Wait;
188-
}
189+
_ => {}
189190
}
190-
})
191+
}).map_err(Into::into)
191192
}
192193

193194
fn create_frame_views(
@@ -207,6 +208,7 @@ fn create_frame_views(
207208
present_mode: wgpu::PresentMode::AutoVsync,
208209
alpha_mode: CompositeAlphaMode::Auto,
209210
view_formats: vec![],
211+
desired_maximum_frame_latency: 2,
210212
},
211213
);
212214

examples/hello.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ fn main() -> Result<(), Box<dyn Error>> {
66
env_logger::init();
77

88
// Open window and create a surface
9-
let event_loop = winit::event_loop::EventLoop::new();
9+
let event_loop = winit::event_loop::EventLoop::new()?;
1010

1111
let window = winit::window::WindowBuilder::new()
1212
.with_resizable(false)
1313
.build(&event_loop)
1414
.unwrap();
1515

1616
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor::default());
17-
let surface = unsafe { instance.create_surface(&window)? };
17+
let surface = instance.create_surface(&window)?;
1818

1919
// Initialize GPU
2020
let (device, queue) = futures::executor::block_on(async {
@@ -50,6 +50,7 @@ fn main() -> Result<(), Box<dyn Error>> {
5050
present_mode: wgpu::PresentMode::AutoVsync,
5151
alpha_mode: CompositeAlphaMode::Auto,
5252
view_formats: vec![],
53+
desired_maximum_frame_latency: 2,
5354
},
5455
);
5556

@@ -64,12 +65,12 @@ fn main() -> Result<(), Box<dyn Error>> {
6465
// Render loop
6566
window.request_redraw();
6667

67-
event_loop.run(move |event, _, control_flow| {
68+
event_loop.run(move |event, elwt| {
6869
match event {
6970
winit::event::Event::WindowEvent {
7071
event: winit::event::WindowEvent::CloseRequested,
7172
..
72-
} => *control_flow = winit::event_loop::ControlFlow::Exit,
73+
} => elwt.exit(),
7374
winit::event::Event::WindowEvent {
7475
event: winit::event::WindowEvent::Resized(new_size),
7576
..
@@ -86,10 +87,14 @@ fn main() -> Result<(), Box<dyn Error>> {
8687
present_mode: wgpu::PresentMode::AutoVsync,
8788
alpha_mode: CompositeAlphaMode::Auto,
8889
view_formats: vec![render_format],
90+
desired_maximum_frame_latency: 2,
8991
},
9092
);
9193
}
92-
winit::event::Event::RedrawRequested { .. } => {
94+
winit::event::Event::WindowEvent {
95+
event: winit::event::WindowEvent::RedrawRequested,
96+
..
97+
} => {
9398
// Get a command encoder for the current frame
9499
let mut encoder = device.create_command_encoder(
95100
&wgpu::CommandEncoderDescriptor {
@@ -170,9 +175,7 @@ fn main() -> Result<(), Box<dyn Error>> {
170175
// Recall unused staging buffers
171176
staging_belt.recall();
172177
}
173-
_ => {
174-
*control_flow = winit::event_loop::ControlFlow::Wait;
175-
}
178+
_ => {}
176179
}
177-
})
180+
}).map_err(Into::into)
178181
}

src/shader/glyph.wgsl

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,62 +8,62 @@ struct Globals {
88

99
struct VertexInput {
1010
@builtin(vertex_index) vertex_index: u32,
11-
@location(0) left_top: vec3<f32>,
12-
@location(1) right_bottom: vec2<f32>,
13-
@location(2) tex_left_top: vec2<f32>,
14-
@location(3) tex_right_bottom: vec2<f32>,
15-
@location(4) color: vec4<f32>,
11+
@location(0) left_top: vec3f,
12+
@location(1) right_bottom: vec2f,
13+
@location(2) tex_left_top: vec2f,
14+
@location(3) tex_right_bottom: vec2f,
15+
@location(4) color: vec4f,
1616
}
1717

1818
struct VertexOutput {
19-
@builtin(position) position: vec4<f32>,
20-
@location(0) f_tex_pos: vec2<f32>,
21-
@location(1) f_color: vec4<f32>,
19+
@builtin(position) position: vec4f,
20+
@location(0) f_tex_pos: vec2f,
21+
@location(1) f_color: vec4f,
2222
}
2323

2424
@vertex
2525
fn vs_main(input: VertexInput) -> VertexOutput {
2626
var out: VertexOutput;
2727

28-
var pos: vec2<f32> = vec2<f32>(0.0, 0.0);
29-
var left: f32 = input.left_top.x;
30-
var right: f32 = input.right_bottom.x;
31-
var top: f32 = input.left_top.y;
32-
var bottom: f32 = input.right_bottom.y;
28+
var pos = vec2f(0, 0);
29+
let left = input.left_top.x;
30+
let right = input.right_bottom.x;
31+
let top = input.left_top.y;
32+
let bottom = input.right_bottom.y;
3333

34-
switch (i32(input.vertex_index)) {
35-
case 0: {
36-
pos = vec2<f32>(left, top);
34+
switch input.vertex_index {
35+
case 0u: {
36+
pos = vec2(left, top);
3737
out.f_tex_pos = input.tex_left_top;
3838
}
39-
case 1: {
40-
pos = vec2<f32>(right, top);
41-
out.f_tex_pos = vec2<f32>(input.tex_right_bottom.x, input.tex_left_top.y);
39+
case 1u: {
40+
pos = vec2(right, top);
41+
out.f_tex_pos = vec2(input.tex_right_bottom.x, input.tex_left_top.y);
4242
}
43-
case 2: {
44-
pos = vec2<f32>(left, bottom);
45-
out.f_tex_pos = vec2<f32>(input.tex_left_top.x, input.tex_right_bottom.y);
43+
case 2u: {
44+
pos = vec2(left, bottom);
45+
out.f_tex_pos = vec2(input.tex_left_top.x, input.tex_right_bottom.y);
4646
}
47-
case 3: {
48-
pos = vec2<f32>(right, bottom);
47+
case 3u: {
48+
pos = vec2(right, bottom);
4949
out.f_tex_pos = input.tex_right_bottom;
5050
}
5151
default: {}
5252
}
5353

5454
out.f_color = input.color;
55-
out.position = globals.transform * vec4<f32>(pos, input.left_top.z, 1.0);
55+
out.position = globals.transform * vec4(pos, input.left_top.z, 1.0);
5656

5757
return out;
5858
}
5959

6060
@fragment
61-
fn fs_main(input: VertexOutput) -> @location(0) vec4<f32> {
62-
var alpha: f32 = textureSample(font_tex, font_sampler, input.f_tex_pos).r;
61+
fn fs_main(input: VertexOutput) -> @location(0) vec4f {
62+
var alpha = textureSample(font_tex, font_sampler, input.f_tex_pos).r;
6363

6464
if (alpha <= 0.0) {
6565
discard;
6666
}
6767

68-
return input.f_color * vec4<f32>(1.0, 1.0, 1.0, alpha);
68+
return input.f_color * vec4f(1.0, 1.0, 1.0, alpha);
6969
}

0 commit comments

Comments
 (0)