X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FTexture.h;h=a684bd53f565e5d4e589a3c6b0a15006bafa139f;hb=26debbd380c6922e5a0b60d99567c6374a4fef9a;hp=ca68a3f576f85c50a488bfcfdd94ff059e51069e;hpb=bb61e3fc1a36858b603d3a3fc2058f7c63f081c5;p=lugaru.git diff --git a/Source/Texture.h b/Source/Texture.h index ca68a3f..a684bd5 100644 --- a/Source/Texture.h +++ b/Source/Texture.h @@ -1,37 +1,24 @@ +#ifndef _TEXTURE_H_ +#define _TEXTURE_H_ + #include +#include #include +using namespace std; -//keeps track of which textures are loaded -//TODO: delete them properly -class Texture { - private: - static std::map textures; - - bool isSkin; - std::string fileName; - GLuint id; - bool mipmap; - bool hasalpha; - GLubyte* array; - int arraySize; - int skinsize; +class TextureRes; - void load(); +class Texture { +private: + TextureRes* tex; +public: + inline Texture(): tex(NULL) {} + void load(const string& filename, bool hasMipmap, bool hasAlpha); + void load(const string& filename, bool hasMipmap, GLubyte* array, int* skinsizep); + void destroy(); + void bind(); - public: - Texture(): - isSkin(false), skinsize(0), arraySize(0), - fileName(""), id(0), mipmap(false), hasalpha(false), array(NULL) { } - ~Texture(); - Texture (const std::string& _fileName, bool _mipmap, bool _hasalpha): - isSkin(false), skinsize(0), arraySize(0), array(NULL), - fileName(_fileName), id(0), mipmap(_mipmap), hasalpha(_hasalpha) { } - Texture (const std::string& _fileName, bool _mipmap, bool _hasalpha, bool _isSkin): - isSkin(_isSkin), skinsize(0), arraySize(0), array(NULL), - fileName(_fileName), id(0), mipmap(_mipmap), hasalpha(_hasalpha) { } - GLuint getId() const { return id; } - - static GLuint Load(const std::string& fileName, bool mipmap, bool hasalpha); - static GLuint Load(const std::string& fileName, bool mipmap, bool hasalpha, GLubyte* array, int* skinsize); + static void reloadAll(); }; +#endif