summaryrefslogtreecommitdiff
path: root/client/src/scene_prepare.rs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/scene_prepare.rs')
-rw-r--r--client/src/scene_prepare.rs23
1 files changed, 15 insertions, 8 deletions
diff --git a/client/src/scene_prepare.rs b/client/src/scene_prepare.rs
index 57d44b0..cf94bbf 100644
--- a/client/src/scene_prepare.rs
+++ b/client/src/scene_prepare.rs
@@ -114,7 +114,8 @@ impl ScenePreparer {
queue,
}
}
- pub fn update(&self, dls: &Downloader) -> Result<()> {
+ pub fn update(&self, dls: &Downloader) -> Result<usize> {
+ let mut num_done = 0;
for pres in self.prefabs.needed() {
if let Some(prefab) = dls.try_get(pres.clone())? {
let mut rprefab = RPrefab(Vec::new());
@@ -126,6 +127,7 @@ impl ScenePreparer {
if rprefab.0.len() == prefab.mesh.len() {
self.prefabs.insert(pres.clone(), Arc::new(rprefab));
debug!("prefab created ({pres})");
+ num_done += 1;
}
}
}
@@ -151,6 +153,7 @@ impl ScenePreparer {
buf.len() / size_of::<u32>(),
start.elapsed(),
);
+ num_done += 1;
}
}
for pres in self.vertex_buffers.needed() {
@@ -174,6 +177,7 @@ impl ScenePreparer {
buf.len() / size_of::<f32>(),
start.elapsed()
);
+ num_done += 1;
}
}
for pres in self.textures.needed() {
@@ -182,15 +186,15 @@ impl ScenePreparer {
let image = ImageReader::new(Cursor::new(buf.0)).with_guessed_format()?;
let image = image.decode()?;
let dims = (image.width(), image.height());
- let image = image.to_rgba8();
- let image_raw = image.to_vec();
+ let image = image.into_rgba8();
+ let image = image.into_vec();
let tex_bg = create_texture(
&self.device,
&self.queue,
&self.texture_bgl,
- &image_raw,
- image.width(),
- image.height(),
+ &image,
+ dims.0,
+ dims.1,
);
self.textures.insert(pres.clone(), tex_bg);
debug!(
@@ -198,7 +202,8 @@ impl ScenePreparer {
dims.0,
dims.1,
start.elapsed()
- )
+ );
+ num_done += 1;
}
}
for variant in self.placeholder_textures.needed() {
@@ -212,6 +217,7 @@ impl ScenePreparer {
1,
);
self.placeholder_textures.insert(variant, tex_bg);
+ num_done += 1;
}
for pres in self.mesh_parts.needed() {
let start = Instant::now();
@@ -286,11 +292,12 @@ impl ScenePreparer {
tex_normal,
}),
);
+ num_done += 1;
}
}
}
}
- Ok(())
+ Ok(num_done)
}
}