refactor(render): extract world frame preparation
Move camera/root resolution, live settings and listener preview, sky/lighting/fog preparation, animated classification, and building visibility scratch behind a typed WorldRenderFrameBuilder while preserving retail frame order and borrowed lifetimes. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
bc6f09f987
commit
6d6e5b5fa5
8 changed files with 1463 additions and 583 deletions
|
|
@ -18,10 +18,10 @@ port, or resource-lifetime redesign.
|
|||
introduce data-only frame contracts plus deterministic order/failure tests.
|
||||
- [x] B — extract paperdoll, panel-layout/devtools, and render-diagnostics leaf
|
||||
owners while `GameWindow` still orders the frame.
|
||||
- [ ] C — extract frame-resource begin/upload/publication and live display,
|
||||
- [x] C — extract frame-resource begin/upload/publication and live display,
|
||||
and weather/display foundations that do not depend on camera/root
|
||||
classification.
|
||||
- [ ] D — extract frame-data classification and reusable world scratch without
|
||||
- [x] D — extract frame-data classification and reusable world scratch without
|
||||
duplicating live identity, spatial, visibility, or resource ownership; then
|
||||
run the dependent audio, sky, lighting, and listener preparation.
|
||||
- [ ] E — replace `RetailPViewDrawContext`'s callback bag with a typed
|
||||
|
|
@ -404,6 +404,19 @@ corrected-diff reviews are clean.
|
|||
fallback/null-root, sealed/SeenOutside, and borrowed scratch reset;
|
||||
- preserve allocation-free warmed frames and hysteretic scratch retention.
|
||||
|
||||
Completed 2026-07-22. `WorldRenderFrameBuilder` now owns the ordered camera,
|
||||
visibility, live settings/listener, player-lighting versus collided-viewer root,
|
||||
sky/lighting/fog, animated-ID, and building-candidate preparation. Reusable
|
||||
animated/building/light-cell collections retain their explicit one-frame
|
||||
borrowed lifetime; PView drawable-cell feedback returns through the builder and
|
||||
is copied before the renderer reuses its own scratch. The diagnostic sky-PES
|
||||
experiment moved to `SkyPesFrameController`, and fog startup overrides now enter
|
||||
through typed `RuntimeOptions`. The frame graph is withdrawn before its borrowed
|
||||
equipped/effect/audio owners during shutdown. `GameWindow.cs` is 5,715 raw
|
||||
lines, 63.6% below the 15,723-line campaign baseline. Twenty-nine focused tests,
|
||||
the Release build, and the complete suite pass (7,281 passed / 5 skipped).
|
||||
Retail, architecture, and adversarial corrected-diff reviews are clean.
|
||||
|
||||
### E — typed PView pass executor
|
||||
|
||||
- replace `Action`/`Func` draw callbacks in `RetailPViewDrawContext`;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue