Implement native archive and model workflows (#74)
Some checks failed
Native code generation / deterministic (push) Failing after 1m48s
Imaging and meshing gate / native (push) Successful in 5m26s
JPEG 2000 feature / linux (push) Successful in 2m51s
Native Rust workspace compile / compile (push) Successful in 5m28s
Skia feature / linux (push) Successful in 31m53s

This commit is contained in:
2026-08-10 20:31:34 +00:00
parent 763e9e5044
commit 55424dbd7f
15 changed files with 5862 additions and 2024 deletions

View File

@@ -140,6 +140,38 @@ NATIVE_TYPES = {
"T:LibreMetaverse.Assets.AssetTexture": "crate::asset_models::AssetTexture",
"T:LibreMetaverse.Assets.AssetWearable": "crate::asset_models::AssetWearable",
"T:LibreMetaverse.Assets.GltfTextureTransform": "crate::asset_material::GltfTextureTransform",
"T:LibreMetaverse.Assets.Gltf.GltfAccessor": "crate::gltf::GltfAccessor",
"T:LibreMetaverse.Assets.Gltf.GltfAnimation": "crate::gltf::GltfAnimation",
"T:LibreMetaverse.Assets.Gltf.GltfAnimationChannel": "crate::gltf::GltfAnimationChannel",
"T:LibreMetaverse.Assets.Gltf.GltfAnimationChannelTarget": "crate::gltf::GltfAnimationChannelTarget",
"T:LibreMetaverse.Assets.Gltf.GltfAnimationSampler": "crate::gltf::GltfAnimationSampler",
"T:LibreMetaverse.Assets.Gltf.GltfBuffer": "crate::gltf::GltfBuffer",
"T:LibreMetaverse.Assets.Gltf.GltfBufferView": "crate::gltf::GltfBufferView",
"T:LibreMetaverse.Assets.Gltf.GltfDocument": "crate::gltf::GltfDocument",
"T:LibreMetaverse.Assets.Gltf.GltfDocumentMaterial": "crate::gltf::GltfDocumentMaterial",
"T:LibreMetaverse.Assets.Gltf.GltfImage": "crate::gltf::GltfImage",
"T:LibreMetaverse.Assets.Gltf.GltfMesh": "crate::gltf::GltfMesh",
"T:LibreMetaverse.Assets.Gltf.GltfNode": "crate::gltf::GltfNode",
"T:LibreMetaverse.Assets.Gltf.GltfNormalTextureRef": "crate::gltf::GltfNormalTextureRef",
"T:LibreMetaverse.Assets.Gltf.GltfOcclusionTextureRef": "crate::gltf::GltfOcclusionTextureRef",
"T:LibreMetaverse.Assets.Gltf.GltfPrimitive": "crate::gltf::GltfPrimitive",
"T:LibreMetaverse.Assets.Gltf.GltfSampler": "crate::gltf::GltfSampler",
"T:LibreMetaverse.Assets.Gltf.GltfScene": "crate::gltf::GltfScene",
"T:LibreMetaverse.Assets.Gltf.GltfSkin": "crate::gltf::GltfSkin",
"T:LibreMetaverse.Assets.Gltf.GltfTexture": "crate::gltf::GltfTexture",
"T:LibreMetaverse.Assets.Gltf.GltfTextureRef": "crate::gltf::GltfTextureRef",
"T:LibreMetaverse.Assets.TarArchiveReader": "crate::asset_archive::TarArchiveReader",
"T:LibreMetaverse.Assets.TarArchiveWriter": "crate::asset_archive::TarArchiveWriter",
"T:LibreMetaverse.Assets.OarFile.AssetLoadedCallback": "crate::asset_archive::OarFileAssetLoadedCallback",
"T:LibreMetaverse.Assets.OarFile.SceneObjectLoadedCallback": "crate::asset_archive::OarFileSceneObjectLoadedCallback",
"T:LibreMetaverse.Assets.OarFile.SettingsLoadedCallback": "crate::asset_archive::OarFileSettingsLoadedCallback",
"T:LibreMetaverse.Assets.OarFile.TerrainLoadedCallback": "crate::asset_archive::OarFileTerrainLoadedCallback",
"T:LibreMetaverse.Assets.RegionSettings": "crate::asset_archive::RegionSettings",
"T:LibreMetaverse.ImportExport.ColladaLoader": "crate::model_workflow::ColladaLoader",
"T:LibreMetaverse.ImportExport.ModelFace": "crate::model_workflow::ModelFace",
"T:LibreMetaverse.ImportExport.ModelMaterial": "crate::model_workflow::ModelMaterial",
"T:LibreMetaverse.ImportExport.ModelPrim": "crate::model_workflow::ModelPrim",
"T:LibreMetaverse.ImportExport.ModelUploader": "crate::model_workflow::ModelUploader",
"T:LibreMetaverse.GLTFMaterialUpdate": "crate::object_material::GLTFMaterialUpdate",
"T:LibreMetaverse.Assets.GestureStep": "crate::gesture::GestureStep",
"T:LibreMetaverse.Assets.GestureStepAnimation": "crate::gesture::GestureStepAnimation",
@@ -474,6 +506,25 @@ NATIVE_DECLARATIONS = {
}
NATIVE_MEMBER_BODIES = {
"F:LibreMetaverse.Assets.ArchiveConstants.ASSET_TYPE_TO_EXTENSION":
"crate::asset_archive::asset_type_to_extension()",
"F:LibreMetaverse.Assets.ArchiveConstants.EXTENSION_TO_ASSET_TYPE":
"crate::asset_archive::extension_to_asset_type()",
"M:LibreMetaverse.Assets.ArchiveConstants.#ctor": "Ok(Self)",
"M:LibreMetaverse.Assets.OarFile.ClearAssetFolder(System.String)":
"crate::asset_archive::clear_asset_folder(assets_path)",
"M:LibreMetaverse.Assets.OarFile.PackageArchive(System.String,System.String)":
"crate::asset_archive::package_archive(directory_name, filename)",
"M:LibreMetaverse.Assets.OarFile.SaveAssetsAsync(LibreMetaverse.AssetManager,LibreMetaverse.AssetType,System.Collections.Generic.IList{LibreMetaverse.UUID},System.String)":
"crate::asset_archive::save_assets(asset_manager, asset_type, assets, assets_path).await",
"M:LibreMetaverse.Assets.OarFile.SaveRegionSettings(LibreMetaverse.Simulator,System.String)":
"crate::asset_archive::save_region_settings(sim, settings_path)",
"M:LibreMetaverse.Assets.OarFile.SaveSimAssetsAsync(LibreMetaverse.AssetManager,LibreMetaverse.AssetType,LibreMetaverse.UUID,LibreMetaverse.UUID,LibreMetaverse.UUID,System.String)":
"crate::asset_archive::save_sim_asset(asset_manager, asset_type, asset_id, item_id, prim_id, assets_path).await",
"M:LibreMetaverse.Assets.OarFile.SaveTerrain(LibreMetaverse.Simulator,System.String)":
"crate::asset_archive::save_terrain(sim, terrain_path)",
"M:LibreMetaverse.Assets.OarFile.UnpackageArchive(System.String,LibreMetaverse.Assets.OarFile.AssetLoadedCallback,LibreMetaverse.Assets.OarFile.TerrainLoadedCallback,LibreMetaverse.Assets.OarFile.SceneObjectLoadedCallback,LibreMetaverse.Assets.OarFile.SettingsLoadedCallback)":
"crate::asset_archive::unpackage_archive(filename, asset_callback, terrain_callback, object_callback, settings_callback)",
"P:LibreMetaverse.GridClient.Estate": "self.native_estate().unwrap_or_else(|_| panic!(\"failed to construct EstateTools\"))",
"P:LibreMetaverse.GridClient.Estate#set": "self.native_set_estate(value)",
"P:LibreMetaverse.GridClient.Environment":