diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/src/scene_prepare.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/client/src/scene_prepare.rs b/client/src/scene_prepare.rs index 8b2453a..36761a0 100644 --- a/client/src/scene_prepare.rs +++ b/client/src/scene_prepare.rs @@ -80,7 +80,7 @@ pub struct ScenePreparer { texture_bgl: BindGroupLayout, textures: DemandMap<Resource<Image>, (Arc<Texture>, Arc<BindGroup>)>, - placeholder_textures: DemandMap<(), (Arc<Texture>, Arc<BindGroup>)>, + placeholder_textures: DemandMap<bool, (Arc<Texture>, Arc<BindGroup>)>, index_buffers: DemandMap<Resource<Vec<[u32; 3]>>, (Arc<Buffer>, u32)>, vertex_buffers: DemandMap<Resource<Vec<f32>>, (Arc<Buffer>, u32)>, placeholder_vertex_buffers: DemandMap<(u32, bool), Arc<Buffer>>, @@ -201,16 +201,17 @@ impl ScenePreparer { ) } } - for pres in self.placeholder_textures.needed() { + for variant in self.placeholder_textures.needed() { + let v = if variant { 1 } else { 0 }; let tex_bg = create_texture( &self.device, &self.queue, &self.texture_bgl, - &[255, 255, 255, 255], + &[v, v, v, 255], 1, 1, ); - self.placeholder_textures.insert(pres, tex_bg); + self.placeholder_textures.insert(variant, tex_bg); } for pres in self.mesh_parts.needed() { let start = Instant::now(); @@ -248,7 +249,7 @@ impl ScenePreparer { tex_albedo = Some(bg) } } else { - if let Some((_tex, bg)) = self.placeholder_textures.try_get(()) { + if let Some((_tex, bg)) = self.placeholder_textures.try_get(true) { tex_albedo = Some(bg) } } @@ -258,7 +259,7 @@ impl ScenePreparer { tex_normal = Some(bg) } } else { - if let Some((_tex, bg)) = self.placeholder_textures.try_get(()) { + if let Some((_tex, bg)) = self.placeholder_textures.try_get(false) { tex_normal = Some(bg) } } |