Skip to content
New issue

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

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

Already on GitHub? # to your account

Upgrade to wgpu 0.6 #44

Merged
merged 17 commits into from
Aug 21, 2020
Merged
2 changes: 1 addition & 1 deletion 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.5"
wgpu = "0.6"
glyph_brush = "0.7"
log = "0.4"
zerocopy = "0.3"
Expand Down
47 changes: 26 additions & 21 deletions examples/clipping.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,30 @@ fn main() -> Result<(), Box<dyn Error>> {
.build(&event_loop)
.unwrap();

let surface = wgpu::Surface::create(&window);
let instance = wgpu::Instance::new(wgpu::BackendBit::all());
let surface = unsafe { instance.create_surface(&window) };

// Initialize GPU
let (device, queue) = futures::executor::block_on(async {
let adapter = wgpu::Adapter::request(
let adapter = instance.request_adapter(
&wgpu::RequestAdapterOptions {
power_preference: wgpu::PowerPreference::HighPerformance,
compatible_surface: Some(&surface),
},
wgpu::BackendBit::all(),
)
.await
.expect("Request adapter");

adapter
.request_device(&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
},
limits: wgpu::Limits { max_bind_groups: 1 },
})
.await
adapter.request_device(
&wgpu::DeviceDescriptor {
features: wgpu::Features::empty(),
limits: wgpu::Limits::default(),
shader_validation: false,
},
None
)
.await
.expect("Request device")
});

// Prepare swap chain
Expand Down Expand Up @@ -94,8 +96,10 @@ fn main() -> Result<(), Box<dyn Error>> {
);

// Get the next frame
let frame =
swap_chain.get_next_texture().expect("Get next frame");
let frame = swap_chain
.get_current_frame()
.expect("Get next frame")
.output;

// Clear frame
{
Expand All @@ -105,13 +109,14 @@ fn main() -> Result<(), Box<dyn Error>> {
wgpu::RenderPassColorAttachmentDescriptor {
attachment: &frame.view,
resolve_target: None,
load_op: wgpu::LoadOp::Clear,
store_op: wgpu::StoreOp::Store,
clear_color: wgpu::Color {
r: 0.4,
g: 0.4,
b: 0.4,
a: 1.0,
ops: wgpu::Operations {
load: wgpu::LoadOp::Clear(wgpu::Color {
r: 0.4,
g: 0.4,
b: 0.4,
a: 1.0,
}),
store: true,
},
},
],
Expand Down Expand Up @@ -168,7 +173,7 @@ fn main() -> Result<(), Box<dyn Error>> {
)
.expect("Draw queued");

queue.submit(&[encoder.finish()]);
queue.submit(Some(encoder.finish()));
}
_ => {
*control_flow = winit::event_loop::ControlFlow::Wait;
Expand Down
76 changes: 36 additions & 40 deletions examples/depth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,37 +14,32 @@ fn main() -> Result<(), Box<dyn Error>> {
.build(&event_loop)
.unwrap();

let surface = wgpu::Surface::create(&window);
let instance = wgpu::Instance::new(wgpu::BackendBit::all());
let surface = unsafe { instance.create_surface(&window) };

// Initialize GPU
let (device, queue) = futures::executor::block_on(async {
let adapter = wgpu::Adapter::request(
let adapter = instance.request_adapter(
&wgpu::RequestAdapterOptions {
power_preference: wgpu::PowerPreference::HighPerformance,
compatible_surface: Some(&surface),
},
wgpu::BackendBit::all(),
)
.await
.expect("Request adapter");

adapter
.request_device(&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
},
limits: wgpu::Limits { max_bind_groups: 1 },
})
.await
adapter.request_device(
&wgpu::DeviceDescriptor {
features: wgpu::Features::empty(),
limits: wgpu::Limits::default(),
shader_validation: false,
},
None
)
.await
.expect("Request device")
});

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

let surface = wgpu::Surface::create(&window);

// Prepare swap chain and depth buffer
let mut size = window.inner_size();
let mut new_size = None;
Expand All @@ -62,10 +57,7 @@ fn main() -> Result<(), Box<dyn Error>> {
format: wgpu::TextureFormat::Depth32Float,
depth_write_enabled: true,
depth_compare: wgpu::CompareFunction::Greater,
stencil_front: wgpu::StencilStateFaceDescriptor::IGNORE,
stencil_back: wgpu::StencilStateFaceDescriptor::IGNORE,
stencil_read_mask: 0,
stencil_write_mask: 0,
stencil: wgpu::StencilStateDescriptor::default(),
})
.build(&device, FORMAT);

Expand Down Expand Up @@ -102,8 +94,10 @@ fn main() -> Result<(), Box<dyn Error>> {
);

// Get the next frame
let frame =
swap_chain.get_next_texture().expect("Get next frame");
let frame = swap_chain
.get_current_frame()
.expect("Get next frame")
.output;

// Clear frame
{
Expand All @@ -113,13 +107,14 @@ fn main() -> Result<(), Box<dyn Error>> {
wgpu::RenderPassColorAttachmentDescriptor {
attachment: &frame.view,
resolve_target: None,
load_op: wgpu::LoadOp::Clear,
store_op: wgpu::StoreOp::Store,
clear_color: wgpu::Color {
r: 0.4,
g: 0.4,
b: 0.4,
a: 1.0,
ops: wgpu::Operations {
load: wgpu::LoadOp::Clear(wgpu::Color {
r: 0.4,
g: 0.4,
b: 0.4,
a: 1.0,
}),
store: true,
},
},
],
Expand Down Expand Up @@ -165,19 +160,21 @@ fn main() -> Result<(), Box<dyn Error>> {
&frame.view,
wgpu::RenderPassDepthStencilAttachmentDescriptor {
attachment: &depth_view,
depth_load_op: wgpu::LoadOp::Clear,
depth_store_op: wgpu::StoreOp::Store,
stencil_load_op: wgpu::LoadOp::Clear,
stencil_store_op: wgpu::StoreOp::Store,
clear_depth: -1.0,
clear_stencil: 0,
depth_ops: Some(wgpu::Operations {
load: wgpu::LoadOp::Clear(-1.0),
store: true,
}),
stencil_ops: Some(wgpu::Operations {
load: wgpu::LoadOp::Clear(0),
store: true,
}),
},
size.width,
size.height,
)
.expect("Draw queued");

queue.submit(&[encoder.finish()]);
queue.submit(Some(encoder.finish()));
}
_ => {
*control_flow = winit::event_loop::ControlFlow::Wait;
Expand Down Expand Up @@ -211,13 +208,12 @@ fn create_frame_views(
height,
depth: 1,
},
array_layer_count: 1,
mip_level_count: 1,
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format: wgpu::TextureFormat::Depth32Float,
usage: wgpu::TextureUsage::OUTPUT_ATTACHMENT,
});

(swap_chain, depth_texture.create_default_view())
(swap_chain, depth_texture.create_view(&wgpu::TextureViewDescriptor::default()))
}
47 changes: 26 additions & 21 deletions examples/hello.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,30 @@ fn main() -> Result<(), Box<dyn Error>> {
.build(&event_loop)
.unwrap();

let surface = wgpu::Surface::create(&window);
let instance = wgpu::Instance::new(wgpu::BackendBit::all());
let surface = unsafe { instance.create_surface(&window) };

// Initialize GPU
let (device, queue) = futures::executor::block_on(async {
let adapter = wgpu::Adapter::request(
let adapter = instance.request_adapter(
&wgpu::RequestAdapterOptions {
power_preference: wgpu::PowerPreference::HighPerformance,
compatible_surface: Some(&surface),
},
wgpu::BackendBit::all(),
)
.await
.expect("Request adapter");

adapter
.request_device(&wgpu::DeviceDescriptor {
extensions: wgpu::Extensions {
anisotropic_filtering: false,
},
limits: wgpu::Limits { max_bind_groups: 1 },
})
.await
adapter.request_device(
&wgpu::DeviceDescriptor {
features: wgpu::Features::empty(),
limits: wgpu::Limits::default(),
shader_validation: false,
},
None
)
.await
.expect("Request device")
});

// Prepare swap chain
Expand Down Expand Up @@ -94,8 +96,10 @@ fn main() -> Result<(), Box<dyn Error>> {
);

// Get the next frame
let frame =
swap_chain.get_next_texture().expect("Get next frame");
let frame = swap_chain
.get_current_frame()
.expect("Get next frame")
.output;

// Clear frame
{
Expand All @@ -105,13 +109,14 @@ fn main() -> Result<(), Box<dyn Error>> {
wgpu::RenderPassColorAttachmentDescriptor {
attachment: &frame.view,
resolve_target: None,
load_op: wgpu::LoadOp::Clear,
store_op: wgpu::StoreOp::Store,
clear_color: wgpu::Color {
r: 0.4,
g: 0.4,
b: 0.4,
a: 1.0,
ops: wgpu::Operations {
load: wgpu::LoadOp::Clear(wgpu::Color {
r: 0.4,
g: 0.4,
b: 0.4,
a: 1.0,
}),
store: true,
},
},
],
Expand Down Expand Up @@ -149,7 +154,7 @@ fn main() -> Result<(), Box<dyn Error>> {
)
.expect("Draw queued");

queue.submit(&[encoder.finish()]);
queue.submit(Some(encoder.finish()));
}
_ => {
*control_flow = winit::event_loop::ControlFlow::Wait;
Expand Down
Loading