19 ,
public Toshi::TSingleton<AModelLoader>
55 static Toshi::TMaterial*
CreateMaterial( Toshi::TShader* a_pShader,
const TCHAR* a_szMaterialName );
61 static void AddMaterial(
const Toshi::TString8& a_rName,
MaterialNode* a_pMaterialNode );
62 static Toshi::TMaterial* FindMaterial(
const Toshi::TString8& a_rName );
64 static Toshi::TTMDBase::Material* FindMaterialInModel(
const TCHAR* a_szName );
66 static void MaterialApplyFlags( Toshi::TMaterial* a_pMaterial,
const TCHAR* a_szMaterialName );
67 static void MaterialApplyClamp( Toshi::TMaterial* a_pMaterial,
const TCHAR* a_szMaterialName, Toshi::TTexture* a_pTexture );
68 static void MaterialApplyAlphaRef( Toshi::TMaterial* a_pMaterial,
const TCHAR* a_szMaterialName, Toshi::TTexture* a_pTexture );
70 static void LoadGrassMeshTRB( Toshi::TModel* a_pModel,
TINT a_iLODIndex, Toshi::TModelLOD* a_pLOD, Toshi::TTMDWin::TRBLODHeader* a_pLODHeader );
71 static void LoadWorldMeshTRB( Toshi::TModel* a_pModel,
TINT a_iLODIndex, Toshi::TModelLOD* a_pLOD, Toshi::TTMDWin::TRBLODHeader* a_pLODHeader );
72 static void LoadSkinLOD( Toshi::TModel* a_pModel,
TINT a_iLODIndex, Toshi::TModelLOD* a_pLOD, Toshi::TTMDWin::TRBLODHeader* a_pLODHeader );
74 static void InitialiseGrassLayersTextures();
77 static TBOOL AModelLoaderLoadTMDCallback( Toshi::TModel* a_pModel );
78 static TBOOL AModelLoaderLoadTRBCallback( Toshi::TModel* a_pModel );
81 inline static Toshi::T2DList<MaterialNode> ms_oFreeMaterials;
82 inline static Toshi::T2DList<MaterialNode> ms_oUsedMaterials;
84 inline static Toshi::TTMDBase::MaterialsHeader ms_oCurrentModelMaterialsHeader;
87 inline static void* ms_pWorldEndRender;
88 inline static void* ms_pWorldStartRender;
89 inline static void* ms_pWorldUVOffsetsPerSec;
90 inline static const TCHAR** ms_pGlowMaterials;
91 inline static const TCHAR** ms_pDoubleSidedMaterials;
94 inline static TINT ms_iNumGlowMaterials;
95 inline static TINT ms_iNumDoubleSidedMaterials;
96 inline static TINT ms_iNumCreatedMaterials;