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:
parent
5575e6ea08
commit
8ce8d374b1
20 changed files with 164 additions and 127 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue