Fix WMO texture loading by always wiring asset manager

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

View file

@ -364,7 +364,7 @@ bool Renderer::initialize(core::Window* win) {
// Create WMO renderer
wmoRenderer = std::make_unique<WMORenderer>();
if (!wmoRenderer->initialize()) {
if (!wmoRenderer->initialize(assetManager)) {
LOG_WARNING("Failed to initialize WMO renderer");
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
if (m2Renderer && assetManager) {
if (!m2Renderer->isInitialized()) {
m2Renderer->initialize(assetManager);
}
// Always pass the latest asset manager. initialize() is idempotent and updates
// the pointer even when the renderer was initialized earlier without assets.
m2Renderer->initialize(assetManager);
// Upload M2 models immediately (batching was causing hangs)
// 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
if (wmoRenderer && assetManager) {
if (!wmoRenderer->isInitialized()) {
wmoRenderer->initialize(assetManager);
}
// WMORenderer may be initialized before assets are ready; always re-pass assets.
wmoRenderer->initialize(assetManager);
int loadedWMOs = 0;
int loadedLiquids = 0;