MCPcopy Create free account
hub / github.com/Bloom-Engine/engine / bloom_commit_model

Function bloom_commit_model

native/macos/src/lib.rs:3009–3034  ·  view source on GitHub ↗
(staging_handle: f64)

Source from the content-addressed store, hash-verified

3007
3008#[no_mangle]
3009pub extern "C" fn bloom_commit_model(staging_handle: f64) -> f64 {
3010 let staged = match bloom_shared::staging::take_model(staging_handle) {
3011 Some(s) => s,
3012 None => return 0.0,
3013 };
3014 let eng = engine();
3015 // Register staged textures with GPU and build index map.
3016 // Staged texture_idx values are 1-based into staged.textures.
3017 // We map them to actual renderer bind_group_idx values.
3018 let mut tex_map: Vec<u32> = Vec::with_capacity(staged.textures.len());
3019 for tex in &staged.textures {
3020 tex_map.push(eng.renderer.register_texture(tex.width, tex.height, &tex.data));
3021 }
3022 let mut model = staged.model;
3023 for mesh in &mut model.meshes {
3024 if let Some(ref mut idx) = mesh.texture_idx {
3025 let staged_idx = *idx as usize;
3026 if staged_idx > 0 && staged_idx <= tex_map.len() {
3027 *idx = tex_map[staged_idx - 1];
3028 } else {
3029 mesh.texture_idx = None;
3030 }
3031 }
3032 }
3033 eng.models.models.alloc(model)
3034}
3035
3036#[no_mangle]
3037pub extern "C" fn bloom_commit_sound(staging_handle: f64) -> f64 {

Callers

nothing calls this directly

Calls 5

take_modelFunction · 0.85
register_textureMethod · 0.80
allocMethod · 0.80
engineFunction · 0.70
pushMethod · 0.45

Tested by

no test coverage detected