QA #827
Replies: 3 comments 6 replies
-
|
Hi @GaneshPatil7517 - we would essentially want all of the same functionality. I am also pretty happy with the look and feel, personally, but this is open to discussion of course. Anything which can be done to simplify the maintenance burden would be great, and anything to help make it work e.g. in AR/VR would also be brilliant. |
Beta Was this translation helpful? Give feedback.
-
|
Hello @EdwardMoyse and @sponce This means every requestAnimationFrame tick (~60/sec) triggers Angular change detection across the entire component tree, even when nothing in the Angular UI has changedp - only the WebGL canvas is being repainted. In a typical Three.js + Angular setup, the recommended pattern is: Then re-enter the zone only when the UI actually needs to update (e.g., a user toggle, event load callback). However, Phoenix has a specific complication: the UIManager.updateUI() callback is called inside the animation loop (uiLoop in event-display.ts), and the PhoenixMenuNode callbacks mutate Three.js state synchronously - meaning Angular's zone awareness of those callbacks is what currently keeps the UI bindings in sync without explicit ChangeDetectorRef.markForCheck() calls. My question: Has running the animation loop outside Angular's zone been considered before? If the standalone migration + signals work goes well, this could be a natural follow-up - signals with OnPush change detection would give us explicit control over when Angular re-renders, and we could safely move the render loop out of the zone. But I want to understand if there's a historical reason it was kept inside the zone (e.g., stats panel updates, overlay sync, or XR session callbacks that depend on zone-triggered change detection). |
Beta Was this translation helpful? Give feedback.
-
|
Hey @sponce and @EdwardMoyse, while waiting for selections I've started working on a couple of the proposed deliverables:
Will open PRs shortly. Happy to adjust direction based on your feedback. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
@sponce and @EdwardMoyse
Given Phoenix’s production usage and my planned GUI modernization, what exact acceptance criteria would you want me to satisfy before we switch from the current GUI to the new implementation (feature parity checklist, performance threshold, and rollback plan), so I can optimize for long-term maintainability rather than just migration speed
Beta Was this translation helpful? Give feedback.
All reactions