Skip to content

feat: consolidate GPU viewer and runtime 4.2 - #53

Draft
kiletw wants to merge 36 commits into
masterfrom
feat/v3-playback
Draft

feat: consolidate GPU viewer and runtime 4.2#53
kiletw wants to merge 36 commits into
masterfrom
feat/v3-playback

Conversation

@kiletw

@kiletw kiletw commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Task

  • Consolidates completed work from TASK-033 through TASK-047.
  • Establishes the merge-ready v3 baseline against master.

Changed

  • Added OpenTK GPU preview with explicit CPU fallback, renderer/performance status, display-channel controls, and Screen/PMA blend parity fixes.
  • Added the pinned official Spine 4.2 C# Runtime adapter with JSON/binary deterministic coverage and bounded Physics replay.
  • Expanded the layer-focused workspace with multi-layer actions, transform controls, slot visibility/opacity/attachment selection, and non-structural Undo/Redo.
  • Added drag/drop, manual atlas recovery, first-frame refresh, Dark/Light themes, screenshot/PNG-sequence export, and configurable Preview FPS (default 30).
  • Replaced the legacy-only root solution with a 20-project v3 solution.
  • Removed the v2 .NET Framework/XNA Viewer, Players, packages, resources, and unused XNA Runtime helpers.
  • Relocated 484 active historical Runtime source files into matching runtimes/SpineRuntime.V*/src projects; all 484 are Git R100 moves and their per-version SHA-256 manifests match before/after.
  • Updated English/Traditional Chinese README files, runtime paths, task reports, ADRs, evidence, and validation scripts.

Preserved behavior

  • Runtime adapters from Spine 2.1.08 through 4.2 remain composed and covered.
  • Deterministic CPU render/export remains available when GPU preview is unavailable or disabled.
  • Project saves remain non-destructive *.spineviewer.json sidecars; Spine source files are not overwritten.
  • The removed v2 implementation remains recoverable from Git history and the pre-PR master state.

Validation

  • Root solution Release build: 20 v3 projects, 0 warnings / 0 errors.
  • All 13 relocated historical Runtime projects: 0 warnings / 0 errors; 484 source manifests matched before/after.
  • WPF UI shell: 74 AutomationIds; floating inspector, slot attachment, slot visibility, Undo/Redo, and duplicate-layer checks passed; build 0 warnings / 0 errors.
  • Application smoke: Viewer project, PNG preview, edit history, validation, source isolation, and Preview FPS contract passed.
  • scripts/test-v3.ps1: inspect/render/PMA/4.0/4.2 passed; 12 historical Runtime deterministic checks passed.
  • scripts/test-v42.ps1 -Offline: official 4.2.22 JSON/binary inspect and deterministic renders passed; build 0 warnings / 0 errors.
  • Active references to the legacy project/SpineLibrary: 0. git diff --check: passed.

Runtime/upstream impact

  • Spine 4.2 is pinned to official spine-runtimes commit b81e5a58ed38704aee4f866f0e0ac672623ce914.
  • Historical source relocation changes paths only; Runtime .cs contents were not edited.
  • Project-owned V41 renderer bridges add V42-compatible namespace/signature conditionals; existing V41 upstream source is unchanged.

Risks and gaps

  • Screenshot and PNG-sequence export currently capture only the primary scene layer while the viewport can show multiple layers.
  • Runtime 4.3 is not implemented.
  • Structural Spine source authoring/save-back is not implemented; edits remain sidecar-based.
  • Structural layer add/remove Undo/Redo reconstruction is deferred.
  • The exact large 116421.json asset still benefits from a long-load acceptance pass on the target machine.
  • Spine 4.2 Physics beyond 10 seconds uses a bounded 600-step approximation.
  • Historical Runtime provenance remains less exact than the clean pinned 4.1/4.2 snapshots; TASK-047 proves relocation identity, not upstream origin.

Documentation updated

  • README.md, README_zhTW.md
  • docs/ai/00-context-index.md
  • docs/ai/04-runtime-matrix.md
  • docs/ai/07-migration-plan.md
  • TASK-033 through TASK-047 and related ADR/evidence files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant