Implement native TGA and DDS compatibility (#39)

This commit is contained in:
2026-08-09 02:51:39 +00:00
parent 2c806d80ff
commit 5d1573fc82
10 changed files with 1285 additions and 31 deletions

View File

@@ -38,6 +38,7 @@ TARGETS = {
# implementations. The generated module keeps catalog markers and re-exports
# the hand-written type so coverage remains deterministic.
NATIVE_TYPES = {
"T:LibreMetaverse.Imaging.Targa": "crate::targa::Targa",
"T:LibreMetaverse.Imaging.ITextureCodec": "crate::managed_image::ITextureCodec",
"T:LibreMetaverse.Imaging.ManagedImage": "crate::managed_image::ManagedImage",
"T:LibreMetaverse.Imaging.ManagedImage.ImageChannels": "crate::managed_image::ManagedImageImageChannels",
@@ -1019,14 +1020,15 @@ def coverage_report(catalog: dict, coverage: dict[str, tuple[int, int, bool]]) -
if item["doc_id"] in native_type_ids or member["doc_id"] in NATIVE_MEMBER_BODIES
}
if native_type_ids or native_member_ids:
type_noun = "type" if len(native_type_ids) == 1 else "types"
if len(native_member_ids) == members:
status = (
f"native implementation: {len(native_type_ids):,} types / "
f"native implementation: {len(native_type_ids):,} {type_noun} / "
f"{len(native_member_ids):,} members; no generated shims remain"
)
else:
status = (
f"native implementation: {len(native_type_ids):,} types / "
f"native implementation: {len(native_type_ids):,} {type_noun} / "
f"{len(native_member_ids):,} members; remaining surface is callable failure-only shims"
)
else: