"L. Spiro Engine"
|
00001 00019 #ifndef __LSG_DIRECTX9LOSABLERESOURCEMANAGER_H__ 00020 #define __LSG_DIRECTX9LOSABLERESOURCEMANAGER_H__ 00021 00022 #include "../LSGGraphicsLib.h" 00023 00024 #ifdef LSG_DX9 00025 00026 #include "CriticalSection/LSHCriticalSection.h" 00027 #include "LSGDirectX9LosableResource.h" 00028 #include "Vector/LSTLVectorPoD.h" 00029 00030 namespace lsg { 00031 00041 class CDirectX9LosableResourceManager { 00042 public : 00043 // == Functions. 00047 static LSVOID LSE_CALL Destroy(); 00048 00057 static LSBOOL LSE_CALL RegisterRes( CDirectX9LosableResource * _plrRes ); 00058 00064 static LSVOID LSE_CALL RemoveRes( LSUINT32 _ui32Id ); 00065 00069 static LSVOID LSE_CALL OnLostDevice(); 00070 00074 static LSVOID LSE_CALL OnResetDevice(); 00075 00081 static LSUINT32 LSE_CALL GetLosableResCount(); 00082 00083 00084 protected : 00085 // == Members. 00089 static CVectorPoD<CDirectX9LosableResource *, LSUINT32> m_vResources; 00090 00094 static LSUINT32 m_ui32ResId; 00095 00099 static CCriticalSection m_csCrit; 00100 }; 00101 00102 } // namespace lsg 00103 00104 #endif // #ifdef LSG_DX9 00105 00106 #endif // __LSG_DIRECTX9LOSABLERESOURCEMANAGER_H__