www.pudn.com > notWow.rar > TexMgr.h


#pragma once 
 
#include "Enums.h" 
#include  
#include  
#include  
#include  
#include  
using namespace std; 
 
 
#ifndef SAFE_RELEASE 
#define SAFE_RELEASE(p)     { if((p) != NULL) { (p)->Release(); (p) = NULL; } } 
#endif 
 
// 
// this Manager is similar with ModelManager 
// 
 
class TexturesManager 
{ 
	LPDIRECT3DDEVICE9			m_pd3dDevice; 
	vector	m_Textures; 
	vector				m_RefCounters; 
	map		m_NameMap; 
	int							m_MinPos; 
	int							m_nTextures; 
public: 
	void		Init(LPDIRECT3DDEVICE9	pd3dDevice); 
	void		Free();	 
 
	TextureID	AddTexture(const char*  Name); 
	TextureID	AddTextureInM2(const char* Name); 
	void		Delete(TextureID id);  
	inline LPDIRECT3DTEXTURE9 GetTexture(TextureID id); 
	string		GetTextureName(TextureID id); 
 
	bool		OnCreate(); 
	void		OnDestory(); 
	bool		OnReset(); 
	void		OnLost(); 
}; 
 
 
LPDIRECT3DTEXTURE9 TexturesManager::GetTexture(TextureID id) 
{ 
	if(id >= 0 && id < m_Textures.size()) 
		return m_Textures[id]; 
	return NULL; 
}