Fix WMO texture loading by always wiring asset manager

This commit is contained in:
Kelsi 2026-02-18 23:08:43 -08:00
parent a3e88394ce
commit 8340f4e1de
2 changed files with 6 additions and 7 deletions

View file

@ -364,7 +364,7 @@ bool Renderer::initialize(core::Window* win) {
// Create WMO renderer // Create WMO renderer
wmoRenderer = std::make_unique<WMORenderer>(); wmoRenderer = std::make_unique<WMORenderer>();
if (!wmoRenderer->initialize()) { if (!wmoRenderer->initialize(assetManager)) {
LOG_WARNING("Failed to initialize WMO renderer"); LOG_WARNING("Failed to initialize WMO renderer");
wmoRenderer.reset(); wmoRenderer.reset();
} }

View file

@ -654,9 +654,9 @@ void TerrainManager::finalizeTile(const std::shared_ptr<PendingTile>& pending) {
// Upload M2 models to GPU and create instances // Upload M2 models to GPU and create instances
if (m2Renderer && assetManager) { if (m2Renderer && assetManager) {
if (!m2Renderer->isInitialized()) { // Always pass the latest asset manager. initialize() is idempotent and updates
m2Renderer->initialize(assetManager); // the pointer even when the renderer was initialized earlier without assets.
} m2Renderer->initialize(assetManager);
// Upload M2 models immediately (batching was causing hangs) // Upload M2 models immediately (batching was causing hangs)
// The 5ms time budget in processReadyTiles() limits the spike // The 5ms time budget in processReadyTiles() limits the spike
@ -695,9 +695,8 @@ void TerrainManager::finalizeTile(const std::shared_ptr<PendingTile>& pending) {
// Upload WMO models to GPU and create instances // Upload WMO models to GPU and create instances
if (wmoRenderer && assetManager) { if (wmoRenderer && assetManager) {
if (!wmoRenderer->isInitialized()) { // WMORenderer may be initialized before assets are ready; always re-pass assets.
wmoRenderer->initialize(assetManager); wmoRenderer->initialize(assetManager);
}
int loadedWMOs = 0; int loadedWMOs = 0;
int loadedLiquids = 0; int loadedLiquids = 0;