MCPcopy Create free account
hub / github.com/PerroEngine/Perro / create_texture

Method create_texture

perro_source/render_stack/perro_graphics/src/resources.rs:487–512  ·  view source on GitHub ↗
(&mut self, source: &str, reserved: bool)

Source from the content-addressed store, hash-verified

485 self.material_by_source.remove(&source_key(source));
486 self.material_source_by.remove(&id);
487 self.material_by.remove(&id);
488 self.material_revision = self.material_revision.wrapping_add(1);
489 self.clear_material_meta(id);
490 }
491
492 #[inline]
493 pub fn create_mesh(&mut self, source: &str, reserved: bool) -> MeshID {
494 let key = source_key(source);
495 if let Some(id) = self.mesh_by_source.get(&key).copied() {
496 if self.has_mesh(id) {
497 if reserved {
498 self.set_mesh_reserved(id, true);
499 }
500 self.log_resource_reused("mesh", id.index(), id.generation(), source, reserved);
501 return id;
502 }
503 self.purge_stale_mesh_source(source, id);
504 }
505 let (index, generation) = self.meshes.create_parts();
506 let id = MeshID::from_parts(index, generation);
507 self.mesh_by_source.insert(key, id);
508 self.mesh_source_by.insert(id, source.to_string());
509 self.set_mesh_source_slot(index, source);
510 self.set_mesh_meta(
511 id,
512 ResourceMeta {
513 reserved,
514 ..ResourceMeta::default()
515 },

Callers 15

process_commandsMethod · 0.80
ensure_sprite_textureMethod · 0.80
create_msaa_color_targetFunction · 0.80
create_color_targetFunction · 0.80
create_color_targetFunction · 0.80
create_post_lut_2dFunction · 0.80
create_post_lut_3dFunction · 0.80

Calls 11

has_textureMethod · 0.80
set_texture_reservedMethod · 0.80
log_resource_reusedMethod · 0.80
indexMethod · 0.80
create_partsMethod · 0.80
set_texture_metaMethod · 0.80
log_resource_createdMethod · 0.80
getMethod · 0.45
insertMethod · 0.45