Skip to content

Commit cf35c85

Browse files
authored
Merge pull request #1789 from ElhamAryanpur/master
Update `wgpu` to `0.15`
2 parents 2be79d7 + db4b899 commit cf35c85

6 files changed

Lines changed: 51 additions & 20 deletions

File tree

examples/integration_wgpu/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ publish = false
88
[dependencies]
99
iced_winit = { path = "../../winit" }
1010
iced_wgpu = { path = "../../wgpu", features = ["webgl"] }
11-
env_logger = "0.8"
11+
env_logger = "0.10"
1212

1313
[target.'cfg(target_arch = "wasm32")'.dependencies]
1414
console_error_panic_hook = "0.1.7"

examples/integration_wgpu/src/main.rs

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ use web_sys::HtmlCanvasElement;
2323
#[cfg(target_arch = "wasm32")]
2424
use winit::platform::web::WindowBuilderExtWebSys;
2525

26-
pub fn main() {
26+
pub fn main() -> Result<(), Box<dyn std::error::Error>> {
2727
#[cfg(target_arch = "wasm32")]
2828
let canvas_element = {
29-
console_log::init_with_level(log::Level::Debug)
30-
.expect("could not initialize logger");
29+
console_log::init_with_level(log::Level::Debug)?;
30+
3131
std::panic::set_hook(Box::new(console_error_panic_hook::hook));
3232

3333
web_sys::window()
@@ -45,11 +45,10 @@ pub fn main() {
4545
#[cfg(target_arch = "wasm32")]
4646
let window = winit::window::WindowBuilder::new()
4747
.with_canvas(Some(canvas_element))
48-
.build(&event_loop)
49-
.expect("Failed to build winit window");
48+
.build(&event_loop)?;
5049

5150
#[cfg(not(target_arch = "wasm32"))]
52-
let window = winit::window::Window::new(&event_loop).unwrap();
51+
let window = winit::window::Window::new(&event_loop)?;
5352

5453
let physical_size = window.inner_size();
5554
let mut viewport = Viewport::with_physical_size(
@@ -61,7 +60,6 @@ pub fn main() {
6160
let mut clipboard = Clipboard::connect(&window);
6261

6362
// Initialize wgpu
64-
6563
#[cfg(target_arch = "wasm32")]
6664
let default_backend = wgpu::Backends::GL;
6765
#[cfg(not(target_arch = "wasm32"))]
@@ -70,8 +68,12 @@ pub fn main() {
7068
let backend =
7169
wgpu::util::backend_bits_from_env().unwrap_or(default_backend);
7270

73-
let instance = wgpu::Instance::new(backend);
74-
let surface = unsafe { instance.create_surface(&window) };
71+
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
72+
backends: backend,
73+
..Default::default()
74+
});
75+
76+
let surface = unsafe { instance.create_surface(&window) }?;
7577

7678
let (format, (device, queue)) = futures::executor::block_on(async {
7779
let adapter = wgpu::util::initialize_adapter_from_env_or_default(
@@ -91,11 +93,16 @@ pub fn main() {
9193
#[cfg(not(target_arch = "wasm32"))]
9294
let needed_limits = wgpu::Limits::default();
9395

96+
let capabilities = surface.get_capabilities(&adapter);
97+
9498
(
95-
surface
96-
.get_supported_formats(&adapter)
97-
.first()
99+
capabilities
100+
.formats
101+
.iter()
102+
.filter(|format| format.describe().srgb)
98103
.copied()
104+
.next()
105+
.or_else(|| capabilities.formats.first().copied())
99106
.expect("Get preferred format"),
100107
adapter
101108
.request_device(
@@ -120,6 +127,7 @@ pub fn main() {
120127
height: physical_size.height,
121128
present_mode: wgpu::PresentMode::AutoVsync,
122129
alpha_mode: wgpu::CompositeAlphaMode::Auto,
130+
view_formats: vec![],
123131
},
124132
);
125133

@@ -214,7 +222,8 @@ pub fn main() {
214222
width: size.width,
215223
height: size.height,
216224
present_mode: wgpu::PresentMode::AutoVsync,
217-
alpha_mode: wgpu::CompositeAlphaMode::Auto
225+
alpha_mode: wgpu::CompositeAlphaMode::Auto,
226+
view_formats: vec![]
218227
},
219228
);
220229

wgpu/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ spirv = ["wgpu/spirv"]
2828
webgl = ["wgpu/webgl"]
2929

3030
[dependencies]
31-
wgpu = "0.14"
32-
wgpu_glyph = "0.18"
31+
wgpu = "0.15"
32+
wgpu_glyph = "0.19"
3333
glyph_brush = "0.7"
3434
raw-window-handle = "0.5"
3535
log = "0.4"

wgpu/src/image/atlas.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ impl Atlas {
3939
sample_count: 1,
4040
dimension: wgpu::TextureDimension::D2,
4141
format: wgpu::TextureFormat::Rgba8UnormSrgb,
42+
view_formats: &[],
4243
usage: wgpu::TextureUsages::COPY_DST
4344
| wgpu::TextureUsages::COPY_SRC
4445
| wgpu::TextureUsages::TEXTURE_BINDING,
@@ -247,6 +248,7 @@ impl Atlas {
247248
sample_count: 1,
248249
dimension: wgpu::TextureDimension::D2,
249250
format: wgpu::TextureFormat::Rgba8UnormSrgb,
251+
view_formats: &[],
250252
usage: wgpu::TextureUsages::COPY_DST
251253
| wgpu::TextureUsages::COPY_SRC
252254
| wgpu::TextureUsages::TEXTURE_BINDING,

wgpu/src/triangle/msaa.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ impl Targets {
222222
sample_count,
223223
dimension: wgpu::TextureDimension::D2,
224224
format,
225+
view_formats: &[],
225226
usage: wgpu::TextureUsages::RENDER_ATTACHMENT,
226227
});
227228

@@ -232,6 +233,7 @@ impl Targets {
232233
sample_count: 1,
233234
dimension: wgpu::TextureDimension::D2,
234235
format,
236+
view_formats: &[],
235237
usage: wgpu::TextureUsages::RENDER_ATTACHMENT
236238
| wgpu::TextureUsages::TEXTURE_BINDING,
237239
});

wgpu/src/window/compositor.rs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ impl<Theme> Compositor<Theme> {
3131
settings: Settings,
3232
compatible_window: Option<&W>,
3333
) -> Option<Self> {
34-
let instance = wgpu::Instance::new(settings.internal_backend);
34+
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
35+
backends: settings.internal_backend,
36+
..Default::default()
37+
});
3538

3639
log::info!("{:#?}", settings);
3740

@@ -46,7 +49,7 @@ impl<Theme> Compositor<Theme> {
4649

4750
#[allow(unsafe_code)]
4851
let compatible_surface = compatible_window
49-
.map(|window| unsafe { instance.create_surface(window) });
52+
.and_then(|window| unsafe { instance.create_surface(window).ok() });
5053

5154
let adapter = instance
5255
.request_adapter(&wgpu::RequestAdapterOptions {
@@ -63,7 +66,19 @@ impl<Theme> Compositor<Theme> {
6366
log::info!("Selected: {:#?}", adapter.get_info());
6467

6568
let format = compatible_surface.as_ref().and_then(|surface| {
66-
surface.get_supported_formats(&adapter).first().copied()
69+
let capabilities = surface.get_capabilities(&adapter);
70+
71+
capabilities
72+
.formats
73+
.iter()
74+
.filter(|format| format.describe().srgb)
75+
.copied()
76+
.next()
77+
.or_else(|| {
78+
log::warn!("No sRGB format found!");
79+
80+
capabilities.formats.first().copied()
81+
})
6782
})?;
6883

6984
log::info!("Selected format: {:?}", format);
@@ -144,7 +159,9 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {
144159
) -> wgpu::Surface {
145160
#[allow(unsafe_code)]
146161
unsafe {
147-
self.instance.create_surface(window)
162+
self.instance
163+
.create_surface(window)
164+
.expect("Create surface")
148165
}
149166
}
150167

@@ -163,6 +180,7 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {
163180
width,
164181
height,
165182
alpha_mode: wgpu::CompositeAlphaMode::Auto,
183+
view_formats: vec![],
166184
},
167185
);
168186
}

0 commit comments

Comments
 (0)