Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update wgpu to 0.19 and winit to 0.29 #107

Merged
merged 3 commits into from
Mar 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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);
}