summaryrefslogtreecommitdiffstats
path: root/wgpu/src/backend.rs
diff options
context:
space:
mode:
Diffstat (limited to 'wgpu/src/backend.rs')
-rw-r--r--wgpu/src/backend.rs38
1 files changed, 21 insertions, 17 deletions
diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs
index 819d65c7..4f34045b 100644
--- a/wgpu/src/backend.rs
+++ b/wgpu/src/backend.rs
@@ -9,7 +9,7 @@ use iced_graphics::{Primitive, Viewport};
use iced_native::mouse;
use iced_native::{Font, HorizontalAlignment, Size, VerticalAlignment};
-#[cfg(any(feature = "image", feature = "svg"))]
+#[cfg(any(feature = "image_rs", feature = "svg"))]
use crate::image;
/// A [`wgpu`] graphics backend for [`iced`].
@@ -22,7 +22,7 @@ pub struct Backend {
text_pipeline: text::Pipeline,
triangle_pipeline: triangle::Pipeline,
- #[cfg(any(feature = "image", feature = "svg"))]
+ #[cfg(any(feature = "image_rs", feature = "svg"))]
image_pipeline: image::Pipeline,
default_text_size: u16,
@@ -30,27 +30,31 @@ pub struct Backend {
impl Backend {
/// Creates a new [`Backend`].
- ///
- /// [`Backend`]: struct.Backend.html
- pub fn new(device: &wgpu::Device, settings: Settings) -> Self {
- let text_pipeline =
- text::Pipeline::new(device, settings.format, settings.default_font);
- let quad_pipeline = quad::Pipeline::new(device, settings.format);
- let triangle_pipeline = triangle::Pipeline::new(
+ pub fn new(
+ device: &wgpu::Device,
+ settings: Settings,
+ format: wgpu::TextureFormat,
+ ) -> Self {
+ let text_pipeline = text::Pipeline::new(
device,
- settings.format,
- settings.antialiasing,
+ format,
+ settings.default_font,
+ settings.text_multithreading,
);
- #[cfg(any(feature = "image", feature = "svg"))]
- let image_pipeline = image::Pipeline::new(device, settings.format);
+ let quad_pipeline = quad::Pipeline::new(device, format);
+ let triangle_pipeline =
+ triangle::Pipeline::new(device, format, settings.antialiasing);
+
+ #[cfg(any(feature = "image_rs", feature = "svg"))]
+ let image_pipeline = image::Pipeline::new(device, format);
Self {
quad_pipeline,
text_pipeline,
triangle_pipeline,
- #[cfg(any(feature = "image", feature = "svg"))]
+ #[cfg(any(feature = "image_rs", feature = "svg"))]
image_pipeline,
default_text_size: settings.default_text_size,
@@ -94,7 +98,7 @@ impl Backend {
);
}
- #[cfg(any(feature = "image", feature = "svg"))]
+ #[cfg(any(feature = "image_rs", feature = "svg"))]
self.image_pipeline.trim_cache();
*mouse_interaction
@@ -144,7 +148,7 @@ impl Backend {
);
}
- #[cfg(any(feature = "image", feature = "svg"))]
+ #[cfg(any(feature = "image_rs", feature = "svg"))]
{
if !layer.images.is_empty() {
let scaled = transformation
@@ -272,7 +276,7 @@ impl backend::Text for Backend {
}
}
-#[cfg(feature = "image")]
+#[cfg(feature = "image_rs")]
impl backend::Image for Backend {
fn dimensions(&self, handle: &iced_native::image::Handle) -> (u32, u32) {
self.image_pipeline.dimensions(handle)