| 418 | { |
| 419 | meta.gc_queued = true; |
| 420 | let updated = *meta; |
| 421 | self.material_meta_by.insert(id, updated); |
| 422 | self.material_gc_candidates.push(id); |
| 423 | } |
| 424 | } |
| 425 | |
| 426 | #[inline] |
| 427 | fn purge_stale_mesh_source(&mut self, source: &str, id: MeshID) { |
| 428 | let key = source_key(source); |
| 429 | self.mesh_by_source.remove(&key); |
| 430 | self.mesh_source_by.remove(&id); |
| 431 | self.runtime_mesh_by_source.remove(&key); |
| 432 | self.runtime_mesh_by_id.remove(&id); |
| 433 | self.mesh_revision_by_id.remove(&id); |
| 434 | self.clear_mesh_meta(id); |
| 435 | self.clear_mesh_source_slot_if(id.index(), source); |
| 436 | } |
| 437 | |
| 438 | #[inline] |
| 439 | fn purge_stale_texture_source(&mut self, source: &str, id: TextureID) { |
| 440 | let key = source_key(source); |
| 441 | self.texture_by_source.remove(&key); |
| 442 | self.texture_source_by.remove(&id); |
| 443 | self.remove_decoded_texture_state(id); |
| 444 | self.clear_texture_meta(id); |
| 445 | self.clear_texture_source_slot_if(id.index(), source); |
| 446 | } |
| 447 | |
| 448 | #[inline] |
| 449 | fn purge_stale_material_source(&mut self, source: &str, id: MaterialID) { |