API shims: Imaging, PrimMesher, and rendering assemblies #6

Closed
opened 2026-08-08 08:11:53 +00:00 by hugo · 1 comment
Owner

Objective

Implement the complete callable signature surface for imaging abstractions, Skia adapter, PrimMesher, SimpleRenderer, and MeshFoundry.

Deliverables

  • Map codec interfaces, managed-image data, meshing geometry/types, renderer interfaces, and all public methods and properties.
  • Keep native Skia and codec implementation details behind optional adapter boundaries.
  • Preserve generic and collection element types used by downstream samples and tests.
  • Use standardized failing bodies only.

Validation

  • Reach 100% catalog coverage for the five owned assemblies.
  • Build all owned crates and their docs on the default feature set.
  • Compile representative downstream calls for mesh construction and rendering.

Prerequisite

Stage 0 project setup is complete. Do not implement production behavior in this milestone.

Project constraints

  • Implement the public surface in native Rust only; no CLR hosting, FFI bridge, subprocess, RPC, or C# fallback.
  • Preserve recognizable API concepts while applying the documented Rust mapping rules.
  • Do not weaken parity requirements or add functional behavior outside this issue.
  • Update the API mapping, coverage report, public docs, and relevant handover status in the same change.
## Objective Implement the complete callable signature surface for imaging abstractions, Skia adapter, PrimMesher, SimpleRenderer, and MeshFoundry. ## Deliverables - Map codec interfaces, managed-image data, meshing geometry/types, renderer interfaces, and all public methods and properties. - Keep native Skia and codec implementation details behind optional adapter boundaries. - Preserve generic and collection element types used by downstream samples and tests. - Use standardized failing bodies only. ## Validation - Reach 100% catalog coverage for the five owned assemblies. - Build all owned crates and their docs on the default feature set. - Compile representative downstream calls for mesh construction and rendering. ## Prerequisite Stage 0 project setup is complete. Do not implement production behavior in this milestone. ## Project constraints - Implement the public surface in native Rust only; no CLR hosting, FFI bridge, subprocess, RPC, or C# fallback. - Preserve recognizable API concepts while applying the documented Rust mapping rules. - Do not weaken parity requirements or add functional behavior outside this issue. - Update the API mapping, coverage report, public docs, and relevant handover status in the same change.
hugo added this to the 02 - Full public API signature shim milestone 2026-08-08 08:11:53 +00:00
hugo added the enhancement label 2026-08-08 08:11:53 +00:00
Author
Owner

Implemented and pushed in commit 8ca986d. Generated the complete failure-only Rust signature surface for LibreMetaverse.Imaging.Abstractions, LibreMetaverse.Imaging.Skia, LibreMetaverse.PrimMesher, LibreMetaverse.Rendering.Simple, and LibreMetaverse.Rendering.MeshFoundry: 23 catalog types and 250 callable members. Added project-owned codec/bitmap boundary types (no SkiaSharp or platform-native dependency), preserved generic and collection element mappings, wired the owned crates, updated the mapping ledger, coverage report, README, and handover, and added representative typed PrimMesh/SimpleRenderer/MeshFoundry downstream compile calls plus exact NotImplemented member-ID assertions. Review verified exact catalog type/member-ID equality and standardized failing bodies. Gates passed: shim and mapping generator checks, cargo fmt, git diff --check, focused five-crate cargo check, workspace cargo check, workspace test compile (--no-run), workspace clippy with -D warnings, workspace docs, and the focused rendering_shims test (2 passed). The documented Stage 0 generated behavioral parity suite remains intentionally red and was not treated as a shim gate.

Implemented and pushed in commit 8ca986d. Generated the complete failure-only Rust signature surface for LibreMetaverse.Imaging.Abstractions, LibreMetaverse.Imaging.Skia, LibreMetaverse.PrimMesher, LibreMetaverse.Rendering.Simple, and LibreMetaverse.Rendering.MeshFoundry: 23 catalog types and 250 callable members. Added project-owned codec/bitmap boundary types (no SkiaSharp or platform-native dependency), preserved generic and collection element mappings, wired the owned crates, updated the mapping ledger, coverage report, README, and handover, and added representative typed PrimMesh/SimpleRenderer/MeshFoundry downstream compile calls plus exact NotImplemented member-ID assertions. Review verified exact catalog type/member-ID equality and standardized failing bodies. Gates passed: shim and mapping generator checks, cargo fmt, git diff --check, focused five-crate cargo check, workspace cargo check, workspace test compile (--no-run), workspace clippy with -D warnings, workspace docs, and the focused rendering_shims test (2 passed). The documented Stage 0 generated behavioral parity suite remains intentionally red and was not treated as a shim gate.
hugo closed this issue 2026-08-08 10:03:40 +00:00
Sign in to join this conversation.