absence_thelab

annotate src/3deng/textureman.h @ 0:1cffe3409164

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 23 Oct 2014 01:46:07 +0300
parents
children
rev   line source
nuclear@0 1 #ifndef _TEXTUREMAN_H_
nuclear@0 2 #define _TEXTUREMAN_H_
nuclear@0 3
nuclear@0 4 #include <string>
nuclear@0 5 #include "hashtable.h"
nuclear@0 6 #include "typedefs.h"
nuclear@0 7 #include "d3d8.h"
nuclear@0 8 #include "3dengtypes.h"
nuclear@0 9
nuclear@0 10 class GraphicsContext;
nuclear@0 11
nuclear@0 12 const dword UsageRenderTarget = D3DUSAGE_RENDERTARGET;
nuclear@0 13 const dword UsageDepthStencil = D3DUSAGE_DEPTHSTENCIL;
nuclear@0 14
nuclear@0 15 class TextureManager {
nuclear@0 16 private:
nuclear@0 17 GraphicsContext *gc;
nuclear@0 18 HashTable<std::string, Texture*> textures;
nuclear@0 19 int notfilecount;
nuclear@0 20
nuclear@0 21 // private copy constructor and assignment op, to prohibit copying
nuclear@0 22 TextureManager(const TextureManager &tm) {}
nuclear@0 23 void operator =(const TextureManager &tm) {}
nuclear@0 24
nuclear@0 25 void CreateStockTextures();
nuclear@0 26
nuclear@0 27 public:
nuclear@0 28 TextureManager(GraphicsContext *gc = 0);
nuclear@0 29 ~TextureManager();
nuclear@0 30
nuclear@0 31 void SetGraphicsContext(GraphicsContext *gc);
nuclear@0 32
nuclear@0 33 Texture *LoadTexture(const char *fname);
nuclear@0 34 Texture *CreateTexture(dword x, dword y, dword usage, bool mipmaps, bool local=false);
nuclear@0 35 Texture *AddTexture(Texture *tex, const char *name=0);
nuclear@0 36 Texture *AddTexture(const char *fname);
nuclear@0 37 };
nuclear@0 38
nuclear@0 39 #endif // _TEXTUREMAN_H_