summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2023-04-27 16:09:39 +0200
committerLibravatar GitHub <noreply@github.com>2023-04-27 16:09:39 +0200
commitc31ab8eee6a49a48b4e6ad92207b8ee0360a0eff (patch)
tree0b099fc1e3810c2709a40627e11da5dc4988822b /wgpu
parente3730106e9d4f75de199e1b83cf285b8ff031968 (diff)
parenta755472ee35dfb7839f989becafc6028921a3b99 (diff)
downloadiced-c31ab8eee6a49a48b4e6ad92207b8ee0360a0eff.tar.gz
iced-c31ab8eee6a49a48b4e6ad92207b8ee0360a0eff.tar.bz2
iced-c31ab8eee6a49a48b4e6ad92207b8ee0360a0eff.zip
Merge pull request #1811 from iced-rs/incremental-rendering
Incremental rendering
Diffstat (limited to 'wgpu')
-rw-r--r--wgpu/Cargo.toml4
-rw-r--r--wgpu/src/image/vector.rs6
-rw-r--r--wgpu/src/settings.rs17
-rw-r--r--wgpu/src/triangle.rs5
-rw-r--r--wgpu/src/window/compositor.rs11
5 files changed, 17 insertions, 26 deletions
diff --git a/wgpu/Cargo.toml b/wgpu/Cargo.toml
index 14dcd550..9f9bd066 100644
--- a/wgpu/Cargo.toml
+++ b/wgpu/Cargo.toml
@@ -23,7 +23,7 @@ once_cell = "1.0"
rustc-hash = "1.1"
[target.'cfg(target_arch = "wasm32")'.dependencies]
-wgpu = { version = "0.14", features = ["webgl"] }
+wgpu = { version = "0.15", features = ["webgl"] }
[dependencies.twox-hash]
version = "1.6"
@@ -58,7 +58,7 @@ version = "1.0"
optional = true
[dependencies.resvg]
-version = "0.29"
+version = "0.32"
optional = true
[dependencies.tracing]
diff --git a/wgpu/src/image/vector.rs b/wgpu/src/image/vector.rs
index 3624e46b..58bdf64a 100644
--- a/wgpu/src/image/vector.rs
+++ b/wgpu/src/image/vector.rs
@@ -43,6 +43,8 @@ type ColorFilter = Option<[u8; 4]>;
impl Cache {
/// Load svg
pub fn load(&mut self, handle: &svg::Handle) -> &Svg {
+ use usvg::TreeParsing;
+
if self.svgs.contains_key(&handle.id()) {
return self.svgs.get(&handle.id()).unwrap();
}
@@ -116,9 +118,9 @@ impl Cache {
resvg::render(
tree,
if width > height {
- usvg::FitTo::Width(width)
+ resvg::FitTo::Width(width)
} else {
- usvg::FitTo::Height(height)
+ resvg::FitTo::Height(height)
},
tiny_skia::Transform::default(),
img.as_mut(),
diff --git a/wgpu/src/settings.rs b/wgpu/src/settings.rs
index ff041bdf..266a2c87 100644
--- a/wgpu/src/settings.rs
+++ b/wgpu/src/settings.rs
@@ -46,7 +46,7 @@ impl Settings {
/// - `primary`
pub fn from_env() -> Self {
Settings {
- internal_backend: backend_from_env()
+ internal_backend: wgpu::util::backend_bits_from_env()
.unwrap_or(wgpu::Backends::all()),
..Self::default()
}
@@ -64,18 +64,3 @@ impl Default for Settings {
}
}
}
-
-fn backend_from_env() -> Option<wgpu::Backends> {
- std::env::var("WGPU_BACKEND").ok().map(|backend| {
- match backend.to_lowercase().as_str() {
- "vulkan" => wgpu::Backends::VULKAN,
- "metal" => wgpu::Backends::METAL,
- "dx12" => wgpu::Backends::DX12,
- "dx11" => wgpu::Backends::DX11,
- "gl" => wgpu::Backends::GL,
- "webgpu" => wgpu::Backends::BROWSER_WEBGPU,
- "primary" => wgpu::Backends::PRIMARY,
- other => panic!("Unknown backend: {other}"),
- }
- })
-}
diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs
index 0df8dd02..eb15a458 100644
--- a/wgpu/src/triangle.rs
+++ b/wgpu/src/triangle.rs
@@ -2,10 +2,13 @@
mod msaa;
use crate::buffer::r#static::Buffer;
-use crate::core::{Gradient, Size};
+use crate::core::Size;
use crate::graphics::{Antialiasing, Transformation};
use crate::layer::mesh::{self, Mesh};
+#[cfg(not(target_arch = "wasm32"))]
+use crate::core::Gradient;
+
#[cfg(feature = "tracing")]
use tracing::info_span;
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs
index 54ab83ea..c55ffa46 100644
--- a/wgpu/src/window/compositor.rs
+++ b/wgpu/src/window/compositor.rs
@@ -53,11 +53,12 @@ impl<Theme> Compositor<Theme> {
let adapter = instance
.request_adapter(&wgpu::RequestAdapterOptions {
- power_preference: if settings.antialiasing.is_none() {
- wgpu::PowerPreference::LowPower
- } else {
- wgpu::PowerPreference::HighPerformance
- },
+ power_preference: wgpu::util::power_preference_from_env()
+ .unwrap_or(if settings.antialiasing.is_none() {
+ wgpu::PowerPreference::LowPower
+ } else {
+ wgpu::PowerPreference::HighPerformance
+ }),
compatible_surface: compatible_surface.as_ref(),
force_fallback_adapter: false,
})