Refactor some image traits a bit

- Use `Size<u32>` were applicable.
- Rename `TextureStore` to `image::Storage`.
- Rename `TextureStoreEntry` to `image::storage::Entry`.
- Wire up `viewport_dimensions` to `iced_glow` for `Svg`.
This commit is contained in:
Héctor Ramón Jiménez 2022-11-05 03:13:04 +01:00
parent 5575e6ea08
commit 8ce8d374b1
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
20 changed files with 164 additions and 127 deletions

View file

@ -1,34 +1,10 @@
//! Image loading and caching
use std::fmt::Debug;
//! Render images.
#[cfg(feature = "image_rs")]
pub mod raster;
#[cfg(feature = "svg")]
pub mod vector;
/// Entry in the texture store
pub trait TextureStoreEntry: Debug {
/// Width and height of the entry
fn size(&self) -> (u32, u32);
}
pub mod storage;
/// Stores cached image data for use in rendering
pub trait TextureStore {
/// Entry in the texture store
type Entry: TextureStoreEntry;
/// State passed to upload/remove
type State<'a>;
/// Upload image data
fn upload(
&mut self,
width: u32,
height: u32,
data: &[u8],
state: &mut Self::State<'_>,
) -> Option<Self::Entry>;
/// Remome image from store
fn remove(&mut self, entry: &Self::Entry, state: &mut Self::State<'_>);
}
pub use storage::Storage;