1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#![allow(dead_code)]
pub struct Image {
name: String,
pub width: u32,
pub height: u32,
pub data: Vec<u8>,
}
// pub enum ImageOrId {
// Image(image::DynamicImage),
// Id(femtovg::ImageId),
// }
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct Resource(u32);
pub struct ResourceManager {
//pub images: HashMap<String, Image>,
pub stylesheets: Vec<String>, // Stylesheets refer to a fiel path
pub themes: Vec<String>, // Themes are the string content stylesheets
pub images: Vec<Image>,
//pub image_ids: HashMap<Rc<()>, ImageOrId>,
count: u32,
}
impl ResourceManager {
pub fn new() -> Self {
ResourceManager {
//images: HashMap::new(),
stylesheets: Vec::new(),
themes: Vec::new(),
images: Vec::new(),
//image_ids: HashMap::new(),
count: 0,
}
}
// TODO
// pub(crate) fn add_image(&mut self, image: image::DynamicImage) -> Rc<()> {
// // self.images.push(Image {
// // name: name.to_string(),
// // width,
// // height,
// // data,
// // });
// let resource = Rc::new(());
// self.image_ids
// .insert(resource.clone(), ImageOrId::Image(image));
// resource.clone()
// }
pub(crate) fn add_font(&mut self, _name: &str, _path: &str) {}
// pub fn add_stylesheet(&mut self, path: String) -> Result<(), std::io::Error> {
// let style_string = std::fs::read_to_string(path.clone())?;
// self.stylesheets.push(path);
// Ok(())
// }
// pub fn load_image(&mut self, name: &str, path: &str) {
// let img = image::open(path).expect(&format!("failed to load image: {}", path));
// let mut raw_data: Vec<u32> = vec![0; img.to_rgba().into_raw().len() / 4];
// LittleEndian::read_u32_into(img.to_rgba().into_raw().as_ref(), &mut raw_data);
// let image = Image {
// width: img.width() as usize,
// height: img.height() as usize,
// data: raw_data,
// };
// self.images.insert(name.to_string(), image);
// }
}