Skip to content

Commit

Permalink
Merge pull request #107 from LukasKalbertodt/master
Browse files Browse the repository at this point in the history
Update wgpu to 0.19 and winit to 0.29
  • Loading branch information
hecrj committed Mar 4, 2024
2 parents cdb5512 + 4ac455a commit 5d78e60
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 57 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ documentation = "https://docs.rs/wgpu_glyph"
readme = "README.md"

[dependencies]
wgpu = "0.18"
wgpu = "0.19"
glyph_brush = "0.7"
log = "0.4"

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

[dev-dependencies]
env_logger = "0.10"
winit = "0.28"
winit = "0.29"
futures = "0.3"
21 changes: 12 additions & 9 deletions examples/clipping.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ fn main() -> Result<(), Box<dyn Error>> {
env_logger::init();

// Open window and create a surface
let event_loop = winit::event_loop::EventLoop::new();
let event_loop = winit::event_loop::EventLoop::new()?;

let window = winit::window::WindowBuilder::new()
.with_resizable(false)
.build(&event_loop)
.unwrap();

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

// Initialize GPU
let (device, queue) = futures::executor::block_on(async {
Expand Down Expand Up @@ -50,6 +50,7 @@ fn main() -> Result<(), Box<dyn Error>> {
present_mode: wgpu::PresentMode::AutoVsync,
alpha_mode: CompositeAlphaMode::Auto,
view_formats: vec![],
desired_maximum_frame_latency: 2,
},
);

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

event_loop.run(move |event, _, control_flow| {
event_loop.run(move |event, elwt| {
match event {
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::CloseRequested,
..
} => *control_flow = winit::event_loop::ControlFlow::Exit,
} => elwt.exit(),
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::Resized(new_size),
..
Expand All @@ -86,10 +87,14 @@ fn main() -> Result<(), Box<dyn Error>> {
present_mode: wgpu::PresentMode::AutoVsync,
alpha_mode: CompositeAlphaMode::Auto,
view_formats: vec![],
desired_maximum_frame_latency: 2,
},
);
}
winit::event::Event::MainEventsCleared => {
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::RedrawRequested,
..
} => {
// Get a command encoder for the current frame
let mut encoder = device.create_command_encoder(
&wgpu::CommandEncoderDescriptor {
Expand Down Expand Up @@ -190,9 +195,7 @@ fn main() -> Result<(), Box<dyn Error>> {
// Recall unused staging buffers
staging_belt.recall();
}
_ => {
*control_flow = winit::event_loop::ControlFlow::Wait;
}
_ => {}
}
})
}).map_err(Into::into)
}
20 changes: 11 additions & 9 deletions examples/depth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ fn main() -> Result<(), Box<dyn Error>> {
env_logger::init();

// Open window and create a surface
let event_loop = winit::event_loop::EventLoop::new();
let event_loop = winit::event_loop::EventLoop::new()?;

let window = winit::window::WindowBuilder::new()
.with_resizable(false)
.build(&event_loop)
.unwrap();

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

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

event_loop.run(move |event, _, control_flow| {
event_loop.run(move |event, elwt| {
match event {
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::CloseRequested,
..
} => *control_flow = winit::event_loop::ControlFlow::Exit,
} => elwt.exit(),
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::Resized(size),
..
} => {
new_size = Some(size);
}
winit::event::Event::RedrawRequested { .. } => {
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::RedrawRequested,
..
} => {
if let Some(new_size) = new_size.take() {
depth_view =
create_frame_views(&device, &surface, new_size);
Expand Down Expand Up @@ -183,11 +186,9 @@ fn main() -> Result<(), Box<dyn Error>> {
// Recall unused staging buffers
staging_belt.recall();
}
_ => {
*control_flow = winit::event_loop::ControlFlow::Wait;
}
_ => {}
}
})
}).map_err(Into::into)
}

fn create_frame_views(
Expand All @@ -207,6 +208,7 @@ fn create_frame_views(
present_mode: wgpu::PresentMode::AutoVsync,
alpha_mode: CompositeAlphaMode::Auto,
view_formats: vec![],
desired_maximum_frame_latency: 2,
},
);

Expand Down
21 changes: 12 additions & 9 deletions examples/hello.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ fn main() -> Result<(), Box<dyn Error>> {
env_logger::init();

// Open window and create a surface
let event_loop = winit::event_loop::EventLoop::new();
let event_loop = winit::event_loop::EventLoop::new()?;

let window = winit::window::WindowBuilder::new()
.with_resizable(false)
.build(&event_loop)
.unwrap();

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

// Initialize GPU
let (device, queue) = futures::executor::block_on(async {
Expand Down Expand Up @@ -50,6 +50,7 @@ fn main() -> Result<(), Box<dyn Error>> {
present_mode: wgpu::PresentMode::AutoVsync,
alpha_mode: CompositeAlphaMode::Auto,
view_formats: vec![],
desired_maximum_frame_latency: 2,
},
);

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

event_loop.run(move |event, _, control_flow| {
event_loop.run(move |event, elwt| {
match event {
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::CloseRequested,
..
} => *control_flow = winit::event_loop::ControlFlow::Exit,
} => elwt.exit(),
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::Resized(new_size),
..
Expand All @@ -86,10 +87,14 @@ fn main() -> Result<(), Box<dyn Error>> {
present_mode: wgpu::PresentMode::AutoVsync,
alpha_mode: CompositeAlphaMode::Auto,
view_formats: vec![render_format],
desired_maximum_frame_latency: 2,
},
);
}
winit::event::Event::RedrawRequested { .. } => {
winit::event::Event::WindowEvent {
event: winit::event::WindowEvent::RedrawRequested,
..
} => {
// Get a command encoder for the current frame
let mut encoder = device.create_command_encoder(
&wgpu::CommandEncoderDescriptor {
Expand Down Expand Up @@ -170,9 +175,7 @@ fn main() -> Result<(), Box<dyn Error>> {
// Recall unused staging buffers
staging_belt.recall();
}
_ => {
*control_flow = winit::event_loop::ControlFlow::Wait;
}
_ => {}
}
})
}).map_err(Into::into)
}
56 changes: 28 additions & 28 deletions src/shader/glyph.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -8,62 +8,62 @@ struct Globals {

struct VertexInput {
@builtin(vertex_index) vertex_index: u32,
@location(0) left_top: vec3<f32>,
@location(1) right_bottom: vec2<f32>,
@location(2) tex_left_top: vec2<f32>,
@location(3) tex_right_bottom: vec2<f32>,
@location(4) color: vec4<f32>,
@location(0) left_top: vec3f,
@location(1) right_bottom: vec2f,
@location(2) tex_left_top: vec2f,
@location(3) tex_right_bottom: vec2f,
@location(4) color: vec4f,
}

struct VertexOutput {
@builtin(position) position: vec4<f32>,
@location(0) f_tex_pos: vec2<f32>,
@location(1) f_color: vec4<f32>,
@builtin(position) position: vec4f,
@location(0) f_tex_pos: vec2f,
@location(1) f_color: vec4f,
}

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

var pos: vec2<f32> = vec2<f32>(0.0, 0.0);
var left: f32 = input.left_top.x;
var right: f32 = input.right_bottom.x;
var top: f32 = input.left_top.y;
var bottom: f32 = input.right_bottom.y;
var pos = vec2f(0, 0);
let left = input.left_top.x;
let right = input.right_bottom.x;
let top = input.left_top.y;
let bottom = input.right_bottom.y;

switch (i32(input.vertex_index)) {
case 0: {
pos = vec2<f32>(left, top);
switch input.vertex_index {
case 0u: {
pos = vec2(left, top);
out.f_tex_pos = input.tex_left_top;
}
case 1: {
pos = vec2<f32>(right, top);
out.f_tex_pos = vec2<f32>(input.tex_right_bottom.x, input.tex_left_top.y);
case 1u: {
pos = vec2(right, top);
out.f_tex_pos = vec2(input.tex_right_bottom.x, input.tex_left_top.y);
}
case 2: {
pos = vec2<f32>(left, bottom);
out.f_tex_pos = vec2<f32>(input.tex_left_top.x, input.tex_right_bottom.y);
case 2u: {
pos = vec2(left, bottom);
out.f_tex_pos = vec2(input.tex_left_top.x, input.tex_right_bottom.y);
}
case 3: {
pos = vec2<f32>(right, bottom);
case 3u: {
pos = vec2(right, bottom);
out.f_tex_pos = input.tex_right_bottom;
}
default: {}
}

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

return out;
}

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

if (alpha <= 0.0) {
discard;
}

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

0 comments on commit 5d78e60

Please sign in to comment.