summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Elham Aryanpur <elhamaryanpur5@gmail.com>2023-04-12 23:38:21 +0300
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-13 05:40:23 +0200
commitd5453c62e9bdbf0cea030b009c41b892b700496d (patch)
tree2a093144f1e4bad10550e3f0c081f6f990a23493
parentadb70d232ac00b3cba459374b3b1c5359970030f (diff)
downloadiced-d5453c62e9bdbf0cea030b009c41b892b700496d.tar.gz
iced-d5453c62e9bdbf0cea030b009c41b892b700496d.tar.bz2
iced-d5453c62e9bdbf0cea030b009c41b892b700496d.zip
Update `wgpu` to `0.15`
-rw-r--r--examples/integration_wgpu/src/main.rs37
-rw-r--r--wgpu/Cargo.toml4
-rw-r--r--wgpu/src/image/atlas.rs2
-rw-r--r--wgpu/src/triangle/msaa.rs2
-rw-r--r--wgpu/src/window/compositor.rs25
5 files changed, 50 insertions, 20 deletions
diff --git a/examples/integration_wgpu/src/main.rs b/examples/integration_wgpu/src/main.rs
index 2a56b6fa..6e868332 100644
--- a/examples/integration_wgpu/src/main.rs
+++ b/examples/integration_wgpu/src/main.rs
@@ -23,18 +23,17 @@ use web_sys::HtmlCanvasElement;
#[cfg(target_arch = "wasm32")]
use winit::platform::web::WindowBuilderExtWebSys;
-pub fn main() {
+pub fn main() -> Result<(), Box<dyn std::error::Error>> {
#[cfg(target_arch = "wasm32")]
let canvas_element = {
- console_log::init_with_level(log::Level::Debug)
- .expect("could not initialize logger");
+ console_log::init_with_level(log::Level::Debug)?;
+
std::panic::set_hook(Box::new(console_error_panic_hook::hook));
web_sys::window()
.and_then(|win| win.document())
.and_then(|doc| doc.get_element_by_id("iced_canvas"))
- .and_then(|element| element.dyn_into::<HtmlCanvasElement>().ok())
- .expect("Canvas with id `iced_canvas` is missing")
+ .and_then(|element| element.dyn_into::<HtmlCanvasElement>().ok())?
};
#[cfg(not(target_arch = "wasm32"))]
env_logger::init();
@@ -45,11 +44,10 @@ pub fn main() {
#[cfg(target_arch = "wasm32")]
let window = winit::window::WindowBuilder::new()
.with_canvas(Some(canvas_element))
- .build(&event_loop)
- .expect("Failed to build winit window");
+ .build(&event_loop)?;
#[cfg(not(target_arch = "wasm32"))]
- let window = winit::window::Window::new(&event_loop).unwrap();
+ let window = winit::window::Window::new(&event_loop)?;
let physical_size = window.inner_size();
let mut viewport = Viewport::with_physical_size(
@@ -61,7 +59,6 @@ pub fn main() {
let mut clipboard = Clipboard::connect(&window);
// Initialize wgpu
-
#[cfg(target_arch = "wasm32")]
let default_backend = wgpu::Backends::GL;
#[cfg(not(target_arch = "wasm32"))]
@@ -70,8 +67,12 @@ pub fn main() {
let backend =
wgpu::util::backend_bits_from_env().unwrap_or(default_backend);
- let instance = wgpu::Instance::new(backend);
- let surface = unsafe { instance.create_surface(&window) };
+ let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
+ backends: backend,
+ ..Default::default()
+ });
+
+ let surface = unsafe { instance.create_surface(&window) }?;
let (format, (device, queue)) = futures::executor::block_on(async {
let adapter = wgpu::util::initialize_adapter_from_env_or_default(
@@ -93,9 +94,15 @@ pub fn main() {
(
surface
- .get_supported_formats(&adapter)
- .first()
+ .get_capabilities(&adapter)
+ .formats
+ .iter()
+ .filter(|format| format.describe().srgb)
.copied()
+ .next()
+ .or_else(|| {
+ surface.get_capabilities(&adapter).formats.first().copied()
+ })
.expect("Get preferred format"),
adapter
.request_device(
@@ -120,6 +127,7 @@ pub fn main() {
height: physical_size.height,
present_mode: wgpu::PresentMode::AutoVsync,
alpha_mode: wgpu::CompositeAlphaMode::Auto,
+ view_formats: vec![],
},
);
@@ -214,7 +222,8 @@ pub fn main() {
width: size.width,
height: size.height,
present_mode: wgpu::PresentMode::AutoVsync,
- alpha_mode: wgpu::CompositeAlphaMode::Auto
+ alpha_mode: wgpu::CompositeAlphaMode::Auto,
+ view_formats: vec![]
},
);
diff --git a/wgpu/Cargo.toml b/wgpu/Cargo.toml
index f1e22cf6..4dcd07f7 100644
--- a/wgpu/Cargo.toml
+++ b/wgpu/Cargo.toml
@@ -28,8 +28,8 @@ spirv = ["wgpu/spirv"]
webgl = ["wgpu/webgl"]
[dependencies]
-wgpu = "0.14"
-wgpu_glyph = "0.18"
+wgpu = "0.15"
+wgpu_glyph = "0.19"
glyph_brush = "0.7"
raw-window-handle = "0.5"
log = "0.4"
diff --git a/wgpu/src/image/atlas.rs b/wgpu/src/image/atlas.rs
index eafe2f96..82504147 100644
--- a/wgpu/src/image/atlas.rs
+++ b/wgpu/src/image/atlas.rs
@@ -39,6 +39,7 @@ impl Atlas {
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format: wgpu::TextureFormat::Rgba8UnormSrgb,
+ view_formats: &[],
usage: wgpu::TextureUsages::COPY_DST
| wgpu::TextureUsages::COPY_SRC
| wgpu::TextureUsages::TEXTURE_BINDING,
@@ -247,6 +248,7 @@ impl Atlas {
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format: wgpu::TextureFormat::Rgba8UnormSrgb,
+ view_formats: &[],
usage: wgpu::TextureUsages::COPY_DST
| wgpu::TextureUsages::COPY_SRC
| wgpu::TextureUsages::TEXTURE_BINDING,
diff --git a/wgpu/src/triangle/msaa.rs b/wgpu/src/triangle/msaa.rs
index e76f7d5e..d24f8e1a 100644
--- a/wgpu/src/triangle/msaa.rs
+++ b/wgpu/src/triangle/msaa.rs
@@ -222,6 +222,7 @@ impl Targets {
sample_count,
dimension: wgpu::TextureDimension::D2,
format,
+ view_formats: &[],
usage: wgpu::TextureUsages::RENDER_ATTACHMENT,
});
@@ -232,6 +233,7 @@ impl Targets {
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format,
+ view_formats: &[],
usage: wgpu::TextureUsages::RENDER_ATTACHMENT
| wgpu::TextureUsages::TEXTURE_BINDING,
});
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs
index 6d0c36f6..d66aca71 100644
--- a/wgpu/src/window/compositor.rs
+++ b/wgpu/src/window/compositor.rs
@@ -31,7 +31,10 @@ impl<Theme> Compositor<Theme> {
settings: Settings,
compatible_window: Option<&W>,
) -> Option<Self> {
- let instance = wgpu::Instance::new(settings.internal_backend);
+ let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
+ backends: settings.internal_backend,
+ ..Default::default()
+ });
log::info!("{:#?}", settings);
@@ -46,7 +49,7 @@ impl<Theme> Compositor<Theme> {
#[allow(unsafe_code)]
let compatible_surface = compatible_window
- .map(|window| unsafe { instance.create_surface(window) });
+ .and_then(|window| unsafe { instance.create_surface(window).ok() });
let adapter = instance
.request_adapter(&wgpu::RequestAdapterOptions {
@@ -63,7 +66,18 @@ impl<Theme> Compositor<Theme> {
log::info!("Selected: {:#?}", adapter.get_info());
let format = compatible_surface.as_ref().and_then(|surface| {
- surface.get_supported_formats(&adapter).first().copied()
+ surface
+ .get_capabilities(&adapter)
+ .formats
+ .iter()
+ .filter(|format| format.describe().srgb)
+ .copied()
+ .next()
+ .or_else(|| {
+ log::warn!("No sRGB format found!");
+
+ surface.get_capabilities(&adapter).formats.first().copied()
+ })
})?;
log::info!("Selected format: {:?}", format);
@@ -144,7 +158,9 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {
) -> wgpu::Surface {
#[allow(unsafe_code)]
unsafe {
- self.instance.create_surface(window)
+ self.instance
+ .create_surface(window)
+ .expect("Create surface")
}
}
@@ -163,6 +179,7 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {
width,
height,
alpha_mode: wgpu::CompositeAlphaMode::Auto,
+ view_formats: vec![],
},
);
}