refactor(lifetime): own render resource prefixes
Give terrain, sky, retained UI, portal preparation, and the update/render frame pair explicit single owners. Make shader, texture, text, bindless, and GL construction prefixes checked and retryable so partial failure cannot lose or replay resource ownership. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
fec0d94148
commit
c87b15303d
41 changed files with 3768 additions and 355 deletions
|
|
@ -26,7 +26,7 @@ audit.
|
|||
- [x] F — extract the sole gameplay input-action router plus focused combat and
|
||||
diagnostic command owners.
|
||||
- [x] G — extract two-phase persisted settings/display/quality ownership.
|
||||
- [ ] H — give terrain atlas, sky shader, retained `UiHost`, and both frame roots
|
||||
- [x] H — give terrain atlas, sky shader, retained `UiHost`, and both frame roots
|
||||
explicit single ownership and transfer seams.
|
||||
- [ ] I — group `OnLoad` into small ordered, fakeable composition phases with
|
||||
transactional partial-acquisition rollback.
|
||||
|
|
@ -598,6 +598,22 @@ intentional skips (17 existing test-project warnings remain tracked by #228).
|
|||
Inject GL compile/link/texture-allocation failure after every internal name
|
||||
and prove exact rollback/residency release.
|
||||
|
||||
Checkpoint H is complete. `GameRenderResourceLifetime` is the sole terrain-
|
||||
atlas and dedicated-sky-shader owner; renderers borrow and retire before those
|
||||
roots. `RetailUiRuntimeLease` retains the Host/runtime chain through partial
|
||||
construction, input cutoff, retryable disposal, and explicit terminal
|
||||
abandonment. `GameFrameGraphSlot` publishes update/render roots atomically, and
|
||||
the portal tunnel now uses one prepare-aware fallback/transfer transaction.
|
||||
Shader, terrain, text-renderer, buffer/VAO, bindless, and texture-binding
|
||||
construction/mutation paths use always-on checked GL commit boundaries. A
|
||||
failed cleanup retains the exact name/handle/binding obligation for retry, and
|
||||
successful substeps never replay. `GameWindow` is 3,689 raw lines / 162 fields
|
||||
/ 37 methods. The focused ownership gate passes 61 tests, the App Release suite
|
||||
passes 3,236 tests / 3 intentional skips, and all three independent final
|
||||
corrected-diff reviews are clean. The complete Release suite passes 7,606 tests
|
||||
/ 5 intentional skips; the 17 existing test-project warnings remain tracked by
|
||||
#228.
|
||||
|
||||
### I — ordered production composition
|
||||
|
||||
- Split the 2,289-line `OnLoad` body at §3.6 boundaries using the fixed typed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue