nuclear@0: #ifndef _TEXTUREMAN_H_ nuclear@0: #define _TEXTUREMAN_H_ nuclear@0: nuclear@0: #include nuclear@0: #include "hashtable.h" nuclear@0: #include "typedefs.h" nuclear@0: #include "d3d8.h" nuclear@0: #include "3dengtypes.h" nuclear@0: nuclear@0: class GraphicsContext; nuclear@0: nuclear@0: const dword UsageRenderTarget = D3DUSAGE_RENDERTARGET; nuclear@0: const dword UsageDepthStencil = D3DUSAGE_DEPTHSTENCIL; nuclear@0: nuclear@0: class TextureManager { nuclear@0: private: nuclear@0: GraphicsContext *gc; nuclear@0: HashTable textures; nuclear@0: int notfilecount; nuclear@0: nuclear@0: // private copy constructor and assignment op, to prohibit copying nuclear@0: TextureManager(const TextureManager &tm) {} nuclear@0: void operator =(const TextureManager &tm) {} nuclear@0: nuclear@0: void CreateStockTextures(); nuclear@0: nuclear@0: public: nuclear@0: TextureManager(GraphicsContext *gc = 0); nuclear@0: ~TextureManager(); nuclear@0: nuclear@0: void SetGraphicsContext(GraphicsContext *gc); nuclear@0: nuclear@0: Texture *LoadTexture(const char *fname); nuclear@0: Texture *CreateTexture(dword x, dword y, dword usage, bool mipmaps, bool local=false); nuclear@0: Texture *AddTexture(Texture *tex, const char *name=0); nuclear@0: Texture *AddTexture(const char *fname); nuclear@0: }; nuclear@0: nuclear@0: #endif // _TEXTUREMAN_H_