refactor(pipeline): MP1a cleanup - narrow public surface, csproj parity, move residue
Coordinator-directed final cleanup before the user gate; none behavioral: 1. MeshExtractor public surface narrowed to the cross-assembly entry points App actually calls (PrepareMeshData, PrepareCellStructMeshData, CollectParts, ComputeBounds); PrepareSetupMeshData, CollectEmittersFromScript, PrepareGfxObjMeshData, PrepareEnvCellMeshData, PrepareCellStructEdgeLineData back to private (internal dispatch, only reached via PrepareMeshData). 2. sideStagedSink constructor parameter is now REQUIRED (no default; type stays nullable for a conscious null): a bake tool that forgot the sink would silently lose particle-preload meshes. 3. AcDream.Content.csproj gains TreatWarningsAsErrors + LangVersion latest (parity with AcDream.Core.csproj). Surfaced zero warnings. 4. Dead usings removed from ObjectMeshManager.cs (BCnEncoder.*, SixLabors.*) — the inline decode moved out in Task 4. 5. Doc fixes: ObjectMeshData.cs cross-assembly <see cref> -> plain text (Content can't resolve App types); IDatReaderWriter.cs stale Phase O-T7 'both in this namespace' sentence rewritten. 6. Stale test doc comments updated to MeshExtractor.PrepareGfxObjMeshData (StipplingSurfaceEquivalenceTests, Issue119UpNullGfxObjDumpTests) — comments only, no code/assertion changes. dotnet build green (0 warnings in Content under warnings-as-errors); full test suite 4059 passed / 0 failed / 4 skipped. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
932f904e00
commit
b0758d772b
7 changed files with 27 additions and 24 deletions
|
|
@ -16,9 +16,11 @@ namespace AcDream.Core.Tests.Conformance;
|
|||
/// invisible)` at startup (t5-gate-launch.log:33-34); the old tower shows
|
||||
/// missing stair parts (visible in retail — user axiom). UploadGfxObjMeshData
|
||||
/// returns null only when the PREPARE phase produced ZERO vertices
|
||||
/// (ObjectMeshManager.cs:1780), so the upload is innocent — some extraction
|
||||
/// (ObjectMeshManager.UploadGfxObjMeshData's empty-vertices guard), so the
|
||||
/// upload is innocent — some extraction
|
||||
/// gate dropped every polygon. This dump prints the raw dat facts per polygon
|
||||
/// and replicates PrepareGfxObjMeshData's gates (ObjectMeshManager.cs:1040-1058)
|
||||
/// and replicates MeshExtractor.PrepareGfxObjMeshData's gates (moved from
|
||||
/// ObjectMeshManager in MP1a)
|
||||
/// so the zeroing gate reads directly off the output.
|
||||
/// </summary>
|
||||
public sealed class Issue119UpNullGfxObjDumpTests
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ namespace AcDream.Core.Tests.Conformance;
|
|||
/// (0x2) and BASE1_CLIPMAP (0x4) are skipped (D3DPolyRender inner draw,
|
||||
/// Ghidra 0x0059d4a0; default on @0x00820e30). acdream suppresses them at
|
||||
/// BUILD time via Stippling.NoPos in all four extraction paths
|
||||
/// (ObjectMeshManager.PrepareGfxObjMeshData:1046 + PrepareCellStructMeshData
|
||||
/// :1394, CellMesh.Build:44, GfxObjMesh.Build:71).
|
||||
/// (MeshExtractor.PrepareGfxObjMeshData + PrepareCellStructMeshData
|
||||
/// [moved from ObjectMeshManager in MP1a], CellMesh.Build:44, GfxObjMesh.Build:71).
|
||||
///
|
||||
/// These criteria are equivalent ONLY if NoPos ⇔ untextured-surface holds on
|
||||
/// the content. This sweep pins both directions across the populated
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue