22 TINT iNumLODs = m_pSection->GetLODCount( m_eLODType );
26 m_pSection->GetLODBlocks( m_eLODType, ppLODBlocks, uiNumMemBlocks );
29 auto pOldMemBlock =
g_pMemory->SetGlobalBlock( ppLODBlocks[ uiNumMemBlocks - 1 ]->GetMemBlock() );
31 for (
TINT i = 0; i < iNumLODs; i++ )
33 auto pModelNode = m_pSection->m_ppLODModelsData[ m_eLODType ][ i ];
34 ATerrainInterface::GetSingleton()->CreateModelInstance( pModelNode,
"",
TNULL );
36 if ( !
ISZERO( m_pSection->m_aLODFlags[ m_eLODType ][ i ] & 1 ) )
38 pModelNode->SetUseLighting(
TTRUE );
39 pModelNode->SetGlow(
TTRUE );
44 m_pSection->SetLODLoaded( m_eLODType,
TTRUE );
45 m_pSection->SetLODLoading( m_eLODType,
TFALSE );
46 m_pSection->SetLODEmpty( m_eLODType,
TTRUE );
49 g_pMemory->SetGlobalBlock( pOldMemBlock );
52 auto cbModelNodeReady = ATerrainInterface::GetSingleton()->GetOnModelNodeReadyCallback();
54 if (
TNULL != cbModelNodeReady )
56 for (
TINT i = 0; i < iNumLODs; i++ )
58 cbModelNodeReady( m_pSection->m_ppLODModelsData[ m_eLODType ][ i ] );
67 m_pSection->SetLODLoading( m_eLODType,
TFALSE );
68 m_pSection->SetLODQueued( m_eLODType,
TFALSE );
69 m_pSection->SetLODEmpty( m_eLODType,
TFALSE );
70 m_pSection->DestroyLOD( m_eLODType );
72 ATerrainInterface::GetSingleton()->QueueStreamingAssets();