fix: pause SceneKit gamut view and guard face indices #70

Closed
gronod wants to merge 0 commits from fix/28-gamut-pause into develop
Owner

Slice 3 fix for #28.

  • GamutSceneView.dismantleNSView pauses SCNView rendering (isPlaying = false).
  • GamutView pauses on .onDisappear as a fallback when the sheet is dismissed without dismantleNSView.
  • GamutSceneGeometryBuilder drops any face whose vertex indices are out of bounds before building the SCNGeometryElement.
  • Edge-line construction filters the same way, preventing mesh.vertices[...] crashes on malformed .gam data.
  • Adds GamutGeometryBuilderTests to verify an OOB face does not crash and is not written to the element.

Targets develop; no milestone umbrella.

Slice 3 fix for #28. - `GamutSceneView.dismantleNSView` pauses `SCNView` rendering (`isPlaying = false`). - `GamutView` pauses on `.onDisappear` as a fallback when the sheet is dismissed without `dismantleNSView`. - `GamutSceneGeometryBuilder` drops any face whose vertex indices are out of bounds before building the `SCNGeometryElement`. - Edge-line construction filters the same way, preventing `mesh.vertices[...]` crashes on malformed `.gam` data. - Adds `GamutGeometryBuilderTests` to verify an OOB face does not crash and is not written to the element. Targets `develop`; no milestone umbrella.
gronod added 1 commit 2026-09-10 01:43:52 +01:00
- GamutSceneView.dismantleNSView now sets scnView.isPlaying = false.
- GamutView pauses the renderer on .onDisappear so the sheet can be
  dismissed without relying solely on dismantleNSView.
- GamutSceneGeometryBuilder drops faces with any vertex index >=
  vertices.count before building the SCNGeometryElement; the edge-line
  builder filters the same way.
- Add GamutGeometryBuilderTests to verify an OOB face does not crash
  and is not included in the geometry element.

Generated with Devin

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
gronod closed this pull request 2026-09-10 02:09:20 +01:00
gronod deleted branch fix/28-gamut-pause 2026-09-10 02:09:20 +01:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gronod/iccery-v2-mac#70