refactor(render): extract world scene frame owner
Move fallback and PView world drawing, shared alpha, particles, visibility, selection, and diagnostics behind focused frame owners. Make exceptional frames failure-atomic by restoring the shared GL baseline and preserving primary alpha failures through cleanup. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
85239fb373
commit
28e1cf8029
25 changed files with 2679 additions and 844 deletions
|
|
@ -26,7 +26,7 @@ port, or resource-lifetime redesign.
|
|||
run the dependent audio, sky, lighting, and listener preparation.
|
||||
- [x] E — replace `RetailPViewDrawContext`'s callback bag with a typed
|
||||
`RetailPViewPassExecutor` and data-only inputs.
|
||||
- [ ] F — extract `WorldSceneRenderer`, including both shared-alpha scopes,
|
||||
- [x] F — extract `WorldSceneRenderer`, including both shared-alpha scopes,
|
||||
PView/fallback world branches, particles, debug world draw, and completion.
|
||||
- [ ] G — compose `RenderFrameOrchestrator`, cut `GameWindow.OnRender` to one
|
||||
handoff, and delete obsolete frame bodies, fields, helpers, and callbacks.
|
||||
|
|
@ -451,6 +451,22 @@ corrected-diff reviews are clean.
|
|||
- return a small `WorldRenderFrameOutcome` for diagnostics/presentation;
|
||||
- delete the world draw body and helper closure from `GameWindow`.
|
||||
|
||||
Completed 2026-07-22. `WorldSceneRenderer` now owns the normal-world
|
||||
transaction, one shared-alpha frame, retail selection accumulation, PView versus
|
||||
null-root fallback branching, post-world particles/weather, visibility
|
||||
publication, and world diagnostics. `WorldScenePassExecutor`, focused runtime
|
||||
sources, and `WorldSceneDiagnosticsController` carry the concrete GL and data
|
||||
seams without retaining `GameWindow`, delegates, or borrowed PView products.
|
||||
Failed frames abort PView, pass routing, particle visibility, alpha, and
|
||||
selection in reverse ownership order; one shared `RenderFrameGlStateController`
|
||||
restores scissor/stencil/blend/clip/mask/depth/cull/program/buffer state before
|
||||
the next clear. Normal portal-depth exits now restore the same cull-off
|
||||
convention, and alpha cleanup preserves the original draw failure while
|
||||
attempting every source reset. `GameWindow.cs` is 4,765 raw lines, 69.7% below
|
||||
the 15,723-line campaign baseline. Release build and the complete suite pass
|
||||
(7,313 passed / 5 skipped). Retail, architecture, and adversarial
|
||||
corrected-diff reviews are clean.
|
||||
|
||||
### G — final orchestration cutover
|
||||
|
||||
- compose concrete resource, world, private-presentation, and diagnostic owners;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue