Summary
PR #748 implements and code/test-verifies the RenderResourceManager hot-reload swap mechanism (ScheduleSwap/FlushPendingSwaps) — editing and re-saving a mesh asset while the editor is open should now update the live GPU buffer instead of silently doing nothing (the previous behavior, see #740).
What's missing is an actual manual, visual, end-to-end check in the running editor: import a mesh, place it in a scene, edit the source file on disk, and confirm the mesh visibly updates in the viewport without a restart.
Why this wasn't done as part of #748
SampleProject's DefaultScene has no mesh assets loaded at all today (just a DirectionalLight) — there's nothing already in the scene to hot-reload against.
- Getting one in requires importing a mesh through the editor GUI (drag-and-drop / import dialog), which isn't automatable in this environment:
cliclick's synthetic mouse clicks don't reach the Obelisk window (missing Accessibility/Input Monitoring permission for the driving process).
- AppleScript's
System Events can move/resize the window but can't click inside its custom-rendered ZUI content (no native accessibility elements exposed).
What's needed to close this
Either:
- Manual pass: import a test mesh (e.g. a simple glTF/OBJ) into
SampleProject, place it in DefaultScene, run the editor, edit the source mesh file (change a vertex, re-export), save, and confirm the in-viewport mesh updates within a few frames without restarting. Also worth checking that the previous geometry doesn't flash/corrupt during the swap.
- Or: grant Accessibility/Input Monitoring permission to whatever process drives future automated GUI testing, so this (and similar future UI-driven checks) can be scripted.
Where
Summary
PR #748 implements and code/test-verifies the
RenderResourceManagerhot-reload swap mechanism (ScheduleSwap/FlushPendingSwaps) — editing and re-saving a mesh asset while the editor is open should now update the live GPU buffer instead of silently doing nothing (the previous behavior, see #740).What's missing is an actual manual, visual, end-to-end check in the running editor: import a mesh, place it in a scene, edit the source file on disk, and confirm the mesh visibly updates in the viewport without a restart.
Why this wasn't done as part of #748
SampleProject'sDefaultScenehas no mesh assets loaded at all today (just aDirectionalLight) — there's nothing already in the scene to hot-reload against.cliclick's synthetic mouse clicks don't reach the Obelisk window (missing Accessibility/Input Monitoring permission for the driving process).System Eventscan move/resize the window but can't click inside its custom-rendered ZUI content (no native accessibility elements exposed).What's needed to close this
Either:
SampleProject, place it inDefaultScene, run the editor, edit the source mesh file (change a vertex, re-export), save, and confirm the in-viewport mesh updates within a few frames without restarting. Also worth checking that the previous geometry doesn't flash/corrupt during the swap.Where
ZEngine/ZEngine/Rendering/RenderResourceManager.cpp(ScheduleSwap,FlushPendingSwaps,AppendMeshData)