diff options
Diffstat (limited to 'client/src/scene_prepare.rs')
-rw-r--r-- | client/src/scene_prepare.rs | 23 |
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) } } |