summaryrefslogtreecommitdiffstats
path: root/wgpu/src/image.rs
diff options
context:
space:
mode:
Diffstat (limited to 'wgpu/src/image.rs')
-rw-r--r--wgpu/src/image.rs24
1 files changed, 19 insertions, 5 deletions
diff --git a/wgpu/src/image.rs b/wgpu/src/image.rs
index 4558ffb0..ccc956a9 100644
--- a/wgpu/src/image.rs
+++ b/wgpu/src/image.rs
@@ -1,3 +1,4 @@
+#[cfg(feature = "image")]
mod raster;
#[cfg(feature = "svg")]
mod vector;
@@ -5,10 +6,14 @@ mod vector;
use crate::Transformation;
use iced_native::{image, svg, Rectangle};
-use std::{cell::RefCell, mem};
+use std::mem;
+
+#[cfg(any(feature = "image", feature = "svg"))]
+use std::cell::RefCell;
#[derive(Debug)]
pub struct Pipeline {
+ #[cfg(feature = "image")]
raster_cache: RefCell<raster::Cache>,
#[cfg(feature = "svg")]
vector_cache: RefCell<vector::Cache>,
@@ -191,6 +196,7 @@ impl Pipeline {
});
Pipeline {
+ #[cfg(feature = "image")]
raster_cache: RefCell::new(raster::Cache::new()),
#[cfg(feature = "svg")]
vector_cache: RefCell::new(vector::Cache::new()),
@@ -205,6 +211,7 @@ impl Pipeline {
}
}
+ #[cfg(feature = "image")]
pub fn dimensions(&self, handle: &image::Handle) -> (u32, u32) {
let mut cache = self.raster_cache.borrow_mut();
let memory = cache.load(&handle);
@@ -250,11 +257,17 @@ impl Pipeline {
// [1]: https://github.com/nical/guillotiere
for image in instances {
let uploaded_texture = match &image.handle {
- Handle::Raster(handle) => {
- let mut cache = self.raster_cache.borrow_mut();
- let memory = cache.load(&handle);
+ Handle::Raster(_handle) => {
+ #[cfg(feature = "image")]
+ {
+ let mut cache = self.raster_cache.borrow_mut();
+ let memory = cache.load(&_handle);
- memory.upload(device, encoder, &self.texture_layout)
+ memory.upload(device, encoder, &self.texture_layout)
+ }
+
+ #[cfg(not(feature = "image"))]
+ None
}
Handle::Vector(_handle) => {
#[cfg(feature = "svg")]
@@ -339,6 +352,7 @@ impl Pipeline {
}
pub fn trim_cache(&mut self) {
+ #[cfg(feature = "image")]
self.raster_cache.borrow_mut().trim();
#[cfg(feature = "svg")]