Background normal map generation, queue-draining load screen warmup

- Normal map CPU work (luminance→blur→Sobel) moved to background threads,
  main thread only does GPU upload (~1-2ms vs 15-22ms per texture)
- Load screen warmup now waits until ALL spawn/equipment/gameobject queues
  are drained before transitioning (prevents naked character, NPC pop-in)
- Exit condition: min 2s + 5 consecutive empty iterations, hard cap 15s
- Equipment queue processes 8 items per warmup iteration instead of 1
- Added LoadingScreen::renderOverlay() for future world-behind-loading use
This commit is contained in:
Kelsi 2026-03-07 18:40:24 -08:00
parent 63efac9fa6
commit 02cf0e4df3
5 changed files with 218 additions and 60 deletions

View file

@ -24,6 +24,10 @@ public:
// Render the loading screen with progress bar and status text (pure ImGui)
void render();
// Draw loading screen as ImGui overlay (call within an existing ImGui frame).
// Used during warmup to overlay loading screen on top of the rendered world.
void renderOverlay();
void setProgress(float progress) { loadProgress = progress; }
void setStatus(const std::string& status) { statusText = status; }