Generate visual parameter and foliage catalogs (#48)
Some checks failed
Native code generation / deterministic (push) Successful in 4m48s
Imaging and meshing gate / native (push) Failing after 16s
JPEG 2000 feature / linux (push) Failing after 58s
Skia feature / linux (push) Failing after 1m37s

This commit is contained in:
2026-08-09 09:00:41 +00:00
parent 74801c3488
commit 5f83ce61e1
15 changed files with 25447 additions and 465 deletions

View File

@@ -39,6 +39,9 @@ TARGETS = {
# the hand-written type so coverage remains deterministic.
NATIVE_TYPES = {
"T:LibreMetaverse.BitPack": "crate::bit_pack::BitPack",
"T:LibreMetaverse.DrivenParamInfo": "crate::visual_catalog::DrivenParamInfo",
"T:LibreMetaverse.GrassDefinition": "crate::foliage_catalog::GrassDefinition",
"T:LibreMetaverse.GrassDefinitions": "crate::foliage_catalog::GrassDefinitions",
"T:LibreMetaverse.Packets.PacketType": "crate::packet_catalog::PacketType",
"T:LibreMetaverse.PrimMesher.Coord": "crate::prim_mesher::Coord",
"T:LibreMetaverse.PrimMesher.Face": "crate::prim_mesher::Face",
@@ -100,6 +103,14 @@ NATIVE_TYPES = {
"T:LibreMetaverse.Vector3d": "crate::vectors::Vector3d",
"T:LibreMetaverse.Vector4": "crate::vectors::Vector4",
"T:LibreMetaverse.Utils": "crate::utils::Utils",
"T:LibreMetaverse.SkeletalBoneInfo": "crate::visual_catalog::SkeletalBoneInfo",
"T:LibreMetaverse.TreeDefinition": "crate::foliage_catalog::TreeDefinition",
"T:LibreMetaverse.TreeDefinitions": "crate::foliage_catalog::TreeDefinitions",
"T:LibreMetaverse.VisualAlphaParam": "crate::visual_catalog::VisualAlphaParam",
"T:LibreMetaverse.VisualColorParam": "crate::visual_catalog::VisualColorParam",
"T:LibreMetaverse.VisualParam": "crate::visual_catalog::VisualParam",
"T:LibreMetaverse.VisualParams": "crate::visual_catalog::VisualParams",
"T:LibreMetaverse.VolumeMorphInfo": "crate::visual_catalog::VolumeMorphInfo",
}
# Native declarations whose cataloged method implementations are still emitted
@@ -110,6 +121,22 @@ NATIVE_DECLARATIONS = {
}
NATIVE_MEMBER_BODIES = {
"M:LibreMetaverse.Avatar.#ctor":
"crate::visual_catalog::new_avatar()",
"M:LibreMetaverse.Avatar.DecodeVisualParams":
"Ok(crate::visual_catalog::decode_visual_params(&self.visual_parameters))",
"M:LibreMetaverse.AvatarAppearanceEventArgs.#ctor(LibreMetaverse.Simulator,LibreMetaverse.UUID,System.Boolean,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Primitive.TextureEntryFace[],System.Collections.Generic.List{System.Byte},System.Byte,System.Int32,LibreMetaverse.AppearanceFlags,System.Int32)":
"Ok(Self { stored_visual_params: visual_params })",
"M:LibreMetaverse.AvatarAppearanceEventArgs.DecodeVisualParams":
"Ok(crate::visual_catalog::decode_visual_params(&self.stored_visual_params))",
"P:LibreMetaverse.AvatarAppearanceEventArgs.VisualParams":
"self.stored_visual_params.clone()",
"M:LibreMetaverse.Primitive.GetGrassDefinition":
"crate::foliage_catalog::grass_by_id(self.prim_data.state)",
"M:LibreMetaverse.Primitive.GetTreeDefinition":
"crate::foliage_catalog::TreeDefinitions::get(self.tree_species)",
"M:LibreMetaverse.Primitive.TextureEntryFace.#ctor(LibreMetaverse.Primitive.TextureEntryFace)":
"crate::visual_catalog::new_texture_entry_face()",
"M:LibreMetaverse.StructuredData.OSDParser.BufferCharactersEqual(System.IO.StringReader,System.Char[],System.Int32)":
"crate::notation::buffer_characters_equal(reader, buffer, offset)",
"M:LibreMetaverse.StructuredData.OSDParser.ConsumeBytes(System.IO.Stream,System.Int32)":
@@ -554,6 +581,7 @@ UNDERLYING = {
}
PRIVATE_LAYOUTS = {
"T:LibreMetaverse.AvatarAppearanceEventArgs": [("stored_visual_params", "Vec<u8>")],
"T:LibreMetaverse.CacheDictionary`2": [("entries", "std::collections::HashMap<TKey, TValue>")],
"T:LibreMetaverse.DoubleDictionary`3": [
("by_first", "std::collections::HashMap<TKey1, TValue>"),